ProjectExplorer: Avoid some needless intermediate lists

... when creating folder nodes in the flat model.

Change-Id: I28f95589d774fc83e1a30c8328707bd1db6be03e
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-03-24 11:52:45 +01:00
parent 24ff3a2cbd
commit 1a416d3f98

View File

@@ -264,23 +264,25 @@ void FlatModel::saveExpandData()
void FlatModel::addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet<Node *> *seen) void FlatModel::addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet<Node *> *seen)
{ {
const QList<FolderNode *> subFolderNodes = folderNode->folderNodes(); for (Node *node : folderNode->nodes()) {
for (FolderNode *subFolderNode : subFolderNodes) { if (FolderNode *subFolderNode = node->asFolderNode()) {
if (!filter(subFolderNode) && !seen->contains(subFolderNode)) { if (!filter(subFolderNode) && !seen->contains(subFolderNode)) {
seen->insert(subFolderNode); seen->insert(subFolderNode);
auto node = new WrapperNode(subFolderNode); auto node = new WrapperNode(subFolderNode);
parent->appendChild(node); parent->appendChild(node);
addFolderNode(node, subFolderNode, seen); addFolderNode(node, subFolderNode, seen);
node->sortChildren(&sortWrapperNodes); node->sortChildren(&sortWrapperNodes);
} else { } else {
addFolderNode(parent, subFolderNode, seen); addFolderNode(parent, subFolderNode, seen);
}
} }
} }
const QList<FileNode *> fileNodes = folderNode->fileNodes(); for (Node *node : folderNode->nodes()) {
for (FileNode *fileNode : fileNodes) { if (FileNode *fileNode = node->asFileNode()) {
if (!filter(fileNode) && !seen->contains(fileNode)) { if (!filter(fileNode) && !seen->contains(fileNode)) {
seen->insert(fileNode); seen->insert(fileNode);
parent->appendChild(new WrapperNode(fileNode)); parent->appendChild(new WrapperNode(fileNode));
}
} }
} }
} }