From e8498acde088879bd86c1cae43bd41ee6ef2ecd2 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 24 Mar 2017 16:34:03 +0100 Subject: [PATCH] ProjectNodes: Be less enthusiastic about compression opportunities Do not compress foldernodes that differ on their type. This makes it possible to use FolderNode::compress() in one more place in CMake. Change-Id: I4721d5d12e3032ee70a1c3d9e87df49d59751f04 Reviewed-by: hjk --- src/plugins/cmakeprojectmanager/servermodereader.cpp | 1 + src/plugins/projectexplorer/projectnodes.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 000a6a376ef..871ede041aa 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -538,6 +538,7 @@ void ServerModeReader::addCMakeLists(CMakeProjectNode *root, const QList ProjectExplorer::FolderNode * { return cmakeDirs.contains(fp) ? new CMakeListsNode(fp) : new FolderNode(fp); }); + root->compress(); } static ProjectNode *findCMakeNode(ProjectNode *root, const Utils::FileName &dir) diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index bfdb15821a0..633847e25dd 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -520,6 +520,8 @@ void FolderNode::compress() { QList children = nodes(); if (auto subFolder = children.count() == 1 ? children.at(0)->asFolderNode() : nullptr) { + if (subFolder->nodeType() != nodeType()) + return; // Only one subfolder: Compress! setDisplayName(QDir::toNativeSeparators(displayName() + "/" + subFolder->displayName())); for (Node *n : subFolder->nodes()) {