diff --git a/src/plugins/qbsprojectmanager/images/groups.png b/src/plugins/projectexplorer/images/fileoverlay_group.png similarity index 100% rename from src/plugins/qbsprojectmanager/images/groups.png rename to src/plugins/projectexplorer/images/fileoverlay_group.png diff --git a/src/plugins/qbsprojectmanager/images/groups@2x.png b/src/plugins/projectexplorer/images/fileoverlay_group@2x.png similarity index 100% rename from src/plugins/qbsprojectmanager/images/groups@2x.png rename to src/plugins/projectexplorer/images/fileoverlay_group@2x.png diff --git a/src/plugins/qbsprojectmanager/images/productgear.png b/src/plugins/projectexplorer/images/fileoverlay_product.png similarity index 100% rename from src/plugins/qbsprojectmanager/images/productgear.png rename to src/plugins/projectexplorer/images/fileoverlay_product.png diff --git a/src/plugins/qbsprojectmanager/images/productgear@2x.png b/src/plugins/projectexplorer/images/fileoverlay_product@2x.png similarity index 100% rename from src/plugins/qbsprojectmanager/images/productgear@2x.png rename to src/plugins/projectexplorer/images/fileoverlay_product@2x.png diff --git a/src/plugins/projectexplorer/projectexplorer.qrc b/src/plugins/projectexplorer/projectexplorer.qrc index 0f5e0dc3069..32fb160cf63 100644 --- a/src/plugins/projectexplorer/projectexplorer.qrc +++ b/src/plugins/projectexplorer/projectexplorer.qrc @@ -64,6 +64,10 @@ images/fileoverlay_qrc@2x.png images/fileoverlay_qt.png images/fileoverlay_qt@2x.png + images/fileoverlay_product.png + images/fileoverlay_product@2x.png + images/fileoverlay_group.png + images/fileoverlay_group@2x.png images/fileoverlay_ui.png images/fileoverlay_ui@2x.png images/fileoverlay_scxml.png diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index 48550359085..2fc05770560 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -210,6 +210,8 @@ const char PROJECTTREE_ID[] = "Projects"; // File icon overlays const char FILEOVERLAY_QT[]=":/projectexplorer/images/fileoverlay_qt.png"; +const char FILEOVERLAY_GROUP[] = ":/projectexplorer/images/fileoverlay_group.png"; +const char FILEOVERLAY_PRODUCT[] = ":/projectexplorer/images/fileoverlay_product.png"; const char FILEOVERLAY_QML[]=":/projectexplorer/images/fileoverlay_qml.png"; const char FILEOVERLAY_UI[]=":/projectexplorer/images/fileoverlay_ui.png"; const char FILEOVERLAY_QRC[]=":/projectexplorer/images/fileoverlay_qrc.png"; diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 01bfa6e9761..2ed8d1adf32 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -73,7 +73,7 @@ const QbsProductNode *parentQbsProductNode(const ProjectExplorer::Node *node) QbsGroupNode::QbsGroupNode(const QJsonObject &grp) : ProjectNode(FilePath()), m_groupData(grp) { - static QIcon groupIcon = QIcon(QString(Constants::QBS_GROUP_ICON)); + static QIcon groupIcon = QIcon(QString(ProjectExplorer::Constants::FILEOVERLAY_GROUP)); setIcon(groupIcon); setDisplayName(grp.value("name").toString()); setEnabled(grp.value("is-enabled").toBool()); @@ -109,7 +109,7 @@ QVariant QbsGroupNode::data(Core::Id role) const QbsProductNode::QbsProductNode(const QJsonObject &prd) : ProjectNode(FilePath()), m_productData(prd) { static QIcon productIcon = Core::FileIconProvider::directoryIcon( - Constants::QBS_PRODUCT_OVERLAY_ICON); + ProjectExplorer::Constants::FILEOVERLAY_PRODUCT); setIcon(productIcon); if (prd.value("is-runnable").toBool()) { setProductType(ProductType::App); diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qrc b/src/plugins/qbsprojectmanager/qbsprojectmanager.qrc index d2848ec977e..d9432202401 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qrc +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qrc @@ -1,9 +1,5 @@ - images/groups.png - images/groups@2x.png - images/productgear.png - images/productgear@2x.png images/settingscategory_qbsprojectmanager.png images/settingscategory_qbsprojectmanager@2x.png diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h index 12e3147cb1d..30a415fa575 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h @@ -73,10 +73,6 @@ const char QBS_CONFIG_QUICK_COMPILER_KEY[] = "modules.Qt.quick.useCompiler"; const char QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY[] = "modules.cpp.separateDebugInformation"; const char QBS_FORCE_PROBES_KEY[] = "qbspm.forceProbes"; -// Icons: -const char QBS_GROUP_ICON[] = ":/qbsprojectmanager/images/groups.png"; -const char QBS_PRODUCT_OVERLAY_ICON[] = ":/qbsprojectmanager/images/productgear.png"; - // Toolchain related settings: const char QBS_TARGETPLATFORM[] = "qbs.targetPlatform"; const char QBS_SYSROOT[] = "qbs.sysroot"; diff --git a/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp b/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp index 05a5f1fac56..f5563678c7f 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp @@ -95,6 +95,8 @@ public: QVector fileTypeData; QIcon projectIcon; + QIcon productIcon; + QIcon groupIcon; }; void clearQmakeStaticData(); @@ -114,6 +116,8 @@ QmakeStaticData::QmakeStaticData() } // Project icon projectIcon = Core::FileIconProvider::directoryIcon(ProjectExplorer::Constants::FILEOVERLAY_QT); + productIcon = Core::FileIconProvider::directoryIcon(ProjectExplorer::Constants::FILEOVERLAY_PRODUCT); + groupIcon = Core::FileIconProvider::directoryIcon(ProjectExplorer::Constants::FILEOVERLAY_GROUP); qAddPostRoutine(clearQmakeStaticData); } @@ -124,12 +128,20 @@ void clearQmakeStaticData() { qmakeStaticData()->fileTypeData.clear(); qmakeStaticData()->projectIcon = QIcon(); + qmakeStaticData()->productIcon = QIcon(); + qmakeStaticData()->groupIcon = QIcon(); } } // namespace namespace QmakeProjectManager { +static QIcon iconForProfile(const QmakeProFile *proFile) +{ + return proFile->projectType() == ProjectType::SubDirsTemplate ? qmakeStaticData()->projectIcon + : qmakeStaticData()->productIcon; +} + static void createTree(QmakeBuildSystem *buildSystem, const QmakePriFile *pri, QmakePriFileNode *node, @@ -139,7 +151,6 @@ static void createTree(QmakeBuildSystem *buildSystem, QTC_ASSERT(node, return); node->setDisplayName(pri->displayName()); - node->setIcon(qmakeStaticData()->projectIcon); // .pro/.pri-file itself: node->addNode(std::make_unique(pri->filePath(), FileType::Project)); @@ -227,10 +238,14 @@ static void createTree(QmakeBuildSystem *buildSystem, // Virtual folders: for (QmakePriFile *c : pri->children()) { std::unique_ptr newNode; - if (auto pf = dynamic_cast(c)) + if (auto pf = dynamic_cast(c)) { newNode = std::make_unique(c->buildSystem(), c->filePath(), pf); - else - newNode = std::make_unique(c->buildSystem(), node->proFileNode(), c->filePath(), c); + newNode->setIcon(iconForProfile(pf)); + } else { + newNode = std::make_unique(c->buildSystem(), node->proFileNode(), + c->filePath(), c); + newNode->setIcon(qmakeStaticData->groupIcon); + } createTree(buildSystem, c, newNode.get(), toExclude); node->addNode(std::move(newNode)); } @@ -246,6 +261,7 @@ std::unique_ptr QmakeNodeTreeBuilder::buildTree(QmakeBuildSyst auto root = std::make_unique(buildSystem, buildSystem->projectFilePath(), buildSystem->rootProFile()); + root->setIcon(iconForProfile(buildSystem->rootProFile())); createTree(buildSystem, buildSystem->rootProFile(), root.get(), toExclude); return root;