diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 0d5fb891c1f..030bb7b8da9 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -28,6 +28,7 @@ #include "buildenvironmentwidget.h" #include "buildinfo.h" #include "buildsteplist.h" +#include "namedwidget.h" #include "kit.h" #include "kitinformation.h" #include "kitmanager.h" @@ -47,6 +48,7 @@ #include #include +#include static const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount"; static const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList."; @@ -103,6 +105,23 @@ void BuildConfiguration::setBuildDirectory(const Utils::FileName &dir) emitBuildDirectoryChanged(); } +NamedWidget *BuildConfiguration::createConfigWidget() +{ + auto widget = new NamedWidget; + widget->setDisplayName(m_configWidgetDisplayName); + + auto formLayout = new QFormLayout(widget); + formLayout->setMargin(0); + formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); + + for (ProjectConfigurationAspect *aspect : aspects()) { + if (aspect->isVisible()) + aspect->addToConfigurationLayout(formLayout); + } + + return widget; +} + void BuildConfiguration::initialize(const BuildInfo &info) { setDisplayName(info.displayName); @@ -194,6 +213,11 @@ void BuildConfiguration::emitBuildDirectoryChanged() } } +void BuildConfiguration::setConfigWidgetDisplayName(const QString &display) +{ + m_configWidgetDisplayName = display; +} + Target *BuildConfiguration::target() const { return static_cast(parent()); diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index c40a9d82a62..85d57181b26 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -55,7 +55,7 @@ public: Utils::FileName rawBuildDirectory() const; void setBuildDirectory(const Utils::FileName &dir); - virtual NamedWidget *createConfigWidget() = 0; + virtual NamedWidget *createConfigWidget(); virtual QList createSubConfigWidgets(); // Maybe the BuildConfiguration is not the best place for the environment @@ -99,6 +99,8 @@ public: static void prependCompilerPathToEnvironment(Kit *k, Utils::Environment &env); void updateCacheAndEmitEnvironmentChanged(); + void setConfigWidgetDisplayName(const QString &display); + signals: void environmentChanged(); void buildDirectoryChanged(); @@ -117,6 +119,7 @@ private: Utils::FileName m_buildDirectory; Utils::FileName m_lastEmmitedBuildDirectory; mutable Utils::Environment m_cachedEnvironment; + QString m_configWidgetDisplayName; }; class PROJECTEXPLORER_EXPORT BuildConfigurationFactory : public QObject diff --git a/src/plugins/projectexplorer/namedwidget.h b/src/plugins/projectexplorer/namedwidget.h index 26c9550f7ee..870941c73b3 100644 --- a/src/plugins/projectexplorer/namedwidget.h +++ b/src/plugins/projectexplorer/namedwidget.h @@ -39,13 +39,11 @@ public: explicit NamedWidget(QWidget *parent = nullptr); QString displayName() const; + void setDisplayName(const QString &displayName); signals: void displayNameChanged(const QString &); -protected: - void setDisplayName(const QString &displayName); - private: QString m_displayName; };