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();
|
rebuildProjectTree();
|
||||||
|
|
||||||
connect(this, &Project::activeTargetChanged, this, &QbsProject::changeActiveTarget);
|
connect(this, &Project::activeTargetChanged, this, &QbsProject::changeActiveTarget);
|
||||||
connect(this, &Project::addedTarget, this, &QbsProject::targetWasAdded);
|
connect(this, &Project::addedTarget,
|
||||||
connect(this, &Project::removedTarget, this, &QbsProject::targetWasRemoved);
|
this, [this](Target *t) { m_qbsProjects.insert(t, qbs::Project()); });
|
||||||
subscribeSignal(&BuildConfiguration::environmentChanged, this, [this]() {
|
connect(this, &Project::removedTarget,
|
||||||
|
this, [this](Target *t) {m_qbsProjects.remove(t); });
|
||||||
|
auto delayedParsing = [this]() {
|
||||||
if (static_cast<BuildConfiguration *>(sender())->isActive())
|
if (static_cast<BuildConfiguration *>(sender())->isActive())
|
||||||
delayParsing();
|
delayParsing();
|
||||||
});
|
};
|
||||||
connect(this, &Project::activeProjectConfigurationChanged,
|
subscribeSignal(&BuildConfiguration::environmentChanged, this, delayedParsing);
|
||||||
this, [this](ProjectConfiguration *pc) {
|
subscribeSignal(&BuildConfiguration::buildDirectoryChanged, this, delayedParsing);
|
||||||
if (pc && pc->isActive())
|
subscribeSignal(&Target::activeBuildConfigurationChanged, this, delayedParsing);
|
||||||
delayParsing();
|
|
||||||
});
|
|
||||||
|
|
||||||
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing);
|
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing);
|
||||||
|
|
||||||
@@ -540,21 +540,6 @@ void QbsProject::handleRuleExecutionDone()
|
|||||||
updateAfterParse();
|
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)
|
void QbsProject::changeActiveTarget(Target *t)
|
||||||
{
|
{
|
||||||
BuildConfiguration *bc = 0;
|
BuildConfiguration *bc = 0;
|
||||||
|
@@ -118,8 +118,6 @@ private:
|
|||||||
|
|
||||||
void rebuildProjectTree();
|
void rebuildProjectTree();
|
||||||
|
|
||||||
void targetWasAdded(ProjectExplorer::Target *t);
|
|
||||||
void targetWasRemoved(ProjectExplorer::Target *t);
|
|
||||||
void changeActiveTarget(ProjectExplorer::Target *t);
|
void changeActiveTarget(ProjectExplorer::Target *t);
|
||||||
void buildConfigurationChanged(ProjectExplorer::BuildConfiguration *bc);
|
void buildConfigurationChanged(ProjectExplorer::BuildConfiguration *bc);
|
||||||
void startParsing();
|
void startParsing();
|
||||||
|
Reference in New Issue
Block a user