From ab7f41e658b879386b60e1a04a6e2dc8fe75fa09 Mon Sep 17 00:00:00 2001 From: Christiaan Janssen <christiaan.janssen@nokia.com> Date: Wed, 10 Feb 2010 17:46:52 +0100 Subject: [PATCH] QmlDesigner.Navigator: Showing icons for the items' types --- .../components/navigator/navigatortreeview.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp index 6c6defb53fc..1db87aa6342 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp @@ -34,6 +34,7 @@ #include "navigatorwidget.h" #include <nodeproperty.h> +#include "metainfo.h" #define _separator_line_color_ "#757575" @@ -78,7 +79,22 @@ void IdItemDelegate::paint(QPainter *painter, ModelNode node = m_TreeModel->nodeForIndex(index); QIcon icon=node.metaInfo().icon(); - if (icon.isNull()) icon = QIcon(":/ItemLibrary/images/default-icon.png"); + if (icon.isNull()) + { + // if node has no own icon, search for it in the itemlibrary + QList <ItemLibraryInfo> InfoList = node.metaInfo().metaInfo().itemLibraryRepresentations(node.metaInfo()); + foreach (const ItemLibraryInfo &entry, InfoList) + { + if (entry.typeName()==node.metaInfo().typeName()) { + icon = entry.icon(); + break; + } + } + + // if the library was also empty, use the default icon + if (icon.isNull()) icon = QIcon(":/ItemLibrary/images/default-icon.png"); + } + QPixmap pixmap = icon.pixmap(option.rect.width(),option.rect.height()-4); painter->drawPixmap(option.rect.x()+5,option.rect.y()+2,pixmap); -- GitLab