forked from qt-creator/qt-creator
Make all projects generate a fresh project tree
Do not update the existing project tree anymore: Start a fresh one and throw the old one away. Change-Id: Ifabe293b6ca668b0672516a6d81acd5346d98fe5 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -180,13 +180,11 @@ QStringList unreferencedBuildSystemFiles(const qbs::Project &p)
|
||||
namespace QbsProjectManager {
|
||||
namespace Internal {
|
||||
|
||||
void QbsNodeTreeBuilder::buildTree(QbsProject *project)
|
||||
QbsRootProjectNode *QbsNodeTreeBuilder::buildTree(QbsProject *project)
|
||||
{
|
||||
QbsRootProjectNode *root = project->rootProjectNode();
|
||||
QTC_ASSERT(root, return);
|
||||
root->makeEmpty();
|
||||
|
||||
root->addNode(new ProjectExplorer::FileNode(project->projectFilePath(), ProjectExplorer::FileType::Project, false));
|
||||
auto root = new QbsRootProjectNode(project);
|
||||
root->addNode(new ProjectExplorer::FileNode(project->projectFilePath(),
|
||||
ProjectExplorer::FileType::Project, false));
|
||||
|
||||
auto buildSystemFiles
|
||||
= new ProjectExplorer::FolderNode(project->projectDirectory(),
|
||||
@@ -205,8 +203,7 @@ void QbsNodeTreeBuilder::buildTree(QbsProject *project)
|
||||
root->addNode(buildSystemFiles);
|
||||
|
||||
setupProjectNode(root, project->qbsProjectData(), project->qbsProject());
|
||||
root->emitNodeUpdated();
|
||||
root->emitTreeChanged();
|
||||
return root;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace Internal {
|
||||
class QbsNodeTreeBuilder
|
||||
{
|
||||
public:
|
||||
static void buildTree(QbsProject *project);
|
||||
static QbsRootProjectNode *buildTree(QbsProject *project);
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -131,8 +131,9 @@ QbsProject::QbsProject(const FileName &fileName) :
|
||||
setId(Constants::PROJECT_ID);
|
||||
setDocument(new QbsProjectFile(this, fileName));
|
||||
DocumentManager::addDocument(document());
|
||||
setRootProjectNode(new QbsRootProjectNode(this));
|
||||
auto newRoot = new QbsRootProjectNode(this);
|
||||
Internal::QbsNodeTreeBuilder::buildTree(this); // Populate with initial data
|
||||
setRootProjectNode(newRoot);
|
||||
|
||||
setProjectContext(Context(Constants::PROJECT_ID));
|
||||
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
||||
@@ -314,7 +315,7 @@ bool QbsProject::addFilesToProduct(const QStringList &filePaths,
|
||||
}
|
||||
if (notAdded->count() != filePaths.count()) {
|
||||
m_projectData = m_qbsProject.projectData();
|
||||
Internal::QbsNodeTreeBuilder::buildTree(this);
|
||||
setRootProjectNode(Internal::QbsNodeTreeBuilder::buildTree(this));
|
||||
emit fileListChanged();
|
||||
}
|
||||
return notAdded->isEmpty();
|
||||
@@ -342,7 +343,7 @@ bool QbsProject::removeFilesFromProduct(const QStringList &filePaths,
|
||||
}
|
||||
if (notRemoved->count() != filePaths.count()) {
|
||||
m_projectData = m_qbsProject.projectData();
|
||||
Internal::QbsNodeTreeBuilder::buildTree(this);
|
||||
setRootProjectNode(Internal::QbsNodeTreeBuilder::buildTree(this));
|
||||
emit fileListChanged();
|
||||
}
|
||||
return notRemoved->isEmpty();
|
||||
@@ -484,7 +485,7 @@ void QbsProject::updateAfterParse()
|
||||
void QbsProject::updateProjectNodes()
|
||||
{
|
||||
OpTimer opTimer("updateProjectNodes");
|
||||
Internal::QbsNodeTreeBuilder::buildTree(this);
|
||||
setRootProjectNode(Internal::QbsNodeTreeBuilder::buildTree(this));
|
||||
}
|
||||
|
||||
void QbsProject::handleQbsParsingDone(bool success)
|
||||
|
||||
Reference in New Issue
Block a user