forked from qt-creator/qt-creator
QbsProjectManager: Only update project nodes etc if necessary.
That is, if qbs::Project::projectData() has changed. There are still some false positives left (e.g. the project nodes will also update if only the file paths of executables have changed), but we can deal with those later. Change-Id: Ifa18903aba41c21769bfe4cd0e4f6004f1a94f11 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
@@ -291,8 +291,12 @@ void QbsProject::handleQbsParsingDone(bool success)
|
|||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
m_qbsProject = m_qbsProjectParser->qbsProject();
|
m_qbsProject = m_qbsProjectParser->qbsProject();
|
||||||
|
const qbs::ProjectData &projectData = m_qbsProject.projectData();
|
||||||
QTC_CHECK(m_qbsProject.isValid());
|
QTC_CHECK(m_qbsProject.isValid());
|
||||||
readQbsData();
|
if (projectData != m_projectData) {
|
||||||
|
m_projectData = projectData;
|
||||||
|
readQbsData();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
m_qbsUpdateFutureInterface->reportCanceled();
|
m_qbsUpdateFutureInterface->reportCanceled();
|
||||||
}
|
}
|
||||||
|
@@ -146,6 +146,7 @@ private:
|
|||||||
const QString m_projectName;
|
const QString m_projectName;
|
||||||
const QString m_fileName;
|
const QString m_fileName;
|
||||||
qbs::Project m_qbsProject;
|
qbs::Project m_qbsProject;
|
||||||
|
qbs::ProjectData m_projectData;
|
||||||
QSet<Core::IDocument *> m_qbsDocuments;
|
QSet<Core::IDocument *> m_qbsDocuments;
|
||||||
QbsRootProjectNode *m_rootProjectNode;
|
QbsRootProjectNode *m_rootProjectNode;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user