diff options
author | hjk <hjk@qt.io> | 2019-10-01 17:49:33 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-10-02 14:46:27 +0000 |
commit | e8d5e6c8083e0a5f4fd52687b45b05e53c72266c (patch) | |
tree | b1a9e65ff27b3e04a51134d360a78257e358afd0 | |
parent | 93ec10754f6186b0331b52cb9e96ad3f4341af91 (diff) |
ProjectExplorer: Run Settings: Move environment settings further up
Adding the global aspects last, not first, more or less
accidentally does the right thing.
Fixes: QTCREATORBUG-22669
Change-Id: Iaf3eb4382974335471fff2f409ea4df7ef8f81b3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
4 files changed, 20 insertions, 11 deletions
diff --git a/src/plugins/projectexplorer/environmentaspectwidget.cpp b/src/plugins/projectexplorer/environmentaspectwidget.cpp index b50c861972..d846c1b303 100644 --- a/src/plugins/projectexplorer/environmentaspectwidget.cpp +++ b/src/plugins/projectexplorer/environmentaspectwidget.cpp @@ -49,7 +49,7 @@ EnvironmentAspectWidget::EnvironmentAspectWidget(EnvironmentAspect *aspect, QWid setContentsMargins(0, 0, 0, 0); auto topLayout = new QVBoxLayout(this); - topLayout->setContentsMargins(0, 0, 0, 0); + topLayout->setContentsMargins(0, 0, 0, 25); auto baseEnvironmentWidget = new QWidget; auto baseLayout = new QHBoxLayout(baseEnvironmentWidget); diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index c0a06f099a..549f98e230 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -206,9 +206,6 @@ RunConfiguration::RunConfiguration(Target *target, Core::Id id) QCoreApplication::translate("ProjectExplorer", "The currently active run configuration's name."), [this] { return displayName(); }, false); - for (const AspectFactory &factory : theAspectFactories) - m_aspects.append(factory(target)); - m_commandLineGetter = [this] { FilePath executable; if (const auto executableAspect = aspect<ExecutableAspect>()) @@ -547,17 +544,29 @@ bool RunConfigurationFactory::canHandle(Target *target) const return true; } +RunConfiguration *RunConfigurationFactory::create(Target *target) const +{ + QTC_ASSERT(m_creator, return nullptr); + RunConfiguration *rc = m_creator(target); + QTC_ASSERT(rc, return nullptr); + + // Add the universal aspects. + for (const RunConfiguration::AspectFactory &factory : theAspectFactories) + rc->m_aspects.append(factory(target)); + + rc->acquaintAspects(); + return rc; +} + RunConfiguration *RunConfigurationCreationInfo::create(Target *target) const { QTC_ASSERT(factory->canHandle(target), return nullptr); QTC_ASSERT(id == factory->runConfigurationBaseId(), return nullptr); - QTC_ASSERT(factory->m_creator, return nullptr); - RunConfiguration *rc = factory->m_creator(target); + RunConfiguration *rc = factory->create(target); if (!rc) return nullptr; - rc->acquaintAspects(); rc->m_buildKey = buildKey; rc->doAdditionalSetup(*this); rc->setDisplayName(displayName); @@ -571,9 +580,7 @@ RunConfiguration *RunConfigurationFactory::restore(Target *parent, const QVarian if (factory->canHandle(parent)) { const Core::Id id = idFromMap(map); if (id.name().startsWith(factory->m_runConfigBaseId.name())) { - QTC_ASSERT(factory->m_creator, continue); - RunConfiguration *rc = factory->m_creator(parent); - rc->acquaintAspects(); + RunConfiguration *rc = factory->create(parent); if (rc->fromMap(map)) return rc; delete rc; diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index d78aacaabc..78175e6156 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -190,6 +190,7 @@ private: static void addAspectFactory(const AspectFactory &aspectFactory); friend class RunConfigurationCreationInfo; + friend class RunConfigurationFactory; QString m_buildKey; bool m_isEnabled = false; @@ -249,6 +250,7 @@ protected: private: bool canHandle(Target *target) const; + RunConfiguration *create(Target *target) const; friend class RunConfigurationCreationInfo; RunConfigurationCreator m_creator; diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 8a934874a7..aae80ffb72 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -151,7 +151,7 @@ RunSettingsWidget::RunSettingsWidget(Target *target) : this, &RunSettingsWidget::activeDeployConfigurationChanged); // run part - runWidget->setContentsMargins(0, 10, 0, 25); + runWidget->setContentsMargins(0, 10, 0, 0); m_runLayout = new QVBoxLayout(runWidget); m_runLayout->setContentsMargins(0, 0, 0, 0); m_runLayout->setSpacing(5); |