diff --git a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp
index d0c7b9e5bc9624c7e244f85289e5f6d1df0bbcef..a6e531434358b0ac20b105fd56e2c861098fb449 100644
--- a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp
+++ b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp
@@ -33,6 +33,9 @@
 #include "qproxystyle.h"
 
 #include "metainfo.h"
+
+#include <utils/qtcassert.h>
+
 #include <QLineEdit>
 #include <QPen>
 #include <QPixmapCache>
@@ -42,11 +45,11 @@
 namespace QmlDesigner {
 
 IconCheckboxItemDelegate::IconCheckboxItemDelegate(QObject *parent,
-                                                   const QPixmap &checkedPixmap,
-                                                   const QPixmap &uncheckedPixmap)
+                                                   const QIcon &checkedIcon,
+                                                   const QIcon &uncheckedIcon)
     : QStyledItemDelegate(parent),
-      m_checkedPixmap(checkedPixmap),
-      m_uncheckedPixmap(uncheckedPixmap)
+      m_checkedIcon(checkedIcon),
+      m_uncheckedIcon(uncheckedIcon)
 {}
 
 QSize IconCheckboxItemDelegate::sizeHint(const QStyleOptionViewItem & /*option*/,
@@ -82,25 +85,28 @@ void IconCheckboxItemDelegate::paint(QPainter *painter,
     if (rowIsPropertyRole(modelIndex.model(), modelIndex))
         return; //Do not paint icons for property rows
 
-    const int yOffset = (styleOption.rect.height()
-                         - (m_checkedPixmap.height() / painter->device()->devicePixelRatio())) / 2;
-    const int xOffset = 2;
-
-    painter->save();
     if (styleOption.state & QStyle::State_Selected)
         NavigatorTreeView::drawSelectionBackground(painter, styleOption);
 
     if (!getModelNode(modelIndex).isRootNode()) {
+        QWindow *window = dynamic_cast<QWidget*>(painter->device())->window()->windowHandle();
+        QTC_ASSERT(window, return);
 
-        if (!isVisible(modelIndex))
+        const QRect iconRect(styleOption.rect.left() + 2, styleOption.rect.top() + 2, 16, 16);
+        const QIcon &icon = isChecked(modelIndex) ? m_checkedIcon : m_uncheckedIcon;
+        const QPixmap iconPixmap = icon.pixmap(window, iconRect.size());
+        const bool visible = isVisible(modelIndex);
+
+        if (!visible) {
+            painter->save();
             painter->setOpacity(0.5);
+        }
 
-        const bool checked = isChecked(modelIndex);
-        painter->drawPixmap(styleOption.rect.x() + xOffset, styleOption.rect.y() + yOffset,
-                            checked ? m_checkedPixmap : m_uncheckedPixmap);
-    }
+        painter->drawPixmap(iconRect.topLeft(), iconPixmap);
 
-    painter->restore();
+        if (!visible)
+            painter->restore();
+    }
 }
 
 } // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.h b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.h
index a21f3338095c022e1aac9967f8589174885c03db..17f9a3537ea61d96b344177b4d342e5d9c3bc980 100644
--- a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.h
+++ b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.h
@@ -35,8 +35,8 @@ class IconCheckboxItemDelegate : public QStyledItemDelegate
 {
 public:
     explicit IconCheckboxItemDelegate(QObject *parent,
-                                      const QPixmap &checkedPixmap,
-                                      const QPixmap &uncheckedPixmap);
+                                      const QIcon &checkedIcon,
+                                      const QIcon &uncheckedIcon);
 
     QSize sizeHint(const QStyleOptionViewItem &option,
                    const QModelIndex &index) const;
@@ -46,7 +46,7 @@ public:
                const QModelIndex &index) const;
 
 private:
-    const QPixmap m_checkedPixmap;
-    const QPixmap m_uncheckedPixmap;
+    const QIcon m_checkedIcon;
+    const QIcon m_uncheckedIcon;
 };
 } // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp
index 107e2a9bdb6c4ad1e65fcb5a39e7554366e7c34b..4bf00a00e7b249352d49ee24fb5dad34af031ee3 100644
--- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp
+++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp
@@ -93,19 +93,19 @@ NavigatorView::NavigatorView(QObject* parent) :
     NameItemDelegate *idDelegate = new NameItemDelegate(this);
     IconCheckboxItemDelegate *showDelegate =
             new IconCheckboxItemDelegate(this,
-                                         Utils::Icons::EYE_OPEN_TOOLBAR.pixmap(),
-                                         Utils::Icons::EYE_CLOSED_TOOLBAR.pixmap());
+                                         Utils::Icons::EYE_OPEN_TOOLBAR.icon(),
+                                         Utils::Icons::EYE_CLOSED_TOOLBAR.icon());
 
     IconCheckboxItemDelegate *exportDelegate =
             new IconCheckboxItemDelegate(this,
-                                         Icons::EXPORT_CHECKED.pixmap(),
-                                         Icons::EXPORT_UNCHECKED.pixmap());
+                                         Icons::EXPORT_CHECKED.icon(),
+                                         Icons::EXPORT_UNCHECKED.icon());
 
 #ifdef _LOCK_ITEMS_
     IconCheckboxItemDelegate *lockDelegate =
             new IconCheckboxItemDelegate(this,
-                                         Utils::Icons::LOCKED_TOOLBAR.pixmap(),
-                                         Utils::Icons::UNLOCKED_TOOLBAR.pixmap());
+                                         Utils::Icons::LOCKED_TOOLBAR.icon(),
+                                         Utils::Icons::UNLOCKED_TOOLBAR.icon());
 #endif