diff options
author | hjk <hjk@qt.io> | 2017-03-24 12:58:16 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2017-03-24 13:24:54 +0000 |
commit | 9c18e718a795200557e8cb9c17c23a5ac4a3d28c (patch) | |
tree | 0003fb784f18326d91ec3bc2227ae968331063cf /src/plugins/projectexplorer/projectmodels.cpp | |
parent | a63998f55b28575818faabd1a16d0c40b0433c23 (diff) | |
download | qt-creator-9c18e718a795200557e8cb9c17c23a5ac4a3d28c.tar.gz |
ProjectExplorer: Merge the two loops in FlatModel::addFolderNode
And inline the filtering to avoid the duplicated type check
and save a few cycles.
Change-Id: I0dae5e51b05b0a4e581359e7ad7d3b9d4f684141
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/projectmodels.cpp')
-rw-r--r-- | src/plugins/projectexplorer/projectmodels.cpp | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp index 4f4e69f180..a8139f686a 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -266,7 +266,8 @@ void FlatModel::addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet< { for (Node *node : folderNode->nodes()) { if (FolderNode *subFolderNode = node->asFolderNode()) { - if (!filter(subFolderNode) && !seen->contains(subFolderNode)) { + const bool isHidden = m_filterProjects && !subFolderNode->showInSimpleTree(); + if (!isHidden && !seen->contains(subFolderNode)) { seen->insert(subFolderNode); auto node = new WrapperNode(subFolderNode); parent->appendChild(node); @@ -275,11 +276,9 @@ void FlatModel::addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet< } else { addFolderNode(parent, subFolderNode, seen); } - } - } - for (Node *node : folderNode->nodes()) { - if (FileNode *fileNode = node->asFileNode()) { - if (!filter(fileNode) && !seen->contains(fileNode)) { + } else if (FileNode *fileNode = node->asFileNode()) { + const bool isHidden = m_filterProjects && fileNode->isGenerated(); + if (!isHidden && !seen->contains(fileNode)) { seen->insert(fileNode); parent->appendChild(new WrapperNode(fileNode)); } @@ -353,19 +352,6 @@ Node *FlatModel::nodeForIndex(const QModelIndex &index) const return flatNode ? flatNode->m_node : nullptr; } -bool FlatModel::filter(Node *node) const -{ - bool isHidden = false; - if (FolderNode *folderNode = node->asFolderNode()) { - if (m_filterProjects) - isHidden = !folderNode->showInSimpleTree(); - } else if (FileNode *fileNode = node->asFileNode()) { - if (m_filterGeneratedFiles) - isHidden = fileNode->isGenerated(); - } - return isHidden; -} - const QLoggingCategory &FlatModel::logger() { static QLoggingCategory logger("qtc.projectexplorer.flatmodel"); |