diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-01-04 14:50:05 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-01-05 09:25:36 +0000 |
commit | af62a9590c33dd9daec1bab49cc4a9494410aa62 (patch) | |
tree | ef0bb38b9f22e65449bc2adb1340b1290eef3590 | |
parent | 6797ca18f6ef39f0ca05f89c07d7e3a131138f00 (diff) | |
download | qt-creator-af62a9590c33dd9daec1bab49cc4a9494410aa62.tar.gz |
QbsProjectManager: Fix reparsing after switching build configurations
After switching to a different build configuration, property changes in
the build config widget would no longer cause project reparsing. Likely
caused by e52ebbf217.
Change-Id: Ifebec74475def49885232ad71d4de01f51568fcb
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsproject.cpp | 30 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsproject.h | 3 |
2 files changed, 2 insertions, 31 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index f82715adde..e87dda87cb 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -125,7 +125,6 @@ QbsProject::QbsProject(const FileName &fileName) : m_parsingScheduled(false), m_cancelStatus(CancelStatusNone), m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this)), - m_currentBc(0), m_extraCompilersPending(false) { m_parsingDelay.setInterval(1000); // delay parsing by 1s. @@ -148,6 +147,7 @@ QbsProject::QbsProject(const FileName &fileName) : }; subscribeSignal(&BuildConfiguration::environmentChanged, this, delayedParsing); subscribeSignal(&BuildConfiguration::buildDirectoryChanged, this, delayedParsing); + subscribeSignal(&QbsBuildConfiguration::qbsConfigurationChanged, this, delayedParsing); subscribeSignal(&Target::activeBuildConfigurationChanged, this, delayedParsing); connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing); @@ -338,11 +338,6 @@ bool QbsProject::renameFileInProduct(const QString &oldPath, const QString &newP return addFilesToProduct(QStringList() << newPath, newProductData, newGroupData, &dummy); } -void QbsProject::invalidate() -{ - prepareForParsing(); -} - static qbs::AbstractJob *doBuildOrClean(const qbs::Project &project, const QList<qbs::ProductData> &products, const qbs::BuildOptions &options) @@ -546,29 +541,8 @@ void QbsProject::handleRuleExecutionDone() void QbsProject::changeActiveTarget(Target *t) { - BuildConfiguration *bc = 0; - if (t) { + if (t) m_qbsProject = m_qbsProjects.value(t); - if (t->kit()) - bc = t->activeBuildConfiguration(); - } - buildConfigurationChanged(bc); -} - -void QbsProject::buildConfigurationChanged(BuildConfiguration *bc) -{ - if (m_currentBc) - disconnect(m_currentBc, &QbsBuildConfiguration::qbsConfigurationChanged, - this, &QbsProject::delayParsing); - - m_currentBc = qobject_cast<QbsBuildConfiguration *>(bc); - if (m_currentBc) { - connect(m_currentBc, &QbsBuildConfiguration::qbsConfigurationChanged, - this, &QbsProject::delayParsing); - delayParsing(); - } else { - invalidate(); - } } void QbsProject::startParsing() diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h index 055618e6e1..1e38cd2303 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.h +++ b/src/plugins/qbsprojectmanager/qbsproject.h @@ -110,7 +110,6 @@ public: void configureAsExampleProject(const QSet<Core::Id> &platforms) final; - void invalidate(); void delayParsing(); private: @@ -119,7 +118,6 @@ private: void rebuildProjectTree(); void changeActiveTarget(ProjectExplorer::Target *t); - void buildConfigurationChanged(ProjectExplorer::BuildConfiguration *bc); void startParsing(); void parse(const QVariantMap &config, const Utils::Environment &env, const QString &dir, @@ -168,7 +166,6 @@ private: CppTools::CppProjectUpdater *m_cppCodeModelUpdater = nullptr; CppTools::ProjectInfo m_cppCodeModelProjectInfo; - QbsBuildConfiguration *m_currentBc; mutable ProjectExplorer::ProjectImporter *m_importer = nullptr; QTimer m_parsingDelay; |