From afbfcf8d70a7ffe9489c835c2f52520e3e7c4a6d Mon Sep 17 00:00:00 2001
From: Tim Jenssen <tim.jenssen@qt.io>
Date: Mon, 31 Jul 2017 14:57:21 +0200
Subject: [PATCH] ProjectConfiguration: Add project() member

Change-Id: I0a7170c1721a9e5bcf18af1bab8158af71c64454
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
---
 src/plugins/projectexplorer/buildconfiguration.cpp      | 5 +++++
 src/plugins/projectexplorer/buildconfiguration.h        | 1 +
 src/plugins/projectexplorer/buildstep.h                 | 2 +-
 src/plugins/projectexplorer/buildsteplist.cpp           | 5 +++++
 src/plugins/projectexplorer/buildsteplist.h             | 1 +
 src/plugins/projectexplorer/deployconfiguration.cpp     | 5 +++++
 src/plugins/projectexplorer/deployconfiguration.h       | 1 +
 src/plugins/projectexplorer/projectconfiguration.h      | 2 ++
 src/plugins/projectexplorer/runconfiguration.cpp        | 5 +++++
 src/plugins/projectexplorer/runconfiguration.h          | 1 +
 src/plugins/projectexplorer/target.h                    | 2 +-
 src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp | 2 +-
 src/plugins/qbsprojectmanager/qbsbuildconfiguration.h   | 4 +++-
 13 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index 3464c033f64..a712d7bbf5f 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -226,6 +226,11 @@ Target *BuildConfiguration::target() const
     return static_cast<Target *>(parent());
 }
 
+Project *BuildConfiguration::project() const
+{
+    return target()->project();
+}
+
 Utils::Environment BuildConfiguration::baseEnvironment() const
 {
     Utils::Environment result;
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h
index 03d42d4dbdc..09e4db7d7e6 100644
--- a/src/plugins/projectexplorer/buildconfiguration.h
+++ b/src/plugins/projectexplorer/buildconfiguration.h
@@ -73,6 +73,7 @@ public:
     QVariantMap toMap() const override;
 
     Target *target() const;
+    Project *project() const override;
 
     virtual bool isEnabled() const;
     virtual QString disabledReason() const;
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index bd907d9ddec..c9e35f19464 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -70,7 +70,7 @@ public:
     DeployConfiguration *deployConfiguration() const;
     ProjectConfiguration *projectConfiguration() const;
     Target *target() const;
-    Project *project() const;
+    Project *project() const override;
 
     enum class OutputFormat {
         Stdout, Stderr, // These are for forwarded output from external tools
diff --git a/src/plugins/projectexplorer/buildsteplist.cpp b/src/plugins/projectexplorer/buildsteplist.cpp
index 51b25fe2040..1a8d76ad8e5 100644
--- a/src/plugins/projectexplorer/buildsteplist.cpp
+++ b/src/plugins/projectexplorer/buildsteplist.cpp
@@ -198,3 +198,8 @@ Target *BuildStepList::target() const
         return dc->target();
     return 0;
 }
+
+Project *BuildStepList::project() const
+{
+    return target()->project();
+}
diff --git a/src/plugins/projectexplorer/buildsteplist.h b/src/plugins/projectexplorer/buildsteplist.h
index 1ca131e2eb4..d12be14f54c 100644
--- a/src/plugins/projectexplorer/buildsteplist.h
+++ b/src/plugins/projectexplorer/buildsteplist.h
@@ -78,6 +78,7 @@ public:
     BuildStep *at(int position);
 
     Target *target() const;
+    Project *project() const override;
 
     virtual QVariantMap toMap() const override;
     virtual bool fromMap(const QVariantMap &map) override;
diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp
index 119d9a057c2..217ea215feb 100644
--- a/src/plugins/projectexplorer/deployconfiguration.cpp
+++ b/src/plugins/projectexplorer/deployconfiguration.cpp
@@ -141,6 +141,11 @@ Target *DeployConfiguration::target() const
     return static_cast<Target *>(parent());
 }
 
+Project *DeployConfiguration::project() const
+{
+    return target()->project();
+}
+
 void DeployConfiguration::cloneSteps(DeployConfiguration *source)
 {
     if (source == this)
diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h
index aec33fd3086..593c3c66f85 100644
--- a/src/plugins/projectexplorer/deployconfiguration.h
+++ b/src/plugins/projectexplorer/deployconfiguration.h
@@ -59,6 +59,7 @@ public:
     virtual QString disabledReason() const;
 
     Target *target() const;
+    Project *project() const override;
 
 signals:
     void enabledChanged();
diff --git a/src/plugins/projectexplorer/projectconfiguration.h b/src/plugins/projectexplorer/projectconfiguration.h
index 84bc778d75c..57ea50ca6c6 100644
--- a/src/plugins/projectexplorer/projectconfiguration.h
+++ b/src/plugins/projectexplorer/projectconfiguration.h
@@ -65,6 +65,8 @@ public:
     Utils::MacroExpander *macroExpander() { return &m_macroExpander; }
     const Utils::MacroExpander *macroExpander() const { return &m_macroExpander; }
 
+    virtual Project *project() const = 0;
+
 signals:
     void displayNameChanged();
     void toolTipChanged();
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index db10c5752ba..27b6a777280 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -315,6 +315,11 @@ Target *RunConfiguration::target() const
     return static_cast<Target *>(parent());
 }
 
+Project *RunConfiguration::project() const
+{
+    return target()->project();
+}
+
 QVariantMap RunConfiguration::toMap() const
 {
     QVariantMap map = ProjectConfiguration::toMap();
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index fa57833f217..5c83ba46456 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -217,6 +217,7 @@ public:
     virtual ConfigurationState ensureConfigured(QString *errorMessage = nullptr);
 
     Target *target() const;
+    Project *project() const override;
 
     virtual Utils::OutputFormatter *createOutputFormatter() const;
 
diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h
index 61f3ed56155..e74b29793d5 100644
--- a/src/plugins/projectexplorer/target.h
+++ b/src/plugins/projectexplorer/target.h
@@ -55,7 +55,7 @@ class PROJECTEXPLORER_EXPORT Target : public ProjectConfiguration
 public:
     ~Target() override;
 
-    Project *project() const;
+    Project *project() const override;
 
     // Kit:
     Kit *kit() const;
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
index 98af06c996f..2b11012b28f 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
@@ -147,7 +147,7 @@ QVariantMap QbsBuildConfiguration::qbsConfiguration() const
 
 Internal::QbsProject *QbsBuildConfiguration::project() const
 {
-    return qobject_cast<Internal::QbsProject *>(target()->project());
+    return qobject_cast<Internal::QbsProject *>(BuildConfiguration::project());
 }
 
 IOutputParser *QbsBuildConfiguration::createOutputParser() const
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
index 6df507fde69..1a0248d8f6a 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
@@ -27,6 +27,8 @@
 
 #include "qbsprojectmanager_global.h"
 
+#include "qbsproject.h"
+
 #include <projectexplorer/buildconfiguration.h>
 #include <qtsupport/baseqtversion.h>
 
@@ -56,7 +58,7 @@ public:
     QbsBuildStep *qbsStep() const;
     QVariantMap qbsConfiguration() const;
 
-    Internal::QbsProject *project() const;
+    Internal::QbsProject *project() const override;
 
     ProjectExplorer::IOutputParser *createOutputParser() const;
 
-- 
GitLab