aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprojectmanager
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-03-07 10:10:22 +0100
committerhjk <hjk@qt.io>2019-03-11 12:40:51 +0000
commit6faaea8d0c35c0c957784a5531762e971c2cca91 (patch)
tree9138838092b555ae4960818d26ef965899d490c2 /src/plugins/qmlprojectmanager
parent9606e240f77801693e1ae30b1db8faf5b9531176 (diff)
ProjectExplorer: Split EnvironmentAspect
... at least logically a bit more into hunks responsible for one of the possible choices of base environments. This makes it possible to move code that modifies individual cases closer to the only place that uses it. Change-Id: I1c87bb869e04e44b92ff097b0bf25274f93808be Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/qmlprojectmanager')
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index 49edca194dc..d6006ec6c70 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -278,27 +278,24 @@ void MainQmlFileAspect::changeCurrentFile(IEditor *editor)
QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id)
: RunConfiguration(target, id)
{
- enum BaseEnvironmentBase {
- SystemEnvironmentBase = 0,
- CleanEnvironmentBase
- };
-
auto envAspect = addAspect<EnvironmentAspect>();
- const Id deviceTypeId = DeviceTypeKitAspect::deviceTypeId(target->kit());
- if (deviceTypeId == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE)
- envAspect->addPreferredBaseEnvironment(SystemEnvironmentBase, tr("System Environment"));
- envAspect->addSupportedBaseEnvironment(CleanEnvironmentBase, tr("Clean Environment"));
- envAspect->setBaseEnvironmentGetter([envAspect, target]() -> Utils::Environment {
- Environment env = envAspect->baseEnvironmentBase() == SystemEnvironmentBase
- ? Environment::systemEnvironment()
- : Environment();
+ auto envModifier = [&](Environment env) {
if (auto project = qobject_cast<const QmlProject *>(target->project()))
env.modify(project->environment());
-
return env;
- });
+ };
+ const Id deviceTypeId = DeviceTypeKitAspect::deviceTypeId(target->kit());
+ if (deviceTypeId == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
+ envAspect->addPreferredBaseEnvironment(tr("System Environment"), [&] {
+ return envModifier(Environment::systemEnvironment());
+ });
+ }
+
+ envAspect->addSupportedBaseEnvironment(tr("Clean Environment"), [&] {
+ return envModifier(Environment());
+ });
m_qmlViewerAspect = addAspect<BaseStringAspect>();
m_qmlViewerAspect->setLabelText(tr("QML Viewer:"));