aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/genericprojectmanager/genericmakestep.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-07-29 23:34:56 +0200
committerTobias Hunger <tobias.hunger@qt.io>2017-08-02 11:19:28 +0000
commite52ebbf217499e50a00ec35095aaf0f606416491 (patch)
tree89044e062e2dcc6c9c7aa799192f1dd03bf410ad /src/plugins/genericprojectmanager/genericmakestep.cpp
parent34456aa906434b2c90ff179b11ba90dc5a273bd6 (diff)
ProjectExplorer: Add subscribeSignal method to targets and projects
Add a subscribeSignal method to targets and projects that will make sure all signals of all project configurations added during the lifetime of the project/target will get connected (if the type matches). Use this to connect to some signal in all BuildConfigurations of a project and get rid of code that keeps connecting to the current build configuration. Use Project::buildEnvironmentChanged as an example and convert its usages. Change-Id: I689bcebac4b191bf3f8a18765bf18eaac371c5fe Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/genericprojectmanager/genericmakestep.cpp')
-rw-r--r--src/plugins/genericprojectmanager/genericmakestep.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp
index 8569a994ef..082be2dd14 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.cpp
+++ b/src/plugins/genericprojectmanager/genericmakestep.cpp
@@ -232,7 +232,7 @@ GenericMakeStepConfigWidget::GenericMakeStepConfigWidget(GenericMakeStep *makeSt
m_ui->makeLineEdit->setText(m_makeStep->m_makeCommand);
m_ui->makeArgumentsLineEdit->setText(m_makeStep->m_makeArguments);
- updateMakeOverrrideLabel();
+ updateMakeOverrideLabel();
updateDetails();
connect(m_ui->targetsList, &QListWidget::itemChanged,
@@ -243,17 +243,26 @@ GenericMakeStepConfigWidget::GenericMakeStepConfigWidget(GenericMakeStep *makeSt
this, &GenericMakeStepConfigWidget::makeArgumentsLineEditTextEdited);
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged,
- this, &GenericMakeStepConfigWidget::updateMakeOverrrideLabel);
+ this, &GenericMakeStepConfigWidget::updateMakeOverrideLabel);
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged,
this, &GenericMakeStepConfigWidget::updateDetails);
connect(m_makeStep->target(), &Target::kitChanged,
- this, &GenericMakeStepConfigWidget::updateMakeOverrrideLabel);
-
- connect(pro, &GenericProject::environmentChanged,
- this, &GenericMakeStepConfigWidget::updateMakeOverrrideLabel);
- connect(pro, &GenericProject::environmentChanged,
- this, &GenericMakeStepConfigWidget::updateDetails);
+ this, &GenericMakeStepConfigWidget::updateMakeOverrideLabel);
+
+ pro->subscribeSignal(&BuildConfiguration::environmentChanged, this, [this]() {
+ if (static_cast<BuildConfiguration *>(sender())->isActive()) {
+ updateMakeOverrideLabel();
+ updateDetails();
+ }
+ });
+ connect(pro, &Project::activeProjectConfigurationChanged,
+ this, [this](ProjectConfiguration *pc) {
+ if (pc->isActive()) {
+ updateMakeOverrideLabel();
+ updateDetails();
+ }
+ });
}
GenericMakeStepConfigWidget::~GenericMakeStepConfigWidget()
@@ -266,7 +275,7 @@ QString GenericMakeStepConfigWidget::displayName() const
return tr("Make", "GenericMakestep display name.");
}
-void GenericMakeStepConfigWidget::updateMakeOverrrideLabel()
+void GenericMakeStepConfigWidget::updateMakeOverrideLabel()
{
BuildConfiguration *bc = m_makeStep->buildConfiguration();
if (!bc)