forked from qt-creator/qt-creator
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 <hjk@qt.io>
This commit is contained in:
@@ -195,7 +195,6 @@ static void createTree(QmakeBuildSystem *buildSystem,
|
|||||||
fileNode->setEnabled(fn.second == FileOrigin::ExactParse);
|
fileNode->setEnabled(fn.second == FileOrigin::ExactParse);
|
||||||
vfolder->addNestedNode(std::move(fileNode));
|
vfolder->addNestedNode(std::move(fileNode));
|
||||||
}
|
}
|
||||||
vfolder->forEachFolderNode([](FolderNode *fn) { fn->compress(); });
|
|
||||||
}
|
}
|
||||||
node->addNode(std::move(vfolder));
|
node->addNode(std::move(vfolder));
|
||||||
}
|
}
|
||||||
@@ -265,6 +264,7 @@ std::unique_ptr<QmakeProFileNode> QmakeNodeTreeBuilder::buildTree(QmakeBuildSyst
|
|||||||
buildSystem->rootProFile());
|
buildSystem->rootProFile());
|
||||||
root->setIcon(iconForProfile(buildSystem->rootProFile()));
|
root->setIcon(iconForProfile(buildSystem->rootProFile()));
|
||||||
createTree(buildSystem, buildSystem->rootProFile(), root.get(), toExclude);
|
createTree(buildSystem, buildSystem->rootProFile(), root.get(), toExclude);
|
||||||
|
root->compress();
|
||||||
|
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user