BC: Move builddirectory handling into BC itself

Use setBuildDirectory() in the different BuildConfigurations instead
of reimplementing that over and over again.

Change-Id: Ic355fdb4624c71667ce470b3e2865c9a8722ef09
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Tobias Hunger
2013-08-16 17:45:16 +02:00
parent 52a41ecb0c
commit a7bb77288d
43 changed files with 212 additions and 268 deletions

View File

@@ -46,7 +46,6 @@
#include <QInputDialog>
static const char QBS_BC_ID[] = "Qbs.QbsBuildConfiguration";
static const char QBS_BUILD_DIRECTORY_KEY[] = "Qbs.BuildDirectory";
namespace QbsProjectManager {
namespace Internal {
@@ -74,19 +73,11 @@ QbsBuildConfiguration::QbsBuildConfiguration(ProjectExplorer::Target *target, co
{ }
QbsBuildConfiguration::QbsBuildConfiguration(ProjectExplorer::Target *target, QbsBuildConfiguration *source) :
BuildConfiguration(target, source),
m_buildDirectory(source->m_buildDirectory)
BuildConfiguration(target, source)
{
cloneSteps(source);
}
QVariantMap QbsBuildConfiguration::toMap() const
{
QVariantMap map(BuildConfiguration::toMap());
map.insert(QLatin1String(QBS_BUILD_DIRECTORY_KEY), m_buildDirectory.toUserOutput());
return map;
}
bool QbsBuildConfiguration::fromMap(const QVariantMap &map)
{
if (!BuildConfiguration::fromMap(map))
@@ -101,8 +92,6 @@ bool QbsBuildConfiguration::fromMap(const QVariantMap &map)
connect(bs, SIGNAL(qbsConfigurationChanged()), this, SIGNAL(qbsConfigurationChanged()));
}
m_buildDirectory = Utils::FileName::fromUserInput(map.value(QLatin1String(QBS_BUILD_DIRECTORY_KEY)).toString());
return true;
}
@@ -139,12 +128,6 @@ QVariantMap QbsBuildConfiguration::qbsConfiguration() const
return config;
}
QString QbsBuildConfiguration::buildDirectory() const
{
QString path = QDir::cleanPath(environment().expandVariables(m_buildDirectory.toString()));
return QDir::cleanPath(QDir(target()->project()->projectDirectory()).absoluteFilePath(path));
}
Internal::QbsProject *QbsBuildConfiguration::project() const
{
return qobject_cast<Internal::QbsProject *>(target()->project());
@@ -239,14 +222,6 @@ QbsBuildConfiguration *QbsBuildConfiguration::setup(ProjectExplorer::Target *t,
return bc;
}
void QbsBuildConfiguration::setBuildDirectory(const Utils::FileName &dir)
{
if (m_buildDirectory == dir)
return;
m_buildDirectory = dir;
emit buildDirectoryChanged();
}
// ---------------------------------------------------------------------------
// QbsBuildConfigurationFactory:
// ---------------------------------------------------------------------------