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 36a0151c6d)
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Cristian Adam
2021-09-17 18:03:58 +02:00
parent 2e1bdabd1f
commit 11fd8232b7
4 changed files with 11 additions and 18 deletions

View File

@@ -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.";

View File

@@ -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);

View File

@@ -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, {});
}

View File

@@ -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;