diff options
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); |