diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp index fb7ca301667..e17505095a6 100644 --- a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp +++ b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp @@ -35,7 +35,8 @@ void addCMakeVFolder(FolderNode *base, int priority, const QString &displayName, std::vector> &&files, - bool sourcesOrHeaders) + bool sourcesOrHeaders, + bool listInProject) { if (files.size() == 0) return; @@ -45,6 +46,10 @@ void addCMakeVFolder(FolderNode *base, folder = newFolder.get(); base->addNode(std::move(newFolder)); } + if (!listInProject) { + for (auto it = files.begin(); it != files.end(); ++it) + (*it)->setListInProject(false); + } folder->addNestedNodes(std::move(files)); folder->forEachFolderNode([] (FolderNode *fn) { fn->compress(); }); } @@ -68,10 +73,7 @@ void addCMakeInputs(FolderNode *root, std::unique_ptr cmakeVFolder = std::make_unique(root->filePath()); QSet knownFiles; - root->forEachGenericNode([&knownFiles](const Node *n) { - if (n->listInProject()) - knownFiles.insert(n->filePath()); - }); + root->forEachGenericNode([&knownFiles](const Node *n) { knownFiles.insert(n->filePath()); }); addCMakeVFolder(cmakeVFolder.get(), sourceDir, @@ -87,7 +89,9 @@ void addCMakeInputs(FolderNode *root, Utils::FilePath(), 10, Tr::tr(""), - removeKnownNodes(knownFiles, std::move(rootInputs))); + removeKnownNodes(knownFiles, std::move(rootInputs)), + /*sourcesOrHeaders=*/false, + /*listInProject=*/false); root->addNode(std::move(cmakeVFolder)); } diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.h b/src/plugins/cmakeprojectmanager/projecttreehelper.h index 08707360ed4..bcd5500db97 100644 --- a/src/plugins/cmakeprojectmanager/projecttreehelper.h +++ b/src/plugins/cmakeprojectmanager/projecttreehelper.h @@ -21,7 +21,8 @@ void addCMakeVFolder(ProjectExplorer::FolderNode *base, int priority, const QString &displayName, std::vector> &&files, - bool sourcesOrHeaders = false); + bool sourcesOrHeaders = false, + bool listInProject = true); std::vector> &&removeKnownNodes( const QSet &knownFiles,