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>
This commit is contained in:
Cristian Adam
2021-09-17 18:03:58 +02:00
parent 1167f0fac7
commit 36a0151c6d
4 changed files with 11 additions and 18 deletions

View File

@@ -522,11 +522,9 @@ void CMakeBuildSystem::clearCMakeCache()
} }
std::unique_ptr<CMakeProjectNode> CMakeBuildSystem::generateProjectTree( 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, failedToParse);
auto root = m_reader.generateProjectTree(allFiles, errorMessage, includeHeaderNodes);
checkAndReportError(errorMessage);
return root; return root;
} }
@@ -599,7 +597,7 @@ void CMakeBuildSystem::updateProjectData()
Project *p = project(); Project *p = project();
{ {
auto newRoot = generateProjectTree(m_allFiles, true); auto newRoot = generateProjectTree(m_allFiles, false);
if (newRoot) { if (newRoot) {
setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
@@ -698,7 +696,7 @@ void CMakeBuildSystem::updateFallbackProjectData()
QTC_ASSERT(m_treeScanner.isFinished() && !m_reader.isParsing(), return ); 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)); setRootProjectNode(std::move(newRoot));
qCDebug(cmakeBuildSystemLog) << "All fallback CMake project data up to date."; qCDebug(cmakeBuildSystemLog) << "All fallback CMake project data up to date.";

View File

@@ -131,7 +131,7 @@ private:
void combineScanAndParse(); void combineScanAndParse();
std::unique_ptr<CMakeProjectNode> generateProjectTree( std::unique_ptr<CMakeProjectNode> generateProjectTree(
const ProjectExplorer::TreeScanner::Result &allFiles, bool includeHeadersNode); const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse);
void checkAndReportError(QString &errorMessage); void checkAndReportError(QString &errorMessage);
void updateCMakeConfiguration(QString &errorMessage); void updateCMakeConfiguration(QString &errorMessage);

View File

@@ -216,16 +216,13 @@ bool FileApiReader::usesAllCapsTargets() const
} }
std::unique_ptr<CMakeProjectNode> FileApiReader::generateProjectTree( std::unique_ptr<CMakeProjectNode> FileApiReader::generateProjectTree(
const ProjectExplorer::TreeScanner::Result &allFiles, const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse)
QString &errorMessage,
bool includeHeaderNodes)
{ {
Q_UNUSED(errorMessage) if (failedToParse)
addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
if (includeHeaderNodes) { else
addHeaderNodes(m_rootProjectNode.get(), m_knownHeaders, allFiles.allFiles); addHeaderNodes(m_rootProjectNode.get(), m_knownHeaders, allFiles.allFiles);
}
addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
return std::exchange(m_rootProjectNode, {}); return std::exchange(m_rootProjectNode, {});
} }

View File

@@ -72,9 +72,7 @@ public:
CMakeConfig takeParsedConfiguration(QString &errorMessage); CMakeConfig takeParsedConfiguration(QString &errorMessage);
QString ctestPath() const; QString ctestPath() const;
std::unique_ptr<CMakeProjectNode> generateProjectTree( std::unique_ptr<CMakeProjectNode> generateProjectTree(
const ProjectExplorer::TreeScanner::Result &allFiles, const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse);
QString &errorMessage,
bool includeHeaderNodes);
ProjectExplorer::RawProjectParts createRawProjectParts(QString &errorMessage); ProjectExplorer::RawProjectParts createRawProjectParts(QString &errorMessage);
bool isMultiConfig() const; bool isMultiConfig() const;