summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/projectexplorer/environmentaspect.cpp32
-rw-r--r--src/plugins/projectexplorer/environmentaspect.h18
-rw-r--r--src/plugins/projectexplorer/localenvironmentaspect.cpp30
-rw-r--r--src/plugins/projectexplorer/localenvironmentaspect.h8
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp57
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h8
-rw-r--r--src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp38
-rw-r--r--src/plugins/remotelinux/remotelinuxenvironmentaspect.h7
8 files changed, 77 insertions, 121 deletions
diff --git a/src/plugins/projectexplorer/environmentaspect.cpp b/src/plugins/projectexplorer/environmentaspect.cpp
index 0b311c3aa0..21fc6adb27 100644
--- a/src/plugins/projectexplorer/environmentaspect.cpp
+++ b/src/plugins/projectexplorer/environmentaspect.cpp
@@ -40,7 +40,7 @@ namespace ProjectExplorer {
// --------------------------------------------------------------------
EnvironmentAspect::EnvironmentAspect(RunConfiguration *runConfig) :
- IRunConfigurationAspect(runConfig), m_base(-1)
+ IRunConfigurationAspect(runConfig)
{
setDisplayName(tr("Run Environment"));
setId("EnvironmentAspect");
@@ -49,13 +49,6 @@ EnvironmentAspect::EnvironmentAspect(RunConfiguration *runConfig) :
int EnvironmentAspect::baseEnvironmentBase() const
{
- if (m_base == -1) {
- QList<int> bases = possibleBaseEnvironments();
- QTC_ASSERT(!bases.isEmpty(), return -1);
- foreach (int i, bases)
- QTC_CHECK(i >= 0);
- m_base = bases.at(0);
- }
return m_base;
}
@@ -86,6 +79,29 @@ Utils::Environment EnvironmentAspect::environment() const
return env;
}
+QList<int> EnvironmentAspect::possibleBaseEnvironments() const
+{
+ return m_displayNames.keys();
+}
+
+QString EnvironmentAspect::baseEnvironmentDisplayName(int base) const
+{
+ return m_displayNames[base];
+}
+
+void EnvironmentAspect::addSupportedBaseEnvironment(int base, const QString &displayName)
+{
+ m_displayNames[base] = displayName;
+ if (m_base == -1)
+ m_base = base;
+}
+
+void EnvironmentAspect::addPreferredBaseEnvironment(int base, const QString &displayName)
+{
+ m_displayNames[base] = displayName;
+ m_base = base;
+}
+
void EnvironmentAspect::fromMap(const QVariantMap &map)
{
m_base = map.value(QLatin1String(BASE_KEY), -1).toInt();
diff --git a/src/plugins/projectexplorer/environmentaspect.h b/src/plugins/projectexplorer/environmentaspect.h
index 4493ed960a..544629b4d4 100644
--- a/src/plugins/projectexplorer/environmentaspect.h
+++ b/src/plugins/projectexplorer/environmentaspect.h
@@ -41,8 +41,13 @@ class PROJECTEXPLORER_EXPORT EnvironmentAspect : public IRunConfigurationAspect
Q_OBJECT
public:
- virtual QList<int> possibleBaseEnvironments() const = 0;
- virtual QString baseEnvironmentDisplayName(int base) const = 0;
+ // The environment the user chose as base for his modifications.
+ virtual Utils::Environment baseEnvironment() const = 0;
+ // The environment including the user's modifications.
+ Utils::Environment environment() const;
+
+ QList<int> possibleBaseEnvironments() const;
+ QString baseEnvironmentDisplayName(int base) const;
int baseEnvironmentBase() const;
void setBaseEnvironmentBase(int base);
@@ -50,10 +55,8 @@ public:
QList<Utils::EnvironmentItem> userEnvironmentChanges() const { return m_changes; }
void setUserEnvironmentChanges(const QList<Utils::EnvironmentItem> &diff);
- // The environment the user chose as base for his modifications.
- virtual Utils::Environment baseEnvironment() const = 0;
- // The environment including the user's modifications.
- Utils::Environment environment() const;
+ void addSupportedBaseEnvironment(int base, const QString &displayName);
+ void addPreferredBaseEnvironment(int base, const QString &displayName);
signals:
void baseEnvironmentChanged();
@@ -66,8 +69,9 @@ protected:
void toMap(QVariantMap &map) const override;
private:
- mutable int m_base;
+ int m_base = -1;
QList<Utils::EnvironmentItem> m_changes;
+ QMap<int, QString> m_displayNames;
};
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.cpp b/src/plugins/projectexplorer/localenvironmentaspect.cpp
index e06eeab353..04d7814ef4 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.cpp
+++ b/src/plugins/projectexplorer/localenvironmentaspect.cpp
@@ -35,27 +35,11 @@
namespace ProjectExplorer {
-// --------------------------------------------------------------------
-// LocalEnvironmentAspect:
-// --------------------------------------------------------------------
-
-QList<int> LocalEnvironmentAspect::possibleBaseEnvironments() const
-{
- return QList<int>() << static_cast<int>(BuildEnvironmentBase)
- << static_cast<int>(SystemEnvironmentBase)
- << static_cast<int>(CleanEnvironmentBase);
-}
-
-QString LocalEnvironmentAspect::baseEnvironmentDisplayName(int base) const
-{
- if (base == static_cast<int>(BuildEnvironmentBase))
- return tr("Build Environment");
- if (base == static_cast<int>(SystemEnvironmentBase))
- return tr("System Environment");
- if (base == static_cast<int>(CleanEnvironmentBase))
- return tr("Clean Environment");
- return QString();
-}
+enum BaseEnvironmentBase {
+ CleanEnvironmentBase = 0,
+ SystemEnvironmentBase,
+ BuildEnvironmentBase
+};
Utils::Environment LocalEnvironmentAspect::baseEnvironment() const
{
@@ -88,6 +72,10 @@ LocalEnvironmentAspect::LocalEnvironmentAspect(RunConfiguration *parent,
const BaseEnvironmentModifier &modifier) :
EnvironmentAspect(parent), m_baseEnvironmentModifier(modifier)
{
+ addPreferredBaseEnvironment(BuildEnvironmentBase, tr("Build Environment"));
+ addSupportedBaseEnvironment(SystemEnvironmentBase, tr("System Environment"));
+ addSupportedBaseEnvironment(CleanEnvironmentBase, tr("Clean Environment"));
+
parent->target()->subscribeSignal(&BuildConfiguration::environmentChanged,
this, &LocalEnvironmentAspect::buildEnvironmentHasChanged);
connect(parent->target(), &Target::activeBuildConfigurationChanged,
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.h b/src/plugins/projectexplorer/localenvironmentaspect.h
index 30b4fee3a1..a089cfa7f1 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.h
+++ b/src/plugins/projectexplorer/localenvironmentaspect.h
@@ -37,19 +37,11 @@ public:
typedef std::function<void(RunConfiguration *, Utils::Environment &)> BaseEnvironmentModifier;
LocalEnvironmentAspect(RunConfiguration *parent, const BaseEnvironmentModifier &modifier);
- QList<int> possibleBaseEnvironments() const override;
- QString baseEnvironmentDisplayName(int base) const override;
Utils::Environment baseEnvironment() const override;
void buildEnvironmentHasChanged();
private:
- enum BaseEnvironmentBase {
- CleanEnvironmentBase = 0,
- SystemEnvironmentBase,
- BuildEnvironmentBase
- };
-
BaseEnvironmentModifier m_baseEnvironmentModifier;
};
diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
index a4721ada4e..89cf5b6039 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
@@ -27,46 +27,25 @@
#include "qmlproject.h"
+#include <projectexplorer/kit.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/target.h>
-#include <projectexplorer/kit.h>
-#include <utils/qtcassert.h>
-
-namespace QmlProjectManager {
-// --------------------------------------------------------------------
-// QmlProjectEnvironmentAspect:
-// --------------------------------------------------------------------
+using namespace ProjectExplorer;
+using namespace Utils;
-QList<int> QmlProjectEnvironmentAspect::possibleBaseEnvironments() const
-{
- QList<int> ret;
- if (ProjectExplorer::DeviceTypeKitInformation::deviceTypeId(runConfiguration()->target()->kit())
- == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
- ret << SystemEnvironmentBase;
- }
- ret << CleanEnvironmentBase;
- return ret;
-}
+namespace QmlProjectManager {
-QString QmlProjectEnvironmentAspect::baseEnvironmentDisplayName(int base) const
-{
- switch (base) {
- case SystemEnvironmentBase:
- return tr("System Environment");
- case CleanEnvironmentBase:
- return tr("Clean Environment");
- default:
- QTC_CHECK(false);
- return QString();
- }
-}
+enum BaseEnvironmentBase {
+ SystemEnvironmentBase = 0,
+ CleanEnvironmentBase
+};
-Utils::Environment QmlProjectEnvironmentAspect::baseEnvironment() const
+Environment QmlProjectEnvironmentAspect::baseEnvironment() const
{
- Utils::Environment env = baseEnvironmentBase() == SystemEnvironmentBase
- ? Utils::Environment::systemEnvironment()
- : Utils::Environment();
+ Environment env = baseEnvironmentBase() == SystemEnvironmentBase
+ ? Environment::systemEnvironment()
+ : Environment();
if (QmlProject *project = qobject_cast<QmlProject *>(runConfiguration()->target()->project()))
env.modify(project->environment());
@@ -74,8 +53,14 @@ Utils::Environment QmlProjectEnvironmentAspect::baseEnvironment() const
return env;
}
-QmlProjectEnvironmentAspect::QmlProjectEnvironmentAspect(ProjectExplorer::RunConfiguration *rc) :
- ProjectExplorer::EnvironmentAspect(rc)
-{ }
+QmlProjectEnvironmentAspect::QmlProjectEnvironmentAspect(RunConfiguration *rc)
+ : EnvironmentAspect(rc)
+{
+ if (DeviceTypeKitInformation::deviceTypeId(runConfiguration()->target()->kit())
+ == Constants::DESKTOP_DEVICE_TYPE)
+ addPreferredBaseEnvironment(SystemEnvironmentBase, tr("System Environment"));
+
+ addSupportedBaseEnvironment(CleanEnvironmentBase, tr("Clean Environment"));
+}
} // namespace QmlProjectManager
diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
index efa32fdfdb..97a49c4b30 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
@@ -36,15 +36,7 @@ class QmlProjectEnvironmentAspect : public ProjectExplorer::EnvironmentAspect
public:
QmlProjectEnvironmentAspect(ProjectExplorer::RunConfiguration *rc);
- QList<int> possibleBaseEnvironments() const override;
- QString baseEnvironmentDisplayName(int base) const override;
Utils::Environment baseEnvironment() const override;
-
-private:
- enum BaseEnvironmentBase {
- SystemEnvironmentBase = 0,
- CleanEnvironmentBase,
- };
};
} // namespace QmlProjectManager
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
index 7a2bc8c1ba..2ad9d3da7e 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
@@ -28,46 +28,32 @@
#include "remotelinuxenvironmentaspectwidget.h"
#include "utils/algorithm.h"
-static const char DISPLAY_KEY[] = "DISPLAY";
-static const char VERSION_KEY[] = "RemoteLinux.EnvironmentAspect.Version";
-static const int ENVIRONMENTASPECT_VERSION = 1; // Version was introduced in 4.3 with the value 1
+namespace RemoteLinux {
-namespace {
+const char DISPLAY_KEY[] = "DISPLAY";
+const char VERSION_KEY[] = "RemoteLinux.EnvironmentAspect.Version";
+const int ENVIRONMENTASPECT_VERSION = 1; // Version was introduced in 4.3 with the value 1
-bool displayAlreadySet(const QList<Utils::EnvironmentItem> &changes)
+static bool displayAlreadySet(const QList<Utils::EnvironmentItem> &changes)
{
return Utils::contains(changes, [](const Utils::EnvironmentItem &item) {
return item.name == DISPLAY_KEY;
});
}
-} // anonymous namespace
-
-namespace RemoteLinux {
+enum BaseEnvironmentBase {
+ CleanBaseEnvironment = 0,
+ RemoteBaseEnvironment = 1
+};
-// --------------------------------------------------------------------
-// RemoteLinuxEnvironmentAspect:
-// --------------------------------------------------------------------
RemoteLinuxEnvironmentAspect::RemoteLinuxEnvironmentAspect(ProjectExplorer::RunConfiguration *rc) :
ProjectExplorer::EnvironmentAspect(rc)
{
- setRunConfigWidgetCreator([this] { return new RemoteLinuxEnvironmentAspectWidget(this); });
-}
-
-QList<int> RemoteLinuxEnvironmentAspect::possibleBaseEnvironments() const
-{
- return QList<int>() << static_cast<int>(RemoteBaseEnvironment)
- << static_cast<int>(CleanBaseEnvironment);
-}
+ addSupportedBaseEnvironment(CleanBaseEnvironment, tr("Clean Environment"));
+ addPreferredBaseEnvironment(RemoteBaseEnvironment, tr("System Environment"));
-QString RemoteLinuxEnvironmentAspect::baseEnvironmentDisplayName(int base) const
-{
- if (base == static_cast<int>(CleanBaseEnvironment))
- return tr("Clean Environment");
- else if (base == static_cast<int>(RemoteBaseEnvironment))
- return tr("System Environment");
- return QString();
+ setRunConfigWidgetCreator([this] { return new RemoteLinuxEnvironmentAspectWidget(this); });
}
Utils::Environment RemoteLinuxEnvironmentAspect::baseEnvironment() const
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
index 4a3126340e..5f20e3d4a3 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
@@ -38,8 +38,6 @@ class REMOTELINUX_EXPORT RemoteLinuxEnvironmentAspect : public ProjectExplorer::
public:
RemoteLinuxEnvironmentAspect(ProjectExplorer::RunConfiguration *rc);
- QList<int> possibleBaseEnvironments() const override;
- QString baseEnvironmentDisplayName(int base) const override;
Utils::Environment baseEnvironment() const override;
Utils::Environment remoteEnvironment() const;
@@ -52,11 +50,6 @@ protected:
void toMap(QVariantMap &map) const override;
private:
- enum BaseEnvironmentBase {
- CleanBaseEnvironment = 0,
- RemoteBaseEnvironment = 1
- };
-
Utils::Environment m_remoteEnvironment;
};