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;
|
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;
|
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)
|
void QbsProjectNode::update(const qbs::ProjectData &prjData)
|
||||||
{
|
{
|
||||||
QList<ProjectExplorer::ProjectNode *> toAdd;
|
QList<ProjectExplorer::ProjectNode *> toAdd;
|
||||||
@@ -808,8 +815,6 @@ void QbsProjectNode::update(const qbs::ProjectData &prjData)
|
|||||||
|
|
||||||
removeProjectNodes(toRemove);
|
removeProjectNodes(toRemove);
|
||||||
addProjectNodes(toAdd);
|
addProjectNodes(toAdd);
|
||||||
|
|
||||||
m_qbsProjectData = prjData;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QbsProject *QbsProjectNode::project() const
|
QbsProject *QbsProjectNode::project() const
|
||||||
@@ -829,7 +834,7 @@ const qbs::Project QbsProjectNode::qbsProject() const
|
|||||||
|
|
||||||
const qbs::ProjectData QbsProjectNode::qbsProjectData() const
|
const qbs::ProjectData QbsProjectNode::qbsProjectData() const
|
||||||
{
|
{
|
||||||
return m_qbsProjectData;
|
return m_qbsProject.projectData();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QbsProjectNode::showInSimpleTree() const
|
bool QbsProjectNode::showInSimpleTree() const
|
||||||
|
@@ -171,8 +171,9 @@ public:
|
|||||||
|
|
||||||
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0);
|
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0);
|
||||||
|
|
||||||
void update(const qbs::Project &prj);
|
void setProject(const qbs::Project &prj); // This does *not* update the node tree!
|
||||||
void update(const qbs::ProjectData &prjData);
|
|
||||||
|
void update();
|
||||||
|
|
||||||
QbsProject *project() const;
|
QbsProject *project() const;
|
||||||
const qbs::Project qbsProject() const;
|
const qbs::Project qbsProject() const;
|
||||||
@@ -182,13 +183,14 @@ public:
|
|||||||
private:
|
private:
|
||||||
void ctor();
|
void ctor();
|
||||||
|
|
||||||
|
void update(const qbs::ProjectData &prjData);
|
||||||
|
|
||||||
QbsProductNode *findProductNode(const QString &name);
|
QbsProductNode *findProductNode(const QString &name);
|
||||||
QbsProjectNode *findProjectNode(const QString &name);
|
QbsProjectNode *findProjectNode(const QString &name);
|
||||||
|
|
||||||
QbsProject *m_project;
|
QbsProject *m_project;
|
||||||
|
|
||||||
qbs::Project m_qbsProject;
|
qbs::Project m_qbsProject;
|
||||||
qbs::ProjectData m_qbsProjectData;
|
|
||||||
static QIcon m_projectIcon;
|
static QIcon m_projectIcon;
|
||||||
};
|
};
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -291,22 +291,11 @@ void QbsProject::handleQbsParsingDone(bool success)
|
|||||||
m_qbsUpdateFutureInterface = 0;
|
m_qbsUpdateFutureInterface = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (project.isValid()) {
|
if (project.isValid())
|
||||||
// Do not throw away data when parsing errors were introduced. That frightens users:-)
|
m_rootProjectNode->setProject(project);
|
||||||
m_rootProjectNode->update(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);
|
emit projectParsingDone(success);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -361,6 +350,28 @@ void QbsProject::delayForcedParsing()
|
|||||||
delayParsing();
|
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)
|
void QbsProject::parseCurrentBuildConfiguration(bool force)
|
||||||
{
|
{
|
||||||
if (!m_forceParsing)
|
if (!m_forceParsing)
|
||||||
|
@@ -108,6 +108,7 @@ public slots:
|
|||||||
void invalidate();
|
void invalidate();
|
||||||
void delayParsing();
|
void delayParsing();
|
||||||
void delayForcedParsing();
|
void delayForcedParsing();
|
||||||
|
void readQbsData();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void projectParsingStarted();
|
void projectParsingStarted();
|
||||||
|
Reference in New Issue
Block a user