diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 7c40d8bc41e..e346208fe6d 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -311,6 +311,11 @@ BuildSystem *RunConfiguration::activeBuildSystem() const return target()->buildSystem(); } +void RunConfiguration::setUpdater(const Updater &updater) +{ + m_updater = updater; +} + QVariantMap RunConfiguration::toMap() const { QVariantMap map = ProjectConfiguration::toMap(); @@ -336,6 +341,12 @@ CommandLine RunConfiguration::commandLine() const return m_commandLineGetter(); } +void RunConfiguration::update() +{ + QTC_ASSERT(m_updater, return); + m_updater(); +} + BuildTargetInfo RunConfiguration::buildTargetInfo() const { BuildSystem *bs = target()->buildSystem(); diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index ae6ad9e2d65..c884a21f8f0 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -172,6 +172,8 @@ public: QMap aspectData() const; + void update(); + signals: void configurationFinished(); void enabledChanged(); @@ -183,6 +185,9 @@ protected: BuildConfiguration *activeBuildConfiguration() const; BuildSystem *activeBuildSystem() const; + using Updater = std::function; + void setUpdater(const Updater &updater); + virtual void updateEnabledState(); virtual void doAdditionalSetup(const RunConfigurationCreationInfo &) {} @@ -194,6 +199,7 @@ private: QString m_buildKey; CommandLineGetter m_commandLineGetter; + Updater m_updater; }; class RunConfigurationCreationInfo