diff --git a/src/plugins/qbsprojectmanager/images/groups.png b/src/plugins/qbsprojectmanager/images/groups.png new file mode 100644 index 00000000000..96388c0e228 Binary files /dev/null and b/src/plugins/qbsprojectmanager/images/groups.png differ diff --git a/src/plugins/qbsprojectmanager/images/groups@2x.png b/src/plugins/qbsprojectmanager/images/groups@2x.png new file mode 100644 index 00000000000..d03831830fb Binary files /dev/null and b/src/plugins/qbsprojectmanager/images/groups@2x.png differ diff --git a/src/plugins/qbsprojectmanager/images/productgear.png b/src/plugins/qbsprojectmanager/images/productgear.png new file mode 100644 index 00000000000..42fcf5f44c2 Binary files /dev/null and b/src/plugins/qbsprojectmanager/images/productgear.png differ diff --git a/src/plugins/qbsprojectmanager/images/productgear@2x.png b/src/plugins/qbsprojectmanager/images/productgear@2x.png new file mode 100644 index 00000000000..49d595f9d92 Binary files /dev/null and b/src/plugins/qbsprojectmanager/images/productgear@2x.png differ diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 16caaed3ecb..54afff6f221 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -30,6 +30,7 @@ #include "qbsnodes.h" #include "qbsproject.h" +#include "qbsprojectmanagerconstants.h" #include "qbsrunconfiguration.h" #include @@ -67,16 +68,15 @@ static QString displayNameFromPath(const QString &path, const QString &base) return name; } -static QIcon generateIcon() +static QIcon generateIcon(const QString &overlay) { 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); + const QIcon overlayIcon(overlay); + const QPixmap pixmap + = Core::FileIconProvider::overlayIcon(QStyle::SP_DirIcon, overlayIcon, desiredSize); QIcon result; - result.addPixmap(projectPixmap); + result.addPixmap(pixmap); return result; } @@ -84,9 +84,9 @@ static QIcon generateIcon() namespace QbsProjectManager { namespace Internal { -QIcon QbsProjectNode::m_projectIcon = generateIcon(); -QIcon QbsProductNode::m_productIcon = QIcon(QString::fromLatin1(ProjectExplorer::Constants::ICON_REBUILD_SMALL)); -QIcon QbsGroupNode::m_groupIcon = QIcon(QString::fromLatin1(ProjectExplorer::Constants::ICON_BUILD_SMALL)); +QIcon QbsGroupNode::m_groupIcon; +QIcon QbsProjectNode::m_projectIcon; +QIcon QbsProductNode::m_productIcon; class FileTreeNode { public: @@ -327,6 +327,9 @@ QbsGroupNode::QbsGroupNode(const qbs::GroupData *grp, const QString &productPath QbsBaseProjectNode(QString()), m_qbsGroupData(0) { + if (m_groupIcon.isNull()) + m_groupIcon = QIcon(QString::fromLatin1(Constants::QBS_GROUP_ICON)); + setIcon(m_groupIcon); QbsFileNode *idx = new QbsFileNode(grp->location().fileName(), @@ -465,6 +468,9 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, QbsProductNode::QbsProductNode(const qbs::ProductData &prd) : QbsBaseProjectNode(prd.location().fileName()) { + if (m_productIcon.isNull()) + m_productIcon = generateIcon(QString::fromLatin1(Constants::QBS_PRODUCT_OVERLAY_ICON)); + setIcon(m_productIcon); ProjectExplorer::FileNode *idx = new QbsFileNode(prd.location().fileName(), @@ -650,6 +656,9 @@ const qbs::ProjectData QbsProjectNode::qbsProjectData() const void QbsProjectNode::ctor() { + if (m_projectIcon.isNull()) + m_projectIcon = generateIcon(QString::fromLatin1(QtSupport::Constants::ICON_QT_PROJECT)); + setIcon(m_projectIcon); addFileNodes(QList() << new ProjectExplorer::FileNode(path(), ProjectExplorer::ProjectFileType, false), this); diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro index 8f8319e037a..47e40a1f226 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro @@ -62,3 +62,6 @@ FORMS = \ qbsbuildstepconfigwidget.ui \ qbscleanstepconfigwidget.ui \ qbsinstallstepconfigwidget.ui + +RESOURCES += \ + qbsprojectmanager.qrc diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs index adb89690872..af2759e3174 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs @@ -57,6 +57,7 @@ QtcPlugin { cpp.dynamicLibraries: base.concat(externalQbsDynamicLibraries) files: [ + "qbsprojectmanager.qrc", "defaultpropertyprovider.cpp", "defaultpropertyprovider.h", "propertyprovider.h", diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qrc b/src/plugins/qbsprojectmanager/qbsprojectmanager.qrc new file mode 100644 index 00000000000..d313a995f17 --- /dev/null +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qrc @@ -0,0 +1,8 @@ + + + images/groups.png + images/groups@2x.png + images/productgear.png + images/productgear@2x.png + + diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h index 2566214522e..7633c7fc883 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h @@ -63,6 +63,10 @@ static const char QBS_CONFIG_PROFILE_KEY[] = "qbs.profile"; static const char QBS_CONFIG_DECLARATIVE_DEBUG_KEY[] = "Qt.declarative.qmlDebugging"; static const char QBS_CONFIG_QUICK_DEBUG_KEY[] = "Qt.quick.qmlDebugging"; +// Icons: +static const char QBS_GROUP_ICON[] = ":/qbsprojectmanager/images/groups.png"; +static const char QBS_PRODUCT_OVERLAY_ICON[] = ":/qbsprojectmanager/images/productgear.png"; + } // namespace Constants } // namespace QbsProjectManager