aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@qt.io>2021-09-17 18:03:58 +0200
committerCristian Adam <cristian.adam@qt.io>2021-09-22 10:46:46 +0000
commit11fd8232b790e8a24070709e046a55b44fbb2fc2 (patch)
tree83c8dea578386ce22fab9499795bcb22fe01960f
parent2e1bdabd1f22ea62f14024ac177725d1e4620ae3 (diff)
CMakePM: Display <File System> tree node only on failure
Fixes: QTCREATORBUG-25994 Fixes: QTCREATORBUG-25974 Change-Id: I383fe5c28d1f71c8f7939bc9fe4f1f0bf1d6a01b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eike Ziller <eike.ziller@qt.io> (cherry picked from commit 36a0151c6d041a82203c40b4d8b6a800d04e361b) Reviewed-by: Cristian Adam <cristian.adam@qt.io>
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp10
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsystem.h2
-rw-r--r--src/plugins/cmakeprojectmanager/fileapireader.cpp13
-rw-r--r--src/plugins/cmakeprojectmanager/fileapireader.h4
4 files changed, 11 insertions, 18 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
index e42732c4b5..6988cdb882 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
@@ -527,11 +527,9 @@ void CMakeBuildSystem::clearCMakeCache()
}
std::unique_ptr<CMakeProjectNode> CMakeBuildSystem::generateProjectTree(
- const TreeScanner::Result &allFiles, bool includeHeaderNodes)
+ const TreeScanner::Result &allFiles, bool failedToParse)
{
- QString errorMessage;
- auto root = m_reader.generateProjectTree(allFiles, errorMessage, includeHeaderNodes);
- checkAndReportError(errorMessage);
+ auto root = m_reader.generateProjectTree(allFiles, failedToParse);
return root;
}
@@ -604,7 +602,7 @@ void CMakeBuildSystem::updateProjectData()
Project *p = project();
{
- auto newRoot = generateProjectTree(m_allFiles, true);
+ auto newRoot = generateProjectTree(m_allFiles, false);
if (newRoot) {
setRootProjectNode(std::move(newRoot));
@@ -703,7 +701,7 @@ void CMakeBuildSystem::updateFallbackProjectData()
QTC_ASSERT(m_treeScanner.isFinished() && !m_reader.isParsing(), return );
- auto newRoot = generateProjectTree(m_allFiles, false);
+ auto newRoot = generateProjectTree(m_allFiles, true);
setRootProjectNode(std::move(newRoot));
qCDebug(cmakeBuildSystemLog) << "All fallback CMake project data up to date.";
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.h b/src/plugins/cmakeprojectmanager/cmakebuildsystem.h
index 95d31367d8..c722ee172f 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.h
@@ -133,7 +133,7 @@ private:
void combineScanAndParse();
std::unique_ptr<CMakeProjectNode> generateProjectTree(
- const ProjectExplorer::TreeScanner::Result &allFiles, bool includeHeadersNode);
+ const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse);
void checkAndReportError(QString &errorMessage);
void updateCMakeConfiguration(QString &errorMessage);
diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp
index 09aa375bd2..b7da82f568 100644
--- a/src/plugins/cmakeprojectmanager/fileapireader.cpp
+++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp
@@ -217,16 +217,13 @@ bool FileApiReader::usesAllCapsTargets() const
}
std::unique_ptr<CMakeProjectNode> FileApiReader::generateProjectTree(
- const ProjectExplorer::TreeScanner::Result &allFiles,
- QString &errorMessage,
- bool includeHeaderNodes)
+ const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse)
{
- Q_UNUSED(errorMessage)
-
- if (includeHeaderNodes) {
+ if (failedToParse)
+ addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
+ else
addHeaderNodes(m_rootProjectNode.get(), m_knownHeaders, allFiles.allFiles);
- }
- addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
+
return std::exchange(m_rootProjectNode, {});
}
diff --git a/src/plugins/cmakeprojectmanager/fileapireader.h b/src/plugins/cmakeprojectmanager/fileapireader.h
index 4e44796699..30cdae4267 100644
--- a/src/plugins/cmakeprojectmanager/fileapireader.h
+++ b/src/plugins/cmakeprojectmanager/fileapireader.h
@@ -72,9 +72,7 @@ public:
CMakeConfig takeParsedConfiguration(QString &errorMessage);
QString ctestPath() const;
std::unique_ptr<CMakeProjectNode> generateProjectTree(
- const ProjectExplorer::TreeScanner::Result &allFiles,
- QString &errorMessage,
- bool includeHeaderNodes);
+ const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse);
ProjectExplorer::RawProjectParts createRawProjectParts(QString &errorMessage);
bool isMultiConfig() const;