diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index c0753eacbef..b363286bf59 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -31,12 +31,15 @@ #include "qbsproject.h" +#include +#include #include #include #include #include +#include // ---------------------------------------------------------------------- // Helpers: @@ -45,6 +48,24 @@ namespace QbsProjectManager { namespace Internal { +QIcon generateIcon() +{ + const QSize desiredSize = QSize(16, 16); + const QIcon projectBaseIcon(QString::fromLatin1(QtSupport::Constants::ICON_QT_PROJECT)); + const QPixmap projectPixmap = Core::FileIconProvider::overlayIcon(QStyle::SP_DirIcon, + projectBaseIcon, + desiredSize); + + QIcon result; + result.addPixmap(projectPixmap); + + return result; +} + +QIcon QbsProjectNode::m_projectIcon = generateIcon(); +QIcon QbsProductNode::m_productIcon = generateIcon(); +QIcon QbsGroupNode::m_groupIcon = generateIcon(); + class FileTreeNode { public: FileTreeNode(const QString &n, FileTreeNode *p = 0) : @@ -248,6 +269,7 @@ QbsGroupNode::QbsGroupNode(const qbs::GroupData *grp, const QString &productPath QbsBaseProjectNode(QString()), m_group(0) { + setIcon(m_groupIcon); setGroup(grp, productPath); } @@ -375,6 +397,7 @@ QbsProductNode::QbsProductNode(const qbs::ProductData *prd) : QbsBaseProjectNode(prd->location().fileName), m_product(0) { + setIcon(m_productIcon); setProduct(prd); } @@ -454,6 +477,7 @@ QbsProjectNode::QbsProjectNode(const QString &projectFile) : QbsBaseProjectNode(projectFile), m_project(0), m_projectData(0) { + setIcon(m_projectIcon); addFileNodes(QList() << new ProjectExplorer::FileNode(projectFile, ProjectExplorer::ProjectFileType, false), this); } diff --git a/src/plugins/qbsprojectmanager/qbsnodes.h b/src/plugins/qbsprojectmanager/qbsnodes.h index 6f703cfda56..a5920972d52 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.h +++ b/src/plugins/qbsprojectmanager/qbsnodes.h @@ -34,6 +34,8 @@ #include +#include + namespace qbs { class Project; } namespace QbsProjectManager { @@ -128,6 +130,8 @@ private: const qbs::GroupData *m_group; QString m_productPath; + + static QIcon m_groupIcon; }; // -------------------------------------------------------------------- @@ -150,6 +154,7 @@ private: QbsGroupNode *findGroupNode(const QString &name); const qbs::ProductData *m_product; + static QIcon m_productIcon; }; // --------------------------------------------------------------------------- @@ -174,6 +179,7 @@ private: const qbs::Project *m_project; const qbs::ProjectData *m_projectData; + static QIcon m_projectIcon; }; } // namespace Internal } // namespace QbsProjectManager