ProjectExplorer: Introduce per-buildsystem setRootProjectNode

Currently diverting to the original Project::setRootProjectNode.
Idea is to focus on the BuildSystem <-> generated tree relation.

Change-Id: I8b20173e364713f0919cf4f8b76a2f79ef8770bb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-11-20 15:21:54 +01:00
parent 7dec498323
commit 738bbf1a87
11 changed files with 16 additions and 9 deletions

View File

@@ -146,7 +146,7 @@ void AutotoolsBuildSystem::makefileParsingFinished()
newRoot->addNestedNode(std::make_unique<FileNode>(path, newRoot->addNestedNode(std::make_unique<FileNode>(path,
FileNode::fileTypeForFileName(path))); FileNode::fileTypeForFileName(path)));
} }
project()->setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
project()->setExtraProjectFiles(filesToWatch); project()->setExtraProjectFiles(filesToWatch);
updateCppCodeModel(); updateCppCodeModel();

View File

@@ -420,7 +420,7 @@ void CMakeBuildSystem::updateProjectData()
{ {
auto newRoot = generateProjectTree(m_allFiles); auto newRoot = generateProjectTree(m_allFiles);
if (newRoot) { if (newRoot) {
p->setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
if (p->rootProjectNode()) if (p->rootProjectNode())
p->setDisplayName(p->rootProjectNode()->displayName()); p->setDisplayName(p->rootProjectNode()->displayName());

View File

@@ -427,7 +427,7 @@ void CompilationDatabaseBuildSystem::buildTreeAndProjectParts()
root->addNode(std::make_unique<FileNode>(Utils::FilePath::fromString(dbContents.extraFileName), root->addNode(std::make_unique<FileNode>(Utils::FilePath::fromString(dbContents.extraFileName),
FileType::Project)); FileType::Project));
project()->setRootProjectNode(std::move(root)); setRootProjectNode(std::move(root));
m_cppCodeModelUpdater->update({project(), kitInfo, activeParseEnvironment(), rpps}); m_cppCodeModelUpdater->update({project(), kitInfo, activeParseEnvironment(), rpps});
updateDeploymentData(); updateDeploymentData();

View File

@@ -492,7 +492,7 @@ void GenericBuildSystem::refresh(RefreshOptions options)
FileType::Project)); FileType::Project));
newRoot->compress(); newRoot->compress();
project()->setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
} }
refreshCppCodeModel(); refreshCppCodeModel();

View File

@@ -154,7 +154,7 @@ void NimBuildSystem::updateProject()
auto projectNode = std::make_unique<ProjectNode>(project()->projectDirectory()); auto projectNode = std::make_unique<ProjectNode>(project()->projectDirectory());
projectNode->setDisplayName(project()->displayName()); projectNode->setDisplayName(project()->displayName());
projectNode->addNestedNodes(std::move(nodes)); projectNode->addNestedNodes(std::move(nodes));
project()->setRootProjectNode(std::move(projectNode)); setRootProjectNode(std::move(projectNode));
} }
// Complete scan // Complete scan

View File

@@ -304,6 +304,11 @@ BuildTargetInfo BuildSystem::buildTarget(const QString &buildKey) const
}); });
} }
void BuildSystem::setRootProjectNode(std::unique_ptr<ProjectNode> &&root)
{
d->m_target->project()->setRootProjectNode(std::move(root));
}
QString BuildSystem::disabledReason(const QString &buildKey) const QString BuildSystem::disabledReason(const QString &buildKey) const
{ {
if (hasParsingData()) { if (hasParsingData()) {

View File

@@ -87,6 +87,8 @@ public:
const QList<BuildTargetInfo> applicationTargets() const; const QList<BuildTargetInfo> applicationTargets() const;
BuildTargetInfo buildTarget(const QString &buildKey) const; BuildTargetInfo buildTarget(const QString &buildKey) const;
void setRootProjectNode(std::unique_ptr<ProjectNode> &&root);
class PROJECTEXPLORER_EXPORT ParseGuard class PROJECTEXPLORER_EXPORT ParseGuard
{ {
friend class BuildSystem; friend class BuildSystem;

View File

@@ -222,7 +222,7 @@ void PythonBuildSystem::triggerParsing()
appTargets.append(bti); appTargets.append(bti);
} }
} }
project()->setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
setApplicationTargets(appTargets); setApplicationTargets(appTargets);

View File

@@ -694,7 +694,7 @@ void QbsBuildSystem::rebuildProjectTree()
{ {
std::unique_ptr<QbsRootProjectNode> newRoot = Internal::QbsNodeTreeBuilder::buildTree(this); std::unique_ptr<QbsRootProjectNode> newRoot = Internal::QbsNodeTreeBuilder::buildTree(this);
project()->setDisplayName(newRoot ? newRoot->displayName() : projectFilePath().toFileInfo().completeBaseName()); project()->setDisplayName(newRoot ? newRoot->displayName() : projectFilePath().toFileInfo().completeBaseName());
project()->setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
} }
void QbsBuildSystem::handleRuleExecutionDone() void QbsBuildSystem::handleRuleExecutionDone()

View File

@@ -490,7 +490,7 @@ void QmakeBuildSystem::decrementPendingEvaluateFutures()
m_asyncUpdateFutureInterface.setProgressValue(m_asyncUpdateFutureInterface.progressValue() + 1); m_asyncUpdateFutureInterface.setProgressValue(m_asyncUpdateFutureInterface.progressValue() + 1);
if (m_pendingEvaluateFuturesCount == 0) { if (m_pendingEvaluateFuturesCount == 0) {
// We are done! // We are done!
project()->setRootProjectNode(QmakeNodeTreeBuilder::buildTree(this)); setRootProjectNode(QmakeNodeTreeBuilder::buildTree(this));
if (!m_rootProFile->validParse()) if (!m_rootProFile->validParse())
m_asyncUpdateFutureInterface.reportCanceled(); m_asyncUpdateFutureInterface.reportCanceled();

View File

@@ -363,7 +363,7 @@ void QmlBuildSystem::generateProjectTree()
} }
newRoot->addNestedNode(std::make_unique<FileNode>(projectFilePath(), FileType::Project)); newRoot->addNestedNode(std::make_unique<FileNode>(projectFilePath(), FileType::Project));
project()->setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
refreshTargetDirectory(); refreshTargetDirectory();
} }