summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/projectmodels.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2017-03-24 12:58:16 +0100
committerhjk <hjk@qt.io>2017-03-24 13:24:54 +0000
commit9c18e718a795200557e8cb9c17c23a5ac4a3d28c (patch)
tree0003fb784f18326d91ec3bc2227ae968331063cf /src/plugins/projectexplorer/projectmodels.cpp
parenta63998f55b28575818faabd1a16d0c40b0433c23 (diff)
downloadqt-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.cpp24
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");