ProjectExplorer: Introduce some FolderNode convenience functions

... and use them.

Change-Id: I9f5237e5eac30715c2effbd3301dd2a70516d2a9
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-01-26 17:02:16 +01:00
parent 8427932a0e
commit 87304b3ce0
8 changed files with 117 additions and 139 deletions

View File

@@ -281,13 +281,12 @@ void BuildDirManager::generateProjectTree(CMakeListsNode *root, const QList<cons
const Utils::FileName projectFile = m_buildConfiguration->target()->project()->projectFilePath();
root->makeEmpty();
m_reader->generateProjectTree(root, allFiles);
// Make sure the top level CMakeLists.txt is always visible:
if (root->fileNodes().isEmpty()
&& root->folderNodes().isEmpty()
&& root->projectNodes().isEmpty())
root->addFileNodes({ new FileNode(projectFile, FileType::Project, false) });
if (root->isEmpty())
root->addFileNode(new FileNode(projectFile, FileType::Project, false));
}
QSet<Core::Id> BuildDirManager::updateCodeModel(CppTools::ProjectPartBuilder &ppBuilder)

View File

@@ -217,9 +217,6 @@ void CMakeBuildConfiguration::generateProjectTree(CMakeListsNode *root,
if (!m_buildDirManager || m_buildDirManager->isParsing())
return;
root->removeProjectNodes();
root->setFolderNodes({});
root->setFileNodes({});
m_buildDirManager->generateProjectTree(root, allFiles);
}

View File

@@ -231,7 +231,7 @@ FolderNode *setupCMakeVFolder(FolderNode *base, const Utils::FileName &basePath,
if (!folder) {
folder = new VirtualFolderNode(basePath, priority);
folder->setDisplayName(displayName);
base->addFolderNodes({ folder });
base->addFolderNode(folder);
}
folder->buildTree(files);
return folder;
@@ -583,7 +583,7 @@ void ServerModeReader::updateCMakeLists(CMakeListsNode *root, const QList<FileNo
FileNode *cmFn = cmln->fileNode(fn->filePath());
if (!cmFn) {
cmFn = fn;
cmln->addFileNodes({ cmFn });
cmln->addFileNode(cmFn);
}
// Update displayName of CMakeListsNode:
const QString dn = prefix.isEmpty() ? k : k.mid(prefix.count() + 1);