diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index e1d67a7a439..2499ad7f19d 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -94,6 +94,16 @@ DeployConfigurationWidget *DeployConfiguration::configurationWidget() const return 0; } +bool DeployConfiguration::isEnabled() const +{ + return false; +} + +QString DeployConfiguration::disabledReason() const +{ + return QString(); +} + bool DeployConfiguration::fromMap(const QVariantMap &map) { if (!ProjectConfiguration::fromMap(map)) diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index cc2844a6e3c..cc7bebf3d79 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -63,8 +63,14 @@ public: virtual DeployConfigurationWidget *configurationWidget() const; + virtual bool isEnabled() const; + virtual QString disabledReason() const; + Target *target() const; +signals: + void enabledChanged(); + protected: DeployConfiguration(Target *target, const QString &id); DeployConfiguration(Target *target, DeployConfiguration *source); diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 5cc125d8eea..4ee674d3efa 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -129,6 +129,20 @@ void Target::changeBuildConfigurationEnabled() emit buildConfigurationEnabledChanged(); } +void Target::changeDeployConfigurationEnabled() +{ + DeployConfiguration *dc = qobject_cast(sender()); + if (dc == activeDeployConfiguration()) + emit deployConfigurationEnabledChanged(); +} + +void Target::changeRunConfigurationEnabled() +{ + RunConfiguration *rc = qobject_cast(sender()); + if (rc == activeRunConfiguration()) + emit runConfigurationEnabledChanged(); +} + Project *Target::project() const { return static_cast(parent()); @@ -243,6 +257,8 @@ void Target::addDeployConfiguration(DeployConfiguration *dc) // add it d->m_deployConfigurations.push_back(dc); + connect(dc, SIGNAL(enabledChanged()), this, SLOT(changeDeployConfigurationEnabled())); + emit addedDeployConfiguration(dc); if (!d->m_activeDeployConfiguration) @@ -293,6 +309,7 @@ void Target::setActiveDeployConfiguration(DeployConfiguration *dc) dc != d->m_activeDeployConfiguration)) { d->m_activeDeployConfiguration = dc; emit activeDeployConfigurationChanged(d->m_activeDeployConfiguration); + emit deployConfigurationEnabledChanged(); } } @@ -341,6 +358,9 @@ void Target::addRunConfiguration(RunConfiguration* runConfiguration) runConfiguration->setDisplayName(configurationDisplayName); d->m_runConfigurations.push_back(runConfiguration); + + connect(runConfiguration, SIGNAL(enabledChanged()), this, SLOT(changeRunConfigurationEnabled())); + emit addedRunConfiguration(runConfiguration); if (!activeRunConfiguration()) @@ -376,6 +396,7 @@ void Target::setActiveRunConfiguration(RunConfiguration* configuration) configuration != d->m_activeRunConfiguration)) { d->m_activeRunConfiguration = configuration; emit activeRunConfigurationChanged(d->m_activeRunConfiguration); + emit runConfigurationEnabledChanged(); } } diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index 2bfb2bf5841..d15c1b04208 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -112,7 +112,6 @@ public: virtual QList possibleToolChains(BuildConfiguration *) const; virtual ToolChain *preferredToolChain(BuildConfiguration *) const; - virtual QVariantMap toMap() const; signals: @@ -123,8 +122,6 @@ signals: // TODO clean up signal names // might be better to also have aboutToRemove signals - void runConfigurationsEnabledStateChanged(); - void removedRunConfiguration(ProjectExplorer::RunConfiguration *); void addedRunConfiguration(ProjectExplorer::RunConfiguration *); void activeRunConfigurationChanged(ProjectExplorer::RunConfiguration *); @@ -141,9 +138,11 @@ signals: /// environmentChanged() or if the active build configuration changes void environmentChanged(); - /// convenience signal, emitted if either the active buildconfiguration emits + /// convenience signal, emitted if either the active configuration emits /// enabledChanged() or if the active build configuration changes void buildConfigurationEnabledChanged(); + void deployConfigurationEnabledChanged(); + void runConfigurationEnabledChanged(); protected: Target(Project *parent, const QString &id); @@ -155,6 +154,8 @@ protected: private slots: void changeEnvironment(); void changeBuildConfigurationEnabled(); + void changeDeployConfigurationEnabled(); + void changeRunConfigurationEnabled(); private: TargetPrivate *d;