From af62a9590c33dd9daec1bab49cc4a9494410aa62 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 4 Jan 2018 14:50:05 +0100 Subject: 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 --- src/plugins/qbsprojectmanager/qbsproject.cpp | 30 ++-------------------------- 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 &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(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 &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; -- cgit v1.2.1