From 25b747b00c0874edf1a13f2bcf5ff22836313326 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 11 Oct 2023 13:33:52 +0200 Subject: [PATCH] QmakeProjectManager: Compress project tree once from the root node We must not compress a half-built tree, as the relevant conditions might change later. For example, after setting up the headers node, we might have a tree src -> headers -> header.h, and compression will lead to src/headers -> header.h. Now after adding the sources node, we might have an additional main.cpp under src, which means src and headers should not have been merged. Fixes: QTCREATORBUG-29733 Change-Id: I1419a87a0671f43ad65cbe3d108c36cfeba17781 Reviewed-by: hjk --- src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp b/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp index 914c15cf155..01bae3472fd 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp @@ -195,7 +195,6 @@ static void createTree(QmakeBuildSystem *buildSystem, fileNode->setEnabled(fn.second == FileOrigin::ExactParse); vfolder->addNestedNode(std::move(fileNode)); } - vfolder->forEachFolderNode([](FolderNode *fn) { fn->compress(); }); } node->addNode(std::move(vfolder)); } @@ -265,6 +264,7 @@ std::unique_ptr QmakeNodeTreeBuilder::buildTree(QmakeBuildSyst buildSystem->rootProFile()); root->setIcon(iconForProfile(buildSystem->rootProFile())); createTree(buildSystem, buildSystem->rootProFile(), root.get(), toExclude); + root->compress(); return root; }