Qbs: Fix reparsing triggered by RunConfiguration changes

Task-number: QTCREATORBUG-18999
Change-Id: Ib44735d378029a30163ff2a5833d893bc0eb88c6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Tobias Hunger
2017-09-29 11:14:09 +02:00
parent 3eb8c88974
commit 2966b7349f
2 changed files with 9 additions and 26 deletions

View File

@@ -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<BuildConfiguration *>(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<BuildConfiguration *>(sender())->isActive())
delayParsing();
});
}
void QbsProject::targetWasRemoved(Target *t)
{
m_qbsProjects.remove(t);
}
void QbsProject::changeActiveTarget(Target *t)
{
BuildConfiguration *bc = 0;

View File

@@ -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();