From a64b969f6fb556fbde217711beedef2807be400f Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 29 Apr 2019 12:43:34 +0200 Subject: [PATCH] ProjectExplorer: Consolidate setup of build dir aspect This is getting repetitive. There's a new connect too, that's not wrong in the current two uses and will be helpful in the upcoming Qbs one. Change-Id: I4a4923a43937922c66be1f73822103b1e3e7b077 Reviewed-by: Orgad Shaneh --- .../autotoolsbuildconfiguration.cpp | 9 +-------- .../genericbuildconfiguration.cpp | 9 +-------- .../projectexplorer/buildconfiguration.cpp | 18 +++++++++++++++--- .../projectexplorer/buildconfiguration.h | 1 + 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp index 8ea2db675e6..b721a606ac1 100644 --- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp +++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp @@ -59,15 +59,8 @@ AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(Target *parent, Core::I // / is used so the un-changed check in setBuildDirectory() works correctly. // The leading / is to avoid the relative the path expansion in BuildConfiguration::buildDirectory. setBuildDirectory(Utils::FileName::fromString("/")); + setBuildDirectoryHistoryCompleter("AutoTools.BuildDir.History"); setConfigWidgetDisplayName(tr("Autotools Manager")); - - BaseStringAspect *bd = buildDirectoryAspect(); - bd->setLabelText(tr("Build directory:")); - bd->setDisplayStyle(BaseStringAspect::PathChooserDisplay); - bd->setExpectedKind(PathChooser::Directory); - bd->setBaseFileName(parent->project()->projectDirectory()); - bd->setEnvironment(environment()); - bd->setHistoryCompleter("AutoTools.BuildDir.History"); } void AutotoolsBuildConfiguration::initialize(const BuildInfo &info) diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp index e3283c27e9c..764799f8da3 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp @@ -53,14 +53,7 @@ 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()); + setBuildDirectoryHistoryCompleter("Generic.BuildDir.History"); updateCacheAndEmitEnvironmentChanged(); } diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 87bcc0d7000..df6bee13842 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -42,11 +42,11 @@ #include -#include -#include #include -#include +#include #include +#include +#include #include #include @@ -88,6 +88,13 @@ BuildConfiguration::BuildConfiguration(Target *target, Core::Id id) m_buildDirectoryAspect = addAspect(); m_buildDirectoryAspect->setSettingsKey(BUILDDIRECTORY_KEY); + m_buildDirectoryAspect->setLabelText(tr("Build directory:")); + m_buildDirectoryAspect->setDisplayStyle(BaseStringAspect::PathChooserDisplay); + m_buildDirectoryAspect->setExpectedKind(Utils::PathChooser::Directory); + m_buildDirectoryAspect->setBaseFileName(target->project()->projectDirectory()); + m_buildDirectoryAspect->setEnvironment(environment()); + connect(m_buildDirectoryAspect, &BaseStringAspect::changed, + this, &BuildConfiguration::buildDirectoryChanged); connect(this, &BuildConfiguration::environmentChanged, this, [this] { m_buildDirectoryAspect->setEnvironment(environment()); @@ -230,6 +237,11 @@ void BuildConfiguration::setConfigWidgetDisplayName(const QString &display) m_configWidgetDisplayName = display; } +void BuildConfiguration::setBuildDirectoryHistoryCompleter(const QString &history) +{ + m_buildDirectoryAspect->setHistoryCompleter(history); +} + Target *BuildConfiguration::target() const { return static_cast(parent()); diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index 93db3a31399..7739cd5304f 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -101,6 +101,7 @@ public: ProjectExplorer::BaseStringAspect *buildDirectoryAspect() const; void setConfigWidgetDisplayName(const QString &display); + void setBuildDirectoryHistoryCompleter(const QString &history); signals: void environmentChanged();