From ef2f2804a1062d72d10a7456afd394557e334c9e Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 2 May 2016 16:04:45 +0200 Subject: [PATCH] ProjectConfiguration: Add isActive() method Returns true if the ProjectConfiguration element is currently active and false otherwise. Just a convenience method. Change-Id: If75809ae7e78149d264deaaf6adc4ca8a8be43c2 Reviewed-by: Tim Jenssen --- src/plugins/projectexplorer/buildconfiguration.cpp | 5 +++++ src/plugins/projectexplorer/buildconfiguration.h | 2 ++ src/plugins/projectexplorer/buildstep.cpp | 5 +++++ src/plugins/projectexplorer/buildstep.h | 2 ++ src/plugins/projectexplorer/buildsteplist.cpp | 5 +++++ src/plugins/projectexplorer/buildsteplist.h | 2 ++ src/plugins/projectexplorer/deployconfiguration.cpp | 5 +++++ src/plugins/projectexplorer/deployconfiguration.h | 2 ++ src/plugins/projectexplorer/projectconfiguration.h | 2 ++ src/plugins/projectexplorer/runconfiguration.cpp | 5 +++++ src/plugins/projectexplorer/runconfiguration.h | 2 ++ src/plugins/projectexplorer/target.cpp | 5 +++++ src/plugins/projectexplorer/target.h | 2 ++ 13 files changed, 44 insertions(+) diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index a712d7bbf5f..3e793ef6803 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -323,6 +323,11 @@ QString BuildConfiguration::buildTypeName(BuildConfiguration::BuildType type) } } +bool BuildConfiguration::isActive() const +{ + return target()->isActive() && target()->activeBuildConfiguration() == this; +} + /// // IBuildConfigurationFactory /// diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index 09e4db7d7e6..cc30d2ba44d 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -88,6 +88,8 @@ public: static QString buildTypeName(BuildType type); + bool isActive() const override; + signals: void environmentChanged(); void buildDirectoryChanged(); diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index c270e843c3b..14385d29939 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -178,6 +178,11 @@ void BuildStep::reportRunResult(QFutureInterface &fi, bool success) fi.reportFinished(); } +bool BuildStep::isActive() const +{ + return projectConfiguration()->isActive(); +} + /*! If this function returns \c true, the user cannot delete this build step for this target and the user is prevented from changing the order in which diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index c9e35f19464..55a88b0ede2 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -81,6 +81,8 @@ public: static void reportRunResult(QFutureInterface &fi, bool success); + bool isActive() const override; + signals: /// Adds a \p task to the Issues pane. /// Do note that for linking compile output with tasks, you should first emit the task diff --git a/src/plugins/projectexplorer/buildsteplist.cpp b/src/plugins/projectexplorer/buildsteplist.cpp index 1a8d76ad8e5..5246861072d 100644 --- a/src/plugins/projectexplorer/buildsteplist.cpp +++ b/src/plugins/projectexplorer/buildsteplist.cpp @@ -116,6 +116,11 @@ void BuildStepList::cloneSteps(BuildStepList *source) } } +bool BuildStepList::isActive() const +{ + return qobject_cast(parent())->isActive(); +} + bool BuildStepList::fromMap(const QVariantMap &map) { // We need the ID set before trying to restore the steps! diff --git a/src/plugins/projectexplorer/buildsteplist.h b/src/plugins/projectexplorer/buildsteplist.h index d12be14f54c..8a1c6659bc1 100644 --- a/src/plugins/projectexplorer/buildsteplist.h +++ b/src/plugins/projectexplorer/buildsteplist.h @@ -84,6 +84,8 @@ public: virtual bool fromMap(const QVariantMap &map) override; void cloneSteps(BuildStepList *source); + bool isActive() const override; + signals: void stepInserted(int position); void aboutToRemoveStep(int position); diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index 217ea215feb..9b809ecef3b 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -146,6 +146,11 @@ Project *DeployConfiguration::project() const return target()->project(); } +bool DeployConfiguration::isActive() const +{ + return target()->isActive() && target()->activeDeployConfiguration() == this; +} + void DeployConfiguration::cloneSteps(DeployConfiguration *source) { if (source == this) diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index 593c3c66f85..db3b37c5c30 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -61,6 +61,8 @@ public: Target *target() const; Project *project() const override; + bool isActive() const override; + signals: void enabledChanged(); diff --git a/src/plugins/projectexplorer/projectconfiguration.h b/src/plugins/projectexplorer/projectconfiguration.h index 57ea50ca6c6..086d1bcaab2 100644 --- a/src/plugins/projectexplorer/projectconfiguration.h +++ b/src/plugins/projectexplorer/projectconfiguration.h @@ -67,6 +67,8 @@ public: virtual Project *project() const = 0; + virtual bool isActive() const = 0; + signals: void displayNameChanged(); void toolTipChanged(); diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 27b6a777280..4b1065762bf 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -215,6 +215,11 @@ RunConfiguration::~RunConfiguration() qDeleteAll(m_aspects); } +bool RunConfiguration::isActive() const +{ + return target()->isActive() && target()->activeRunConfiguration() == this; +} + QString RunConfiguration::disabledReason() const { if (target()->project()->isParsing()) diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index 5c83ba46456..eb27ade61b8 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -206,6 +206,8 @@ class PROJECTEXPLORER_EXPORT RunConfiguration : public StatefulProjectConfigurat public: ~RunConfiguration() override; + bool isActive() const override; + QString disabledReason() const override; virtual QWidget *createConfigurationWidget() = 0; diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index d27b894bcc2..419545bda5a 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -209,6 +209,11 @@ void Target::handleKitRemoval(Kit *k) project()->removeTarget(this); } +bool Target::isActive() const +{ + return project()->activeTarget() == this; +} + Project *Target::project() const { return static_cast(parent()); diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index 3f168ce7846..013932cae9e 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -57,6 +57,8 @@ public: Project *project() const override; + bool isActive() const final; + // Kit: Kit *kit() const;