diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 1d0121eab0e..eb3191e60e3 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -138,17 +138,17 @@ QbsProject::QbsProject(const FileName &fileName) : rebuildProjectTree(); connect(this, &Project::activeTargetChanged, this, &QbsProject::changeActiveTarget); - connect(this, &Project::addedTarget, this, &QbsProject::targetWasAdded); - connect(this, &Project::removedTarget, this, &QbsProject::targetWasRemoved); - subscribeSignal(&BuildConfiguration::environmentChanged, this, [this]() { + connect(this, &Project::addedTarget, + this, [this](Target *t) { m_qbsProjects.insert(t, qbs::Project()); }); + connect(this, &Project::removedTarget, + this, [this](Target *t) {m_qbsProjects.remove(t); }); + auto delayedParsing = [this]() { if (static_cast(sender())->isActive()) delayParsing(); - }); - connect(this, &Project::activeProjectConfigurationChanged, - this, [this](ProjectConfiguration *pc) { - if (pc && pc->isActive()) - delayParsing(); - }); + }; + subscribeSignal(&BuildConfiguration::environmentChanged, this, delayedParsing); + subscribeSignal(&BuildConfiguration::buildDirectoryChanged, this, delayedParsing); + subscribeSignal(&Target::activeBuildConfigurationChanged, this, delayedParsing); connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing); @@ -540,21 +540,6 @@ void QbsProject::handleRuleExecutionDone() updateAfterParse(); } -void QbsProject::targetWasAdded(Target *t) -{ - m_qbsProjects.insert(t, qbs::Project()); - connect(t, &Target::activeBuildConfigurationChanged, this, &QbsProject::delayParsing); - t->subscribeSignal(&BuildConfiguration::buildDirectoryChanged, this, [this]() { - if (static_cast(sender())->isActive()) - delayParsing(); - }); -} - -void QbsProject::targetWasRemoved(Target *t) -{ - m_qbsProjects.remove(t); -} - void QbsProject::changeActiveTarget(Target *t) { BuildConfiguration *bc = 0; diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h index 23e0f706b90..fa12083716a 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.h +++ b/src/plugins/qbsprojectmanager/qbsproject.h @@ -118,8 +118,6 @@ private: void rebuildProjectTree(); - void targetWasAdded(ProjectExplorer::Target *t); - void targetWasRemoved(ProjectExplorer::Target *t); void changeActiveTarget(ProjectExplorer::Target *t); void buildConfigurationChanged(ProjectExplorer::BuildConfiguration *bc); void startParsing();