diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index a1ba19182e55d4f4509fb7e7e70817b919306888..9a456cb8ce6c056fbb5fe496a608a70ff0c0e721 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -484,7 +484,6 @@ CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeBuildStep *buildStep if (pc->isActive()) updateDetails(); }); - } void CMakeBuildStepConfigWidget::toolArgumentsEdited() diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index ef5fb47599865e4dc6876499f73ac9bd602e00d6..1ab555a35e8b0d4ab4fe3e2d59d11ad3f86a9b82 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -242,7 +242,6 @@ void Project::addTarget(Target *t) d->m_targets.push_back(t); connect(t, &Target::buildConfigurationEnabledChanged, this, &Project::changeBuildConfigurationEnabled); - connect(t, &Target::buildDirectoryChanged, this, &Project::onBuildDirectoryChanged); connect(t, &Target::addedProjectConfiguration, this, &Project::addedProjectConfiguration); connect(t, &Target::aboutToRemoveProjectConfiguration, this, &Project::aboutToRemoveProjectConfiguration); connect(t, &Target::removedProjectConfiguration, this, &Project::removedProjectConfiguration); @@ -867,11 +866,4 @@ void Project::setPreferredKitPredicate(const Kit::Predicate &predicate) d->m_preferredKitPredicate = predicate; } -void Project::onBuildDirectoryChanged() -{ - auto target = qobject_cast<Target *>(sender()); - if (target && target == activeTarget()) - emit buildDirectoryChanged(); -} - } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h index 2d6ee34401677113e2d3d98b3b2fff4259b9f869..ba33b565249b12f9812766bbad094a74c5b4ec05 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -209,8 +209,6 @@ signals: void buildConfigurationEnabledChanged(); - void buildDirectoryChanged(); - void settingsLoaded(); void aboutToSaveSettings(); @@ -245,7 +243,6 @@ protected: private: void changeBuildConfigurationEnabled(); - void onBuildDirectoryChanged(); void setActiveTarget(Target *target); ProjectPrivate *d; diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index a62df235621f2a27ed1ef93a88c9ade57c4ae925..179b0edd5da4921a1b4573146e1ec124661a709a 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -174,13 +174,6 @@ void Target::changeRunConfigurationEnabled() emit runConfigurationEnabledChanged(); } -void Target::onBuildDirectoryChanged() -{ - auto bc = qobject_cast<BuildConfiguration *>(sender()); - if (bc && activeBuildConfiguration() == bc) - emit buildDirectoryChanged(); -} - void Target::handleKitUpdates(Kit *k) { if (k != d->m_kit) @@ -241,8 +234,6 @@ void Target::addBuildConfiguration(BuildConfiguration *bc) connect(bc, &BuildConfiguration::enabledChanged, this, &Target::changeBuildConfigurationEnabled); - connect(bc, &BuildConfiguration::buildDirectoryChanged, - this, &Target::onBuildDirectoryChanged); if (!activeBuildConfiguration()) setActiveBuildConfiguration(bc); @@ -295,7 +286,6 @@ void Target::setActiveBuildConfiguration(BuildConfiguration *bc) emit activeProjectConfigurationChanged(d->m_activeBuildConfiguration); emit activeBuildConfigurationChanged(d->m_activeBuildConfiguration); emit buildConfigurationEnabledChanged(); - emit buildDirectoryChanged(); } } diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index 548471093904878cfe2343e7fcd570a2b968a117..ff2ef088994b569ad4605f382362a9e8f019dfef 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -169,11 +169,6 @@ signals: void deploymentDataChanged(); void applicationTargetsChanged(); - // Remove all the signals below, they are stupid - /// Emitted whenever the current build configuartion changed or the build directory of the current - /// build configuration was changed. - void buildDirectoryChanged(); - private: Target(Project *parent, Kit *k); void setEnabled(bool); @@ -181,7 +176,6 @@ private: bool fromMap(const QVariantMap &map) override; void updateDeviceState(); - void onBuildDirectoryChanged(); void changeBuildConfigurationEnabled(); void changeDeployConfigurationEnabled(); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index a229d05397c02013c6ab03af44dc1192dc09f9cd..063e6bf203b98c3d784613d2691ccf15f5b3dd2e 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -553,8 +553,11 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : this, &QbsBuildStepConfigWidget::updateState); connect(&QbsProjectManagerSettings::instance(), &QbsProjectManagerSettings::settingsBaseChanged, this, &QbsBuildStepConfigWidget::updateState); - connect(step->buildConfiguration()->target(), &ProjectExplorer::Target::buildDirectoryChanged, - this, &QbsBuildStepConfigWidget::updateState); + step->target()->subscribeSignal(&ProjectExplorer::BuildConfiguration::buildDirectoryChanged, + this, [this]() { + if (m_step->target()->activeBuildConfiguration() == sender()) + updateState(); + }); setContentsMargins(0, 0, 0, 0); diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 46e79f4d5d54077e800310a90717e30c2f4e8c9a..bd9f93ed2a8508331c34e085c235c692d8bbad9e 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -544,7 +544,10 @@ void QbsProject::targetWasAdded(Target *t) { m_qbsProjects.insert(t, qbs::Project()); connect(t, &Target::activeBuildConfigurationChanged, this, &QbsProject::delayParsing); - connect(t, &Target::buildDirectoryChanged, this, &QbsProject::delayParsing); + t->subscribeSignal(&BuildConfiguration::buildDirectoryChanged, this, [this]() { + if (static_cast<BuildConfiguration *>(sender())->isActive()) + delayParsing(); + }); } void QbsProject::targetWasRemoved(Target *t)