diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h index b34863e455d..168a046ffd7 100644 --- a/src/plugins/projectexplorer/projectnodes.h +++ b/src/plugins/projectexplorer/projectnodes.h @@ -155,6 +155,7 @@ public: void setListInProject(bool l); void setIsGenerated(bool g); void setPriority(int priority); + void setLine(int line); static FileType fileTypeForMimeType(const Utils::MimeType &mt); static FileType fileTypeForFileName(const Utils::FileName &file); @@ -164,7 +165,6 @@ protected: Node(const Node &other) = delete; void setNodeType(NodeType nodeType); - void setLine(int line); void setFilePath(const Utils::FileName &filePath); private: diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 1630871aa44..01bcf904b90 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -230,19 +230,6 @@ static bool supportsNodeAction(ProjectAction action, const Node *node) return false; } -// ---------------------------------------------------------------------- -// QbsFileNode: -// ---------------------------------------------------------------------- - -QbsFileNode::QbsFileNode(const Utils::FileName &filePath, - const ProjectExplorer::FileType fileType, - int line) : - ProjectExplorer::FileNode(filePath, fileType) -{ - setLine(line); -} - - // --------------------------------------------------------------------------- // QbsBaseProjectNode: // --------------------------------------------------------------------------- diff --git a/src/plugins/qbsprojectmanager/qbsnodes.h b/src/plugins/qbsprojectmanager/qbsnodes.h index 73a30a4d803..f77008a1728 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.h +++ b/src/plugins/qbsprojectmanager/qbsnodes.h @@ -35,17 +35,6 @@ namespace Internal { class QbsNodeTreeBuilder; class QbsProject; -// ---------------------------------------------------------------------- -// QbsFileNode: -// ---------------------------------------------------------------------- - -class QbsFileNode : public ProjectExplorer::FileNode -{ -public: - QbsFileNode(const Utils::FileName &filePath, const ProjectExplorer::FileType fileType, - int line); -}; - // --------------------------------------------------------------------------- // QbsBaseProjectNode: // --------------------------------------------------------------------------- diff --git a/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp b/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp index 857008bb7ee..87c0a074a3a 100644 --- a/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp @@ -93,16 +93,17 @@ buildGroupNodeTree(const qbs::GroupData &grp, const QString &productPath, bool p { QTC_ASSERT(grp.isValid(), return nullptr); + auto fileNode = std::make_unique(FileName::fromString(grp.location().filePath()), + FileType::Project); + fileNode->setLine(grp.location().line()); + auto result = std::make_unique(grp, productPath); result->setEnabled(productIsEnabled && grp.isEnabled()); result->setAbsoluteFilePathAndLine( FileName::fromString(grp.location().filePath()).parentDir(), -1); result->setDisplayName(grp.name()); - result->addNode(std::make_unique( - FileName::fromString(grp.location().filePath()), - FileType::Project, - grp.location().line())); + result->addNode(std::move(fileNode)); setupArtifacts(result.get(), grp.allSourceArtifacts()); @@ -111,18 +112,16 @@ buildGroupNodeTree(const qbs::GroupData &grp, const QString &productPath, bool p void setupQbsProductData(QbsProductNode *node, const qbs::ProductData &prd) { - node->setEnabled(prd.isEnabled()); + auto fileNode = std::make_unique(FileName::fromString(prd.location().filePath()), + FileType::Project); + fileNode->setLine(prd.location().line()); + node->setEnabled(prd.isEnabled()); node->setDisplayName(prd.fullDisplayName()); node->setAbsoluteFilePathAndLine(FileName::fromString(prd.location().filePath()).parentDir(), -1); + node->addNode(std::move(fileNode)); + const QString &productPath = QFileInfo(prd.location().filePath()).absolutePath(); - - // Add QbsFileNode: - node->addNode(std::make_unique(FileName::fromString(prd.location().filePath()), - FileType::Project, - prd.location().line())); - - foreach (const qbs::GroupData &grp, prd.groups()) { if (grp.name() == prd.name() && grp.location() == prd.location()) { // Set implicit product group right onto this node: @@ -151,9 +150,11 @@ std::unique_ptr buildProductNodeTree(const qbs::ProductData &prd void setupProjectNode(QbsProjectNode *node, const qbs::ProjectData &prjData, const qbs::Project &qbsProject) { - node->addNode(std::make_unique(FileName::fromString(prjData.location().filePath()), - FileType::Project, - prjData.location().line())); + auto fileNode = std::make_unique(FileName::fromString(prjData.location().filePath()), + FileType::Project); + fileNode->setLine(prjData.location().line()); + + node->addNode(std::move(fileNode)); foreach (const qbs::ProjectData &subData, prjData.subProjects()) { auto subProject = std::make_unique( FileName::fromString(subData.location().filePath()).parentDir());