forked from qt-creator/qt-creator
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:
@@ -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;
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user