forked from qt-creator/qt-creator
Qbs: Work around recent regression in build config connections
... by using direct calls instead of relying on project subscribtions.
Amends 4c80380478.
This is arguably even progress by itself as the direct call is
cheaper than the signalling.
Change-Id: I63400e76826db4517a5a5865e17620c131c69dce
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -88,6 +88,13 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Core::Id id)
|
|||||||
|
|
||||||
connect(project(), &Project::parsingStarted, this, &BuildConfiguration::enabledChanged);
|
connect(project(), &Project::parsingStarted, this, &BuildConfiguration::enabledChanged);
|
||||||
connect(project(), &Project::parsingFinished, this, &BuildConfiguration::enabledChanged);
|
connect(project(), &Project::parsingFinished, this, &BuildConfiguration::enabledChanged);
|
||||||
|
|
||||||
|
connect(this, &BuildConfiguration::environmentChanged,
|
||||||
|
this, &QbsBuildConfiguration::triggerReparseIfActive);
|
||||||
|
connect(this, &BuildConfiguration::buildDirectoryChanged,
|
||||||
|
this, &QbsBuildConfiguration::triggerReparseIfActive);
|
||||||
|
connect(this, &QbsBuildConfiguration::qbsConfigurationChanged,
|
||||||
|
this, &QbsBuildConfiguration::triggerReparseIfActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsBuildConfiguration::initialize(const BuildInfo &info)
|
void QbsBuildConfiguration::initialize(const BuildInfo &info)
|
||||||
@@ -129,6 +136,12 @@ void QbsBuildConfiguration::initialize(const BuildInfo &info)
|
|||||||
emit qbsConfigurationChanged();
|
emit qbsConfigurationChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QbsBuildConfiguration::triggerReparseIfActive()
|
||||||
|
{
|
||||||
|
if (isActive())
|
||||||
|
qbsProject()->delayParsing();
|
||||||
|
}
|
||||||
|
|
||||||
bool QbsBuildConfiguration::fromMap(const QVariantMap &map)
|
bool QbsBuildConfiguration::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
if (!BuildConfiguration::fromMap(map))
|
if (!BuildConfiguration::fromMap(map))
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
bool fromMap(const QVariantMap &map) override;
|
bool fromMap(const QVariantMap &map) override;
|
||||||
|
void triggerReparseIfActive();
|
||||||
|
|
||||||
QStringList m_changedFiles;
|
QStringList m_changedFiles;
|
||||||
QStringList m_activeFileTags;
|
QStringList m_activeFileTags;
|
||||||
|
|||||||
@@ -150,9 +150,6 @@ QbsProject::QbsProject(const FilePath &fileName) :
|
|||||||
if (static_cast<ProjectConfiguration *>(sender())->isActive())
|
if (static_cast<ProjectConfiguration *>(sender())->isActive())
|
||||||
delayParsing();
|
delayParsing();
|
||||||
};
|
};
|
||||||
subscribeSignal(&BuildConfiguration::environmentChanged, this, delayedParsing);
|
|
||||||
subscribeSignal(&BuildConfiguration::buildDirectoryChanged, this, delayedParsing);
|
|
||||||
subscribeSignal(&QbsBuildConfiguration::qbsConfigurationChanged, this, delayedParsing);
|
|
||||||
subscribeSignal(&Target::activeBuildConfigurationChanged, this, delayedParsing);
|
subscribeSignal(&Target::activeBuildConfigurationChanged, this, delayedParsing);
|
||||||
|
|
||||||
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing);
|
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing);
|
||||||
|
|||||||
Reference in New Issue
Block a user