forked from qt-creator/qt-creator
Qbs: Move updating of files from a project to own method
Change-Id: I88b41ff450dac4e0c2e5a34e3332e559c1919e6e Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
@@ -768,12 +768,19 @@ bool QbsProjectNode::addFiles(const QStringList &filePaths, QStringList *notAdde
|
||||
return prd ? prd->addFiles(filePaths, notAdded) : false;
|
||||
}
|
||||
|
||||
void QbsProjectNode::update(const qbs::Project &prj)
|
||||
void QbsProjectNode::setProject(const qbs::Project &prj)
|
||||
{
|
||||
update(prj.isValid() ? prj.projectData() : qbs::ProjectData());
|
||||
m_qbsProject = prj;
|
||||
}
|
||||
|
||||
void QbsProjectNode::update()
|
||||
{
|
||||
if (m_qbsProject.isValid())
|
||||
update(m_qbsProject.projectData());
|
||||
else
|
||||
update(qbs::ProjectData());
|
||||
}
|
||||
|
||||
void QbsProjectNode::update(const qbs::ProjectData &prjData)
|
||||
{
|
||||
QList<ProjectExplorer::ProjectNode *> toAdd;
|
||||
@@ -808,8 +815,6 @@ void QbsProjectNode::update(const qbs::ProjectData &prjData)
|
||||
|
||||
removeProjectNodes(toRemove);
|
||||
addProjectNodes(toAdd);
|
||||
|
||||
m_qbsProjectData = prjData;
|
||||
}
|
||||
|
||||
QbsProject *QbsProjectNode::project() const
|
||||
@@ -829,7 +834,7 @@ const qbs::Project QbsProjectNode::qbsProject() const
|
||||
|
||||
const qbs::ProjectData QbsProjectNode::qbsProjectData() const
|
||||
{
|
||||
return m_qbsProjectData;
|
||||
return m_qbsProject.projectData();
|
||||
}
|
||||
|
||||
bool QbsProjectNode::showInSimpleTree() const
|
||||
|
@@ -171,8 +171,9 @@ public:
|
||||
|
||||
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0);
|
||||
|
||||
void update(const qbs::Project &prj);
|
||||
void update(const qbs::ProjectData &prjData);
|
||||
void setProject(const qbs::Project &prj); // This does *not* update the node tree!
|
||||
|
||||
void update();
|
||||
|
||||
QbsProject *project() const;
|
||||
const qbs::Project qbsProject() const;
|
||||
@@ -182,13 +183,14 @@ public:
|
||||
private:
|
||||
void ctor();
|
||||
|
||||
void update(const qbs::ProjectData &prjData);
|
||||
|
||||
QbsProductNode *findProductNode(const QString &name);
|
||||
QbsProjectNode *findProjectNode(const QString &name);
|
||||
|
||||
QbsProject *m_project;
|
||||
|
||||
qbs::Project m_qbsProject;
|
||||
qbs::ProjectData m_qbsProjectData;
|
||||
static QIcon m_projectIcon;
|
||||
};
|
||||
} // namespace Internal
|
||||
|
@@ -291,22 +291,11 @@ void QbsProject::handleQbsParsingDone(bool success)
|
||||
m_qbsUpdateFutureInterface = 0;
|
||||
}
|
||||
|
||||
if (project.isValid()) {
|
||||
// Do not throw away data when parsing errors were introduced. That frightens users:-)
|
||||
m_rootProjectNode->update(project);
|
||||
if (project.isValid())
|
||||
m_rootProjectNode->setProject(project);
|
||||
|
||||
updateDocuments(project.isValid() ? project.buildSystemFiles() : QSet<QString>() << m_fileName);
|
||||
readQbsData();
|
||||
|
||||
updateCppCodeModel(m_rootProjectNode->qbsProjectData());
|
||||
updateQmlJsCodeModel(m_rootProjectNode->qbsProjectData());
|
||||
updateApplicationTargets(m_rootProjectNode->qbsProjectData());
|
||||
updateDeploymentInfo(m_rootProjectNode->qbsProject());
|
||||
|
||||
foreach (Target *t, targets())
|
||||
t->updateDefaultRunConfigurations();
|
||||
|
||||
emit fileListChanged();
|
||||
}
|
||||
emit projectParsingDone(success);
|
||||
}
|
||||
|
||||
@@ -361,6 +350,28 @@ void QbsProject::delayForcedParsing()
|
||||
delayParsing();
|
||||
}
|
||||
|
||||
// Qbs may change its data
|
||||
void QbsProject::readQbsData()
|
||||
{
|
||||
QTC_ASSERT(m_rootProjectNode, return);
|
||||
|
||||
m_rootProjectNode->update();
|
||||
|
||||
qbs::Project project = m_rootProjectNode->qbsProject();
|
||||
updateDocuments(project.isValid() ? project.buildSystemFiles() : QSet<QString>() << m_fileName);
|
||||
|
||||
qbs::ProjectData data = m_rootProjectNode->qbsProjectData();
|
||||
updateCppCodeModel(data);
|
||||
updateQmlJsCodeModel(data);
|
||||
updateApplicationTargets(data);
|
||||
updateDeploymentInfo(project);
|
||||
|
||||
foreach (Target *t, targets())
|
||||
t->updateDefaultRunConfigurations();
|
||||
|
||||
emit fileListChanged();
|
||||
}
|
||||
|
||||
void QbsProject::parseCurrentBuildConfiguration(bool force)
|
||||
{
|
||||
if (!m_forceParsing)
|
||||
|
@@ -108,6 +108,7 @@ public slots:
|
||||
void invalidate();
|
||||
void delayParsing();
|
||||
void delayForcedParsing();
|
||||
void readQbsData();
|
||||
|
||||
signals:
|
||||
void projectParsingStarted();
|
||||
|
Reference in New Issue
Block a user