diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp index 40c7ea28d48..e3283c27e9c 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp @@ -29,25 +29,22 @@ #include "genericproject.h" #include "genericprojectconstants.h" -#include - #include #include #include +#include #include #include -#include + #include #include -#include #include #include -#include -#include using namespace ProjectExplorer; +using namespace Utils; namespace GenericProjectManager { namespace Internal { @@ -55,6 +52,16 @@ namespace Internal { GenericBuildConfiguration::GenericBuildConfiguration(Target *parent, Core::Id id) : BuildConfiguration(parent, id) { + setConfigWidgetDisplayName(tr("Generic Manager")); + + BaseStringAspect *bd = buildDirectoryAspect(); + bd->setDisplayStyle(BaseStringAspect::PathChooserDisplay); + bd->setExpectedKind(PathChooser::Directory); + bd->setHistoryCompleter("Generic.BuildDir.History"); + bd->setLabelText(tr("Build directory:")); + bd->setBaseFileName(parent->project()->projectDirectory()); + bd->setEnvironment(environment()); + updateCacheAndEmitEnvironmentChanged(); } @@ -71,10 +78,6 @@ void GenericBuildConfiguration::initialize(const BuildInfo &info) updateCacheAndEmitEnvironmentChanged(); } -NamedWidget *GenericBuildConfiguration::createConfigWidget() -{ - return new GenericBuildSettingsWidget(this); -} /*! \class GenericBuildConfigurationFactory @@ -127,44 +130,5 @@ void GenericBuildConfiguration::addToEnvironment(Utils::Environment &env) const env.prependOrSetPath(qt->binPath().toString()); } -//////////////////////////////////////////////////////////////////////////////////// -// GenericBuildSettingsWidget -//////////////////////////////////////////////////////////////////////////////////// - -GenericBuildSettingsWidget::GenericBuildSettingsWidget(GenericBuildConfiguration *bc) - : m_buildConfiguration(nullptr) -{ - auto fl = new QFormLayout(this); - fl->setContentsMargins(0, -1, 0, -1); - fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); - - // build directory - m_pathChooser = new Utils::PathChooser(this); - m_pathChooser->setHistoryCompleter("Generic.BuildDir.History"); - m_pathChooser->setEnabled(true); - fl->addRow(tr("Build directory:"), m_pathChooser); - connect(m_pathChooser, &Utils::PathChooser::rawPathChanged, - this, &GenericBuildSettingsWidget::buildDirectoryChanged); - - m_buildConfiguration = bc; - m_pathChooser->setBaseFileName(bc->target()->project()->projectDirectory()); - m_pathChooser->setEnvironment(bc->environment()); - m_pathChooser->setPath(m_buildConfiguration->rawBuildDirectory().toString()); - setDisplayName(tr("Generic Manager")); - - connect(bc, &GenericBuildConfiguration::environmentChanged, - this, &GenericBuildSettingsWidget::environmentHasChanged); -} - -void GenericBuildSettingsWidget::buildDirectoryChanged() -{ - m_buildConfiguration->setBuildDirectory(Utils::FileName::fromString(m_pathChooser->rawPath())); -} - -void GenericBuildSettingsWidget::environmentHasChanged() -{ - m_pathChooser->setEnvironment(m_buildConfiguration->environment()); -} - } // namespace Internal } // namespace GenericProjectManager diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.h b/src/plugins/genericprojectmanager/genericbuildconfiguration.h index e4d2e3e65af..494ab96e147 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.h +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.h @@ -26,12 +26,8 @@ #pragma once #include -#include -namespace Utils { -class FileName; -class PathChooser; -} // namespace Utils +namespace Utils { class FileName; } namespace GenericProjectManager { namespace Internal { @@ -44,7 +40,6 @@ class GenericBuildConfiguration : public ProjectExplorer::BuildConfiguration GenericBuildConfiguration(ProjectExplorer::Target *parent, Core::Id id); void initialize(const ProjectExplorer::BuildInfo &info) override; - ProjectExplorer::NamedWidget *createConfigWidget() override; BuildType buildType() const override; void addToEnvironment(Utils::Environment &env) const final; }; @@ -65,20 +60,5 @@ private: ProjectExplorer::BuildInfo createBuildInfo(const ProjectExplorer::Kit *k, const Utils::FileName &buildDir) const; }; -class GenericBuildSettingsWidget : public ProjectExplorer::NamedWidget -{ - Q_OBJECT - -public: - GenericBuildSettingsWidget(GenericBuildConfiguration *bc); - -private: - void buildDirectoryChanged(); - void environmentHasChanged(); - - Utils::PathChooser *m_pathChooser; - GenericBuildConfiguration *m_buildConfiguration; -}; - } // namespace Internal } // namespace GenericProjectManager