diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 682c65395bd..d9f7bc6a504 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -291,8 +291,12 @@ void QbsProject::handleQbsParsingDone(bool success) if (success) { m_qbsProject = m_qbsProjectParser->qbsProject(); + const qbs::ProjectData &projectData = m_qbsProject.projectData(); QTC_CHECK(m_qbsProject.isValid()); - readQbsData(); + if (projectData != m_projectData) { + m_projectData = projectData; + readQbsData(); + } } else { m_qbsUpdateFutureInterface->reportCanceled(); } diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h index ab86c24074a..c2dde5d5a68 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.h +++ b/src/plugins/qbsprojectmanager/qbsproject.h @@ -146,6 +146,7 @@ private: const QString m_projectName; const QString m_fileName; qbs::Project m_qbsProject; + qbs::ProjectData m_projectData; QSet m_qbsDocuments; QbsRootProjectNode *m_rootProjectNode;