summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/projectnodes.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2017-03-10 17:30:40 +0100
committerhjk <hjk@qt.io>2017-03-14 12:26:22 +0000
commit4d8352a6c177ecfc609d6bc7fefbfcd00204b0f6 (patch)
tree5826fb60a5cd31630238f9fca0d3ed0e7769b3c1 /src/plugins/projectexplorer/projectnodes.cpp
parent7428aa9cec41823cd77f58a5dc8c0b4d7b530811 (diff)
downloadqt-creator-4d8352a6c177ecfc609d6bc7fefbfcd00204b0f6.tar.gz
ProjectExplorer: Add a FolderNode::addNestedNode() function
Also, rename buildTree() to addNestedNodes(), it's really adding things, not recompletely (re-)building the subtree. Use it whenever possible to avoid intermediate lists of items to insert. Change-Id: I5fde41e5b164a8a292410bd381a85f5efadf3471 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/projectnodes.cpp')
-rw-r--r--src/plugins/projectexplorer/projectnodes.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp
index 87a759efea..604d73cb16 100644
--- a/src/plugins/projectexplorer/projectnodes.cpp
+++ b/src/plugins/projectexplorer/projectnodes.cpp
@@ -468,16 +468,20 @@ QList<FolderNode*> FolderNode::folderNodes() const
return result;
}
-void FolderNode::buildTree(QList<FileNode *> &files, const Utils::FileName &overrideBaseDir)
-{
- foreach (ProjectExplorer::FileNode *fn, files) {
- // Get relative path to rootNode
- QString parentDir = fn->filePath().toFileInfo().absolutePath();
- ProjectExplorer::FolderNode *folder
- = recursiveFindOrCreateFolderNode(this, Utils::FileName::fromString(parentDir),
- overrideBaseDir);
- folder->addNode(fn);
- }
+void FolderNode::addNestedNode(FileNode *fileNode, const Utils::FileName &overrideBaseDir)
+{
+ // Get relative path to rootNode
+ QString parentDir = fileNode->filePath().toFileInfo().absolutePath();
+ FolderNode *folder = recursiveFindOrCreateFolderNode(this, Utils::FileName::fromString(parentDir),
+ overrideBaseDir);
+ folder->addNode(fileNode);
+
+}
+
+void FolderNode::addNestedNodes(QList<FileNode *> &files, const Utils::FileName &overrideBaseDir)
+{
+ for (FileNode *fn : files)
+ addNestedNode(fn, overrideBaseDir);
}
// "Compress" a tree of foldernodes such that foldernodes with exactly one foldernode as a child