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 <orgads@gmail.com>
This commit is contained in:
hjk
2019-04-29 12:43:34 +02:00
parent c2ab89cc12
commit a64b969f6f
4 changed files with 18 additions and 19 deletions

View File

@@ -59,15 +59,8 @@ AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(Target *parent, Core::I
// /<foobar> 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("/<foobar>"));
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)

View File

@@ -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();
}

View File

@@ -42,11 +42,11 @@
#include <coreplugin/idocument.h>
#include <utils/qtcassert.h>
#include <utils/macroexpander.h>
#include <utils/algorithm.h>
#include <utils/mimetypes/mimetype.h>
#include <utils/macroexpander.h>
#include <utils/mimetypes/mimedatabase.h>
#include <utils/mimetypes/mimetype.h>
#include <utils/qtcassert.h>
#include <QDebug>
#include <QFormLayout>
@@ -88,6 +88,13 @@ BuildConfiguration::BuildConfiguration(Target *target, Core::Id id)
m_buildDirectoryAspect = addAspect<BaseStringAspect>();
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<Target *>(parent());

View File

@@ -101,6 +101,7 @@ public:
ProjectExplorer::BaseStringAspect *buildDirectoryAspect() const;
void setConfigWidgetDisplayName(const QString &display);
void setBuildDirectoryHistoryCompleter(const QString &history);
signals:
void environmentChanged();