forked from qt-creator/qt-creator
Use a type enum instead of duplicating functions between build and clean
That is e.g. buildSteps() and cleanSteps() --> steps(type)
This commit is contained in:
@@ -213,10 +213,10 @@ CMakeBuildConfiguration *CMakeBuildConfigurationFactory::create(ProjectExplorer:
|
||||
bc->setDisplayName(buildConfigurationName);
|
||||
|
||||
MakeStep *makeStep = new MakeStep(bc);
|
||||
bc->insertBuildStep(0, makeStep);
|
||||
bc->insertStep(ProjectExplorer::Build, 0, makeStep);
|
||||
|
||||
MakeStep *cleanMakeStep = new MakeStep(bc);
|
||||
bc->insertCleanStep(0, cleanMakeStep);
|
||||
bc->insertStep(ProjectExplorer::Clean, 0, cleanMakeStep);
|
||||
cleanMakeStep->setAdditionalArguments(QStringList() << "clean");
|
||||
cleanMakeStep->setClean(true);
|
||||
|
||||
|
@@ -523,7 +523,8 @@ bool CMakeProject::fromMap(const QVariantMap &map)
|
||||
return false;
|
||||
|
||||
if (!hasUserFile && hasBuildTarget("all")) {
|
||||
MakeStep *makeStep(qobject_cast<MakeStep *>(activeTarget()->activeBuildConfiguration()->buildSteps().at(0)));
|
||||
MakeStep *makeStep = qobject_cast<MakeStep *>(
|
||||
activeTarget()->activeBuildConfiguration()->steps(ProjectExplorer::Build).at(0));
|
||||
Q_ASSERT(makeStep);
|
||||
makeStep->setBuildTarget("all", true);
|
||||
}
|
||||
|
@@ -32,6 +32,7 @@
|
||||
#include "cmakeopenprojectwizard.h"
|
||||
#include "cmakeproject.h"
|
||||
#include "cmakerunconfiguration.h"
|
||||
#include "cmakebuildconfiguration.h"
|
||||
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QStyle>
|
||||
@@ -168,10 +169,10 @@ CMakeTarget *CMakeTargetFactory::create(ProjectExplorer::Project *parent, const
|
||||
bc->setDisplayName("all");
|
||||
|
||||
// Now create a standard build configuration
|
||||
bc->insertBuildStep(0, new MakeStep(bc));
|
||||
bc->insertStep(ProjectExplorer::Build, 0, new MakeStep(bc));
|
||||
|
||||
MakeStep *cleanMakeStep = new MakeStep(bc);
|
||||
bc->insertCleanStep(0, cleanMakeStep);
|
||||
bc->insertStep(ProjectExplorer::Clean, 0, cleanMakeStep);
|
||||
cleanMakeStep->setAdditionalArguments(QStringList() << "clean");
|
||||
cleanMakeStep->setClean(true);
|
||||
|
||||
|
@@ -317,41 +317,42 @@ MakeStepFactory::~MakeStepFactory()
|
||||
{
|
||||
}
|
||||
|
||||
bool MakeStepFactory::canCreate(BuildConfiguration *parent, const QString &id) const
|
||||
bool MakeStepFactory::canCreate(BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
if (!qobject_cast<CMakeBuildConfiguration *>(parent))
|
||||
return false;
|
||||
return QLatin1String(MS_ID) == id;
|
||||
}
|
||||
|
||||
BuildStep *MakeStepFactory::create(BuildConfiguration *parent, const QString &id)
|
||||
BuildStep *MakeStepFactory::create(BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id)
|
||||
{
|
||||
if (!canCreate(parent, id))
|
||||
if (!canCreate(parent, type, id))
|
||||
return 0;
|
||||
return new MakeStep(parent);
|
||||
}
|
||||
|
||||
bool MakeStepFactory::canClone(BuildConfiguration *parent, BuildStep *source) const
|
||||
bool MakeStepFactory::canClone(BuildConfiguration *parent, ProjectExplorer::StepType type, BuildStep *source) const
|
||||
{
|
||||
return canCreate(parent, source->id());
|
||||
return canCreate(parent, type, source->id());
|
||||
}
|
||||
|
||||
BuildStep *MakeStepFactory::clone(BuildConfiguration *parent, BuildStep *source)
|
||||
BuildStep *MakeStepFactory::clone(BuildConfiguration *parent, ProjectExplorer::StepType type, BuildStep *source)
|
||||
{
|
||||
if (!canClone(parent, source))
|
||||
if (!canClone(parent, type, source))
|
||||
return 0;
|
||||
return new MakeStep(parent, static_cast<MakeStep *>(source));
|
||||
}
|
||||
|
||||
bool MakeStepFactory::canRestore(BuildConfiguration *parent, const QVariantMap &map) const
|
||||
bool MakeStepFactory::canRestore(BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const
|
||||
{
|
||||
QString id(ProjectExplorer::idFromMap(map));
|
||||
return canCreate(parent, id);
|
||||
return canCreate(parent, type, id);
|
||||
}
|
||||
|
||||
BuildStep *MakeStepFactory::restore(BuildConfiguration *parent, const QVariantMap &map)
|
||||
BuildStep *MakeStepFactory::restore(BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map)
|
||||
{
|
||||
if (!canRestore(parent, map))
|
||||
if (!canRestore(parent, type, map))
|
||||
return 0;
|
||||
MakeStep *bs(new MakeStep(parent));
|
||||
if (bs->fromMap(map))
|
||||
@@ -360,8 +361,9 @@ BuildStep *MakeStepFactory::restore(BuildConfiguration *parent, const QVariantMa
|
||||
return 0;
|
||||
}
|
||||
|
||||
QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent) const
|
||||
QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
if (!qobject_cast<CMakeBuildConfiguration *>(parent))
|
||||
return QStringList();
|
||||
return QStringList() << QLatin1String(MS_ID);
|
||||
|
@@ -119,14 +119,14 @@ public:
|
||||
explicit MakeStepFactory(QObject *parent = 0);
|
||||
virtual ~MakeStepFactory();
|
||||
|
||||
virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent, const QString &id) const;
|
||||
virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, const QString &id);
|
||||
virtual bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *source) const;
|
||||
virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *source);
|
||||
virtual bool canRestore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map) const;
|
||||
virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map);
|
||||
virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const;
|
||||
virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id);
|
||||
virtual bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source) const;
|
||||
virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source);
|
||||
virtual bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const;
|
||||
virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map);
|
||||
|
||||
virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc) const;
|
||||
virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc, ProjectExplorer::StepType type) const;
|
||||
virtual QString displayNameForId(const QString &id) const;
|
||||
};
|
||||
|
||||
|
@@ -175,7 +175,7 @@ BuildConfiguration *GenericBuildConfigurationFactory::create(ProjectExplorer::Ta
|
||||
bc->setDisplayName(buildConfigurationName);
|
||||
|
||||
GenericMakeStep *makeStep = new GenericMakeStep(bc);
|
||||
bc->insertBuildStep(0, makeStep);
|
||||
bc->insertStep(ProjectExplorer::Build, 0, makeStep);
|
||||
makeStep->setBuildTarget("all", /* on = */ true);
|
||||
|
||||
target->addBuildConfiguration(bc); // also makes the name unique...
|
||||
|
@@ -307,32 +307,38 @@ GenericMakeStepFactory::~GenericMakeStepFactory()
|
||||
{
|
||||
}
|
||||
|
||||
bool GenericMakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, const QString &id) const
|
||||
bool GenericMakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QString &id) const
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
if (!qobject_cast<GenericBuildConfiguration *>(parent))
|
||||
return false;
|
||||
return id == QLatin1String(GENERIC_MS_ID);
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *GenericMakeStepFactory::create(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QString &id)
|
||||
{
|
||||
if (!canCreate(parent, id))
|
||||
if (!canCreate(parent, type, id))
|
||||
return 0;
|
||||
return new GenericMakeStep(parent);
|
||||
}
|
||||
|
||||
bool GenericMakeStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
ProjectExplorer::BuildStep *source) const
|
||||
{
|
||||
const QString id(source->id());
|
||||
return canCreate(parent, id);
|
||||
return canCreate(parent, type, id);
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *GenericMakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
ProjectExplorer::BuildStep *source)
|
||||
{
|
||||
if (!canClone(parent, source))
|
||||
if (!canClone(parent, type, source))
|
||||
return 0;
|
||||
GenericMakeStep *old(qobject_cast<GenericMakeStep *>(source));
|
||||
Q_ASSERT(old);
|
||||
@@ -340,16 +346,18 @@ ProjectExplorer::BuildStep *GenericMakeStepFactory::clone(ProjectExplorer::Build
|
||||
}
|
||||
|
||||
bool GenericMakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QVariantMap &map) const
|
||||
{
|
||||
QString id(ProjectExplorer::idFromMap(map));
|
||||
return canCreate(parent, id);
|
||||
return canCreate(parent, type, id);
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *GenericMakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QVariantMap &map)
|
||||
{
|
||||
if (!canRestore(parent, map))
|
||||
if (!canRestore(parent, type, map))
|
||||
return 0;
|
||||
GenericMakeStep *bs(new GenericMakeStep(parent));
|
||||
if (bs->fromMap(map))
|
||||
@@ -358,8 +366,10 @@ ProjectExplorer::BuildStep *GenericMakeStepFactory::restore(ProjectExplorer::Bui
|
||||
return 0;
|
||||
}
|
||||
|
||||
QStringList GenericMakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent) const
|
||||
QStringList GenericMakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type) const
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
if (!qobject_cast<GenericBuildConfiguration *>(parent))
|
||||
return QStringList();
|
||||
return QStringList() << QLatin1String(GENERIC_MS_ID);
|
||||
|
@@ -113,19 +113,27 @@ public:
|
||||
explicit GenericMakeStepFactory(QObject *parent = 0);
|
||||
virtual ~GenericMakeStepFactory();
|
||||
|
||||
virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent, const QString &id) const;
|
||||
virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QString &id) const;
|
||||
virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QString &id);
|
||||
virtual bool canClone(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
ProjectExplorer::BuildStep *source) const;
|
||||
virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
ProjectExplorer::BuildStep *source);
|
||||
virtual bool canRestore(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QVariantMap &map) const;
|
||||
virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent,
|
||||
ProjectExplorer::StepType type,
|
||||
const QVariantMap &map);
|
||||
|
||||
virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc) const;
|
||||
virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc,
|
||||
ProjectExplorer::StepType type) const;
|
||||
virtual QString displayNameForId(const QString &id) const;
|
||||
};
|
||||
|
||||
|
@@ -137,7 +137,7 @@ GenericTarget *GenericTargetFactory::create(ProjectExplorer::Project *parent, co
|
||||
bc->setDisplayName("all");
|
||||
|
||||
GenericMakeStep *makeStep = new GenericMakeStep(bc);
|
||||
bc->insertBuildStep(0, makeStep);
|
||||
bc->insertStep(ProjectExplorer::Build, 0, makeStep);
|
||||
|
||||
makeStep->setBuildTarget("all", /* on = */ true);
|
||||
|
||||
|
@@ -39,20 +39,20 @@ using namespace ProjectExplorer;
|
||||
|
||||
namespace {
|
||||
|
||||
IBuildStepFactory *findCloneFactory(BuildConfiguration *parent, BuildStep *source)
|
||||
IBuildStepFactory *findCloneFactory(BuildConfiguration *parent, StepType type, BuildStep *source)
|
||||
{
|
||||
QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>();
|
||||
foreach(IBuildStepFactory *factory, factories)
|
||||
if (factory->canClone(parent, source))
|
||||
if (factory->canClone(parent, type, source))
|
||||
return factory;
|
||||
return 0;
|
||||
}
|
||||
|
||||
IBuildStepFactory *findRestoreFactory(BuildConfiguration *parent, const QVariantMap &map)
|
||||
IBuildStepFactory *findRestoreFactory(BuildConfiguration *parent, StepType type, const QVariantMap &map)
|
||||
{
|
||||
QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>();
|
||||
foreach(IBuildStepFactory *factory, factories)
|
||||
if (factory->canRestore(parent, map))
|
||||
if (factory->canRestore(parent, type, map))
|
||||
return factory;
|
||||
return 0;
|
||||
}
|
||||
@@ -85,19 +85,20 @@ BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *sourc
|
||||
|
||||
BuildConfiguration::~BuildConfiguration()
|
||||
{
|
||||
qDeleteAll(m_buildSteps);
|
||||
qDeleteAll(m_cleanSteps);
|
||||
for (int i = 0; i < LastStepType; ++i) {
|
||||
qDeleteAll(m_steps[i]);
|
||||
}
|
||||
}
|
||||
|
||||
QVariantMap BuildConfiguration::toMap() const
|
||||
{
|
||||
QVariantMap map(ProjectConfiguration::toMap());
|
||||
map.insert(QLatin1String(BUILD_STEPS_COUNT_KEY), m_buildSteps.count());
|
||||
for (int i = 0; i < m_buildSteps.count(); ++i)
|
||||
map.insert(QString::fromLatin1(BUILD_STEPS_PREFIX) + QString::number(i), m_buildSteps.at(i)->toMap());
|
||||
map.insert(QLatin1String(CLEAN_STEPS_COUNT_KEY), m_cleanSteps.count());
|
||||
for (int i = 0; i < m_cleanSteps.count(); ++i)
|
||||
map.insert(QString::fromLatin1(CLEAN_STEPS_PREFIX) + QString::number(i), m_cleanSteps.at(i)->toMap());
|
||||
map.insert(QLatin1String(BUILD_STEPS_COUNT_KEY), m_steps[Build].count());
|
||||
for (int i = 0; i < m_steps[Build].count(); ++i)
|
||||
map.insert(QString::fromLatin1(BUILD_STEPS_PREFIX) + QString::number(i), m_steps[Build].at(i)->toMap());
|
||||
map.insert(QLatin1String(CLEAN_STEPS_COUNT_KEY), m_steps[Clean].count());
|
||||
for (int i = 0; i < m_steps[Clean].count(); ++i)
|
||||
map.insert(QString::fromLatin1(CLEAN_STEPS_PREFIX) + QString::number(i), m_steps[Clean].at(i)->toMap());
|
||||
map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), m_clearSystemEnvironment);
|
||||
map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(m_userEnvironmentChanges));
|
||||
|
||||
@@ -107,21 +108,15 @@ QVariantMap BuildConfiguration::toMap() const
|
||||
void BuildConfiguration::cloneSteps(BuildConfiguration *source)
|
||||
{
|
||||
Q_ASSERT(source);
|
||||
foreach (BuildStep *originalbs, source->buildSteps()) {
|
||||
IBuildStepFactory *factory(findCloneFactory(this, originalbs));
|
||||
for (int i = 0; i < LastStepType; ++i) {
|
||||
foreach (BuildStep *originalbs, source->steps(StepType(i))) {
|
||||
IBuildStepFactory *factory(findCloneFactory(this, StepType(i), originalbs));
|
||||
if (!factory)
|
||||
continue;
|
||||
BuildStep *clonebs(factory->clone(this, originalbs));
|
||||
BuildStep *clonebs(factory->clone(this, StepType(i), originalbs));
|
||||
if (clonebs)
|
||||
m_buildSteps.append(clonebs);
|
||||
m_steps[i].append(clonebs);
|
||||
}
|
||||
foreach (BuildStep *originalcs, source->cleanSteps()) {
|
||||
IBuildStepFactory *factory = findCloneFactory(this, originalcs);
|
||||
if (!factory)
|
||||
continue;
|
||||
BuildStep *clonecs = factory->clone(this, originalcs);
|
||||
if (clonecs)
|
||||
m_cleanSteps.append(clonecs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,17 +134,17 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
|
||||
qWarning() << "No buildstep data found (continuing).";
|
||||
continue;
|
||||
}
|
||||
IBuildStepFactory *factory(findRestoreFactory(this, bsData));
|
||||
IBuildStepFactory *factory(findRestoreFactory(this, Build, bsData));
|
||||
if (!factory) {
|
||||
qWarning() << "No factory for buildstep found (continuing).";
|
||||
continue;
|
||||
}
|
||||
BuildStep *bs(factory->restore(this, bsData));
|
||||
BuildStep *bs(factory->restore(this, Build, bsData));
|
||||
if (!bs) {
|
||||
qWarning() << "Restoration of buildstep failed (continuing).";
|
||||
continue;
|
||||
}
|
||||
insertBuildStep(m_buildSteps.count(), bs);
|
||||
insertStep(Build, m_steps[Build].count(), bs);
|
||||
}
|
||||
|
||||
maxI = map.value(QLatin1String(CLEAN_STEPS_COUNT_KEY), 0).toInt();
|
||||
@@ -161,17 +156,17 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
|
||||
qWarning() << "No cleanstep data found for (continuing).";
|
||||
continue;
|
||||
}
|
||||
IBuildStepFactory *factory(findRestoreFactory(this, bsData));
|
||||
IBuildStepFactory *factory(findRestoreFactory(this, Clean, bsData));
|
||||
if (!factory) {
|
||||
qWarning() << "No factory for cleanstep found (continuing).";
|
||||
continue;
|
||||
}
|
||||
BuildStep *bs(factory->restore(this, bsData));
|
||||
BuildStep *bs(factory->restore(this, Clean, bsData));
|
||||
if (!bs) {
|
||||
qWarning() << "Restoration of cleanstep failed (continuing).";
|
||||
continue;
|
||||
}
|
||||
insertCleanStep(m_cleanSteps.count(), bs);
|
||||
insertStep(Clean, m_steps[Clean].count(), bs);
|
||||
}
|
||||
|
||||
m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
|
||||
@@ -180,53 +175,34 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
|
||||
return true;
|
||||
}
|
||||
|
||||
QList<BuildStep *> BuildConfiguration::buildSteps() const
|
||||
QList<BuildStep *> BuildConfiguration::steps(StepType type) const
|
||||
{
|
||||
return m_buildSteps;
|
||||
Q_ASSERT(type >= 0 && type < LastStepType);
|
||||
return m_steps[type];
|
||||
}
|
||||
|
||||
void BuildConfiguration::insertBuildStep(int position, BuildStep *step)
|
||||
void BuildConfiguration::insertStep(StepType type, int position, BuildStep *step)
|
||||
{
|
||||
m_buildSteps.insert(position, step);
|
||||
Q_ASSERT(type >= 0 && type < LastStepType);
|
||||
m_steps[type].insert(position, step);
|
||||
}
|
||||
|
||||
void BuildConfiguration::removeBuildStep(int position)
|
||||
void BuildConfiguration::removeStep(StepType type, int position)
|
||||
{
|
||||
delete m_buildSteps.at(position);
|
||||
m_buildSteps.removeAt(position);
|
||||
Q_ASSERT(type >= 0 && type < LastStepType);
|
||||
delete m_steps[type].at(position);
|
||||
m_steps[type].removeAt(position);
|
||||
}
|
||||
|
||||
void BuildConfiguration::moveBuildStepUp(int position)
|
||||
void BuildConfiguration::moveStepUp(StepType type, int position)
|
||||
{
|
||||
if (position <= 0 || m_buildSteps.size() <= 1)
|
||||
Q_ASSERT(type >= 0 && type < LastStepType);
|
||||
if (position <= 0 || m_steps[type].size() <= 1)
|
||||
return;
|
||||
m_buildSteps.swap(position - 1, position);
|
||||
m_steps[type].swap(position - 1, position);
|
||||
|
||||
}
|
||||
|
||||
QList<BuildStep *> BuildConfiguration::cleanSteps() const
|
||||
{
|
||||
return m_cleanSteps;
|
||||
}
|
||||
|
||||
void BuildConfiguration::insertCleanStep(int position, BuildStep *step)
|
||||
{
|
||||
m_cleanSteps.insert(position, step);
|
||||
}
|
||||
|
||||
void BuildConfiguration::removeCleanStep(int position)
|
||||
{
|
||||
delete m_cleanSteps.at(position);
|
||||
m_cleanSteps.removeAt(position);
|
||||
}
|
||||
|
||||
void BuildConfiguration::moveCleanStepUp(int position)
|
||||
{
|
||||
if (position <= 0 || m_cleanSteps.size() <= 1)
|
||||
return;
|
||||
m_cleanSteps.swap(position - 1, position);
|
||||
}
|
||||
|
||||
Target *BuildConfiguration::target() const
|
||||
{
|
||||
return m_target;
|
||||
|
@@ -53,15 +53,10 @@ public:
|
||||
// ctors are protected
|
||||
virtual ~BuildConfiguration();
|
||||
|
||||
QList<BuildStep *> buildSteps() const;
|
||||
void insertBuildStep(int position, BuildStep *step);
|
||||
void removeBuildStep(int position);
|
||||
void moveBuildStepUp(int position);
|
||||
|
||||
QList<BuildStep *> cleanSteps() const;
|
||||
void insertCleanStep(int position, BuildStep *step);
|
||||
void removeCleanStep(int position);
|
||||
void moveCleanStepUp(int position);
|
||||
QList<BuildStep *> steps(StepType type) const;
|
||||
void insertStep(StepType type, int position, BuildStep *step);
|
||||
void removeStep(StepType type, int position);
|
||||
void moveStepUp(StepType type, int position);
|
||||
|
||||
virtual QString buildDirectory() const = 0;
|
||||
|
||||
@@ -90,8 +85,7 @@ protected:
|
||||
virtual bool fromMap(const QVariantMap &map);
|
||||
|
||||
private:
|
||||
QList<BuildStep *> m_buildSteps;
|
||||
QList<BuildStep *> m_cleanSteps;
|
||||
QList<BuildStep *> m_steps[LastStepType];
|
||||
Target *m_target;
|
||||
|
||||
bool m_clearSystemEnvironment;
|
||||
|
@@ -401,7 +401,7 @@ void BuildManager::buildProjects(const QList<BuildConfiguration *> &configuratio
|
||||
{
|
||||
QList<BuildStep *> steps;
|
||||
foreach(BuildConfiguration *bc, configurations)
|
||||
steps.append(bc->buildSteps());
|
||||
steps.append(bc->steps(Build));
|
||||
|
||||
bool success = buildQueueAppend(steps);
|
||||
if (!success) {
|
||||
@@ -418,7 +418,7 @@ void BuildManager::cleanProjects(const QList<BuildConfiguration *> &configuratio
|
||||
{
|
||||
QList<BuildStep *> steps;
|
||||
foreach(BuildConfiguration *bc, configurations)
|
||||
steps.append(bc->cleanSteps());
|
||||
steps.append(bc->steps(Clean));
|
||||
|
||||
bool success = buildQueueAppend(steps);
|
||||
if (!success) {
|
||||
|
@@ -292,8 +292,8 @@ void BuildSettingsWidget::updateBuildSettings()
|
||||
BuildConfigWidget *generalConfigWidget = m_target->project()->createConfigWidget();
|
||||
addSubWidget(generalConfigWidget->displayName(), generalConfigWidget);
|
||||
|
||||
addSubWidget(tr("Build Steps"), new BuildStepsPage(m_target, false));
|
||||
addSubWidget(tr("Clean Steps"), new BuildStepsPage(m_target, true));
|
||||
addSubWidget(tr("Build Steps"), new BuildStepsPage(m_target, Build));
|
||||
addSubWidget(tr("Clean Steps"), new BuildStepsPage(m_target, Clean));
|
||||
|
||||
QList<BuildConfigWidget *> subConfigWidgets = m_target->project()->subConfigWidgets();
|
||||
foreach (BuildConfigWidget *subConfigWidget, subConfigWidgets)
|
||||
|
@@ -38,6 +38,11 @@
|
||||
#include <QtGui/QWidget>
|
||||
|
||||
namespace ProjectExplorer {
|
||||
|
||||
enum StepType { Build = 0,
|
||||
Clean = 1,
|
||||
LastStepType = 2};
|
||||
|
||||
class BuildConfiguration;
|
||||
|
||||
/*
|
||||
@@ -122,17 +127,17 @@ public:
|
||||
virtual ~IBuildStepFactory();
|
||||
|
||||
// used to show the list of possible additons to a target, returns a list of types
|
||||
virtual QStringList availableCreationIds(BuildConfiguration *parent) const = 0;
|
||||
virtual QStringList availableCreationIds(BuildConfiguration *parent, StepType type) const = 0;
|
||||
// used to translate the types to names to display to the user
|
||||
virtual QString displayNameForId(const QString &id) const = 0;
|
||||
|
||||
virtual bool canCreate(BuildConfiguration *parent, const QString &id) const = 0;
|
||||
virtual BuildStep *create(BuildConfiguration *parent, const QString &id) = 0;
|
||||
virtual bool canCreate(BuildConfiguration *parent, StepType type, const QString &id) const = 0;
|
||||
virtual BuildStep *create(BuildConfiguration *parent, StepType type, const QString &id) = 0;
|
||||
// used to recreate the runConfigurations when restoring settings
|
||||
virtual bool canRestore(BuildConfiguration *parent, const QVariantMap &map) const = 0;
|
||||
virtual BuildStep *restore(BuildConfiguration *parent, const QVariantMap &map) = 0;
|
||||
virtual bool canClone(BuildConfiguration *parent, BuildStep *product) const = 0;
|
||||
virtual BuildStep *clone(BuildConfiguration *parent, BuildStep *product) = 0;
|
||||
virtual bool canRestore(BuildConfiguration *parent, StepType type, const QVariantMap &map) const = 0;
|
||||
virtual BuildStep *restore(BuildConfiguration *parent, StepType type, const QVariantMap &map) = 0;
|
||||
virtual bool canClone(BuildConfiguration *parent, StepType type, BuildStep *product) const = 0;
|
||||
virtual BuildStep *clone(BuildConfiguration *parent, StepType type, BuildStep *product) = 0;
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT BuildConfigWidget
|
||||
|
@@ -46,9 +46,9 @@
|
||||
using namespace ProjectExplorer;
|
||||
using namespace ProjectExplorer::Internal;
|
||||
|
||||
BuildStepsPage::BuildStepsPage(Target *target, bool clean) :
|
||||
BuildStepsPage::BuildStepsPage(Target *target, StepType type) :
|
||||
BuildConfigWidget(),
|
||||
m_clean(clean),
|
||||
m_type(type),
|
||||
m_addButton(0),
|
||||
m_leftMargin(-1)
|
||||
{
|
||||
@@ -79,7 +79,10 @@ void BuildStepsPage::updateSummary()
|
||||
|
||||
QString BuildStepsPage::displayName() const
|
||||
{
|
||||
return m_clean ? tr("Clean Steps") : tr("Build Steps");
|
||||
if (m_type == Build)
|
||||
return tr("Build Steps");
|
||||
else
|
||||
return tr("Clean Steps");
|
||||
}
|
||||
|
||||
void BuildStepsPage::init(BuildConfiguration *bc)
|
||||
@@ -96,7 +99,7 @@ void BuildStepsPage::init(BuildConfiguration *bc)
|
||||
|
||||
m_configuration = bc;
|
||||
|
||||
const QList<BuildStep *> &steps = m_clean ? m_configuration->cleanSteps() : m_configuration->buildSteps();
|
||||
const QList<BuildStep *> &steps = m_configuration->steps(m_type);
|
||||
int i = 0;
|
||||
foreach (BuildStep *bs, steps) {
|
||||
addBuildStepWidget(i, bs);
|
||||
@@ -119,7 +122,7 @@ void BuildStepsPage::updateAddBuildStepMenu()
|
||||
//Build up a list of possible steps and save map the display names to the (internal) name and factories.
|
||||
QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>();
|
||||
foreach (IBuildStepFactory *factory, factories) {
|
||||
QStringList ids = factory->availableCreationIds(m_configuration);
|
||||
QStringList ids = factory->availableCreationIds(m_configuration, m_type);
|
||||
foreach (const QString &id, ids) {
|
||||
map.insert(factory->displayNameForId(id), QPair<QString, IBuildStepFactory *>(id, factory));
|
||||
}
|
||||
@@ -207,9 +210,9 @@ void BuildStepsPage::addBuildStep()
|
||||
{
|
||||
if (QAction *action = qobject_cast<QAction *>(sender())) {
|
||||
QPair<QString, IBuildStepFactory *> pair = m_addBuildStepHash.value(action);
|
||||
BuildStep *newStep = pair.second->create(m_configuration, pair.first);
|
||||
int pos = m_clean ? m_configuration->cleanSteps().count() : m_configuration->buildSteps().count();
|
||||
m_clean ? m_configuration->insertCleanStep(pos, newStep) : m_configuration->insertBuildStep(pos, newStep);
|
||||
BuildStep *newStep = pair.second->create(m_configuration, m_type, pair.first);
|
||||
int pos = m_configuration->steps(m_type).count();
|
||||
m_configuration->insertStep(m_type, pos, newStep);
|
||||
|
||||
addBuildStepWidget(pos, newStep);
|
||||
const BuildStepsWidgetStruct s = m_buildSteps.at(pos);
|
||||
@@ -222,7 +225,7 @@ void BuildStepsPage::addBuildStep()
|
||||
|
||||
void BuildStepsPage::stepMoveUp(int pos)
|
||||
{
|
||||
m_clean ? m_configuration->moveCleanStepUp(pos) : m_configuration->moveBuildStepUp(pos);
|
||||
m_configuration->moveStepUp(m_type, pos);
|
||||
|
||||
m_vbox->insertWidget(pos - 1, m_buildSteps.at(pos).detailsWidget);
|
||||
|
||||
@@ -242,12 +245,11 @@ void BuildStepsPage::stepRemove(int pos)
|
||||
delete s.widget;
|
||||
delete s.detailsWidget;
|
||||
m_buildSteps.removeAt(pos);
|
||||
m_clean ? m_configuration->removeCleanStep(pos) : m_configuration->removeBuildStep(pos);
|
||||
m_configuration->removeStep(m_type, pos);
|
||||
|
||||
updateBuildStepButtonsState();
|
||||
|
||||
bool hasSteps(m_clean ? m_configuration->cleanSteps().isEmpty() :
|
||||
m_configuration->buildSteps().isEmpty());
|
||||
bool hasSteps = m_configuration->steps(m_type).isEmpty();
|
||||
m_noStepsLabel->setVisible(hasSteps);
|
||||
}
|
||||
|
||||
@@ -282,7 +284,7 @@ void BuildStepsPage::setupUi()
|
||||
QHBoxLayout *hboxLayout = new QHBoxLayout();
|
||||
hboxLayout->setContentsMargins(m_leftMargin, 4, 0, 0);
|
||||
m_addButton = new QPushButton(this);
|
||||
m_addButton->setText(m_clean ? tr("Add clean step") : tr("Add build step"));
|
||||
m_addButton->setText(m_type == Clean ? tr("Add clean step") : tr("Add build step"));
|
||||
m_addButton->setMenu(new QMenu(this));
|
||||
hboxLayout->addWidget(m_addButton);
|
||||
|
||||
@@ -300,7 +302,7 @@ void BuildStepsPage::setupUi()
|
||||
|
||||
void BuildStepsPage::updateBuildStepButtonsState()
|
||||
{
|
||||
const QList<BuildStep *> &steps = m_clean ? m_configuration->cleanSteps() : m_configuration->buildSteps();
|
||||
const QList<BuildStep *> &steps = m_configuration->steps(m_type);
|
||||
for(int i = 0; i < m_buildSteps.count(); ++i) {
|
||||
BuildStepsWidgetStruct s = m_buildSteps.at(i);
|
||||
s.removeButton->setEnabled(!steps.at(i)->immutable());
|
||||
|
@@ -31,6 +31,7 @@
|
||||
#define BUILDSTEPSPAGE_H
|
||||
|
||||
#include "buildstep.h"
|
||||
#include "buildconfiguration.h"
|
||||
#include <utils/detailswidget.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@@ -66,7 +67,7 @@ class BuildStepsPage : public BuildConfigWidget
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BuildStepsPage(Target *target, bool clean = false);
|
||||
explicit BuildStepsPage(Target *target, StepType type);
|
||||
virtual ~BuildStepsPage();
|
||||
|
||||
QString displayName() const;
|
||||
@@ -87,7 +88,7 @@ private:
|
||||
|
||||
BuildConfiguration * m_configuration;
|
||||
QHash<QAction *, QPair<QString, ProjectExplorer::IBuildStepFactory *> > m_addBuildStepHash;
|
||||
bool m_clean;
|
||||
StepType m_type;
|
||||
|
||||
QList<BuildStepsWidgetStruct> m_buildSteps;
|
||||
|
||||
|
@@ -185,40 +185,41 @@ ProcessStepFactory::~ProcessStepFactory()
|
||||
{
|
||||
}
|
||||
|
||||
bool ProcessStepFactory::canCreate(BuildConfiguration *parent, const QString &id) const
|
||||
bool ProcessStepFactory::canCreate(BuildConfiguration *parent, StepType type, const QString &id) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
Q_UNUSED(type);
|
||||
return id == QLatin1String(PROCESS_STEP_ID);
|
||||
}
|
||||
|
||||
BuildStep *ProcessStepFactory::create(BuildConfiguration *parent, const QString &id)
|
||||
BuildStep *ProcessStepFactory::create(BuildConfiguration *parent, StepType type, const QString &id)
|
||||
{
|
||||
if (!canCreate(parent, id))
|
||||
if (!canCreate(parent, type, id))
|
||||
return 0;
|
||||
return new ProcessStep(parent);
|
||||
}
|
||||
|
||||
bool ProcessStepFactory::canClone(BuildConfiguration *parent, BuildStep *bs) const
|
||||
bool ProcessStepFactory::canClone(BuildConfiguration *parent, StepType type, BuildStep *bs) const
|
||||
{
|
||||
return canCreate(parent, bs->id());
|
||||
return canCreate(parent, type, bs->id());
|
||||
}
|
||||
|
||||
BuildStep *ProcessStepFactory::clone(BuildConfiguration *parent, BuildStep *bs)
|
||||
BuildStep *ProcessStepFactory::clone(BuildConfiguration *parent, StepType type, BuildStep *bs)
|
||||
{
|
||||
if (!canClone(parent, bs))
|
||||
if (!canClone(parent, type, bs))
|
||||
return 0;
|
||||
return new ProcessStep(parent, static_cast<ProcessStep *>(bs));
|
||||
}
|
||||
|
||||
bool ProcessStepFactory::canRestore(BuildConfiguration *parent, const QVariantMap &map) const
|
||||
bool ProcessStepFactory::canRestore(BuildConfiguration *parent, StepType type, const QVariantMap &map) const
|
||||
{
|
||||
QString id(ProjectExplorer::idFromMap(map));
|
||||
return canCreate(parent, id);
|
||||
return canCreate(parent, type, id);
|
||||
}
|
||||
|
||||
BuildStep *ProcessStepFactory::restore(BuildConfiguration *parent, const QVariantMap &map)
|
||||
BuildStep *ProcessStepFactory::restore(BuildConfiguration *parent, StepType type, const QVariantMap &map)
|
||||
{
|
||||
if (!canRestore(parent, map))
|
||||
if (!canRestore(parent, type, map))
|
||||
return 0;
|
||||
|
||||
ProcessStep *bs(new ProcessStep(parent));
|
||||
@@ -228,9 +229,10 @@ BuildStep *ProcessStepFactory::restore(BuildConfiguration *parent, const QVarian
|
||||
return 0;
|
||||
}
|
||||
|
||||
QStringList ProcessStepFactory::availableCreationIds(BuildConfiguration *parent) const
|
||||
QStringList ProcessStepFactory::availableCreationIds(BuildConfiguration *parent, StepType type) const
|
||||
{
|
||||
Q_UNUSED(parent)
|
||||
Q_UNUSED(parent);
|
||||
Q_UNUSED(type);
|
||||
return QStringList() << QLatin1String(PROCESS_STEP_ID);
|
||||
}
|
||||
QString ProcessStepFactory::displayNameForId(const QString &id) const
|
||||
|
@@ -46,15 +46,15 @@ public:
|
||||
ProcessStepFactory();
|
||||
~ProcessStepFactory();
|
||||
|
||||
virtual QStringList availableCreationIds(BuildConfiguration *parent) const;
|
||||
virtual QStringList availableCreationIds(BuildConfiguration *parent, StepType type) const;
|
||||
virtual QString displayNameForId(const QString &id) const;
|
||||
|
||||
virtual bool canCreate(BuildConfiguration *parent, const QString &id) const;
|
||||
virtual BuildStep *create(BuildConfiguration *parent, const QString &id);
|
||||
virtual bool canRestore(BuildConfiguration *parent, const QVariantMap &map) const;
|
||||
virtual BuildStep *restore(BuildConfiguration *parent, const QVariantMap &map);
|
||||
virtual bool canClone(BuildConfiguration *parent, BuildStep *product) const;
|
||||
virtual BuildStep *clone(BuildConfiguration *parent, BuildStep *product);
|
||||
virtual bool canCreate(BuildConfiguration *parent, StepType type, const QString &id) const;
|
||||
virtual BuildStep *create(BuildConfiguration *parent, StepType type, const QString &id);
|
||||
virtual bool canRestore(BuildConfiguration *parent, StepType type, const QVariantMap &map) const;
|
||||
virtual BuildStep *restore(BuildConfiguration *parent, StepType type, const QVariantMap &map);
|
||||
virtual bool canClone(BuildConfiguration *parent, StepType type, BuildStep *product) const;
|
||||
virtual BuildStep *clone(BuildConfiguration *parent, StepType type, BuildStep *product);
|
||||
};
|
||||
|
||||
class ProcessStep : public ProjectExplorer::AbstractProcessStep
|
||||
|
@@ -40,7 +40,6 @@
|
||||
#include "target.h"
|
||||
#include "projecttreewidget.h"
|
||||
#include "runconfiguration.h"
|
||||
#include "buildconfiguration.h"
|
||||
#include "buildsettingspropertiespage.h"
|
||||
#include "runsettingspropertiespage.h"
|
||||
#include "targetsettingspanel.h"
|
||||
|
@@ -328,41 +328,42 @@ MakeStepFactory::~MakeStepFactory()
|
||||
{
|
||||
}
|
||||
|
||||
bool MakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, const QString &id) const
|
||||
bool MakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
if (!qobject_cast<Qt4BuildConfiguration *>(parent))
|
||||
return false;
|
||||
return (id == QLatin1String(MAKESTEP_BS_ID));
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *MakeStepFactory::create(ProjectExplorer::BuildConfiguration *parent, const QString &id)
|
||||
ProjectExplorer::BuildStep *MakeStepFactory::create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id)
|
||||
{
|
||||
if (!canCreate(parent, id))
|
||||
if (!canCreate(parent, type, id))
|
||||
return 0;
|
||||
return new MakeStep(parent);
|
||||
}
|
||||
|
||||
bool MakeStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *source) const
|
||||
bool MakeStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source) const
|
||||
{
|
||||
return canCreate(parent, source->id());
|
||||
return canCreate(parent, type, source->id());
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *MakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *source)
|
||||
ProjectExplorer::BuildStep *MakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source)
|
||||
{
|
||||
if (!canClone(parent, source))
|
||||
if (!canClone(parent, type, source))
|
||||
return 0;
|
||||
return new MakeStep(parent, static_cast<MakeStep *>(source));
|
||||
}
|
||||
|
||||
bool MakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map) const
|
||||
bool MakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const
|
||||
{
|
||||
QString id(ProjectExplorer::idFromMap(map));
|
||||
return canCreate(parent, id);
|
||||
return canCreate(parent, type, id);
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *MakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map)
|
||||
ProjectExplorer::BuildStep *MakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map)
|
||||
{
|
||||
if (!canRestore(parent, map))
|
||||
if (!canRestore(parent, type, map))
|
||||
return 0;
|
||||
MakeStep *bs(new MakeStep(parent));
|
||||
if (bs->fromMap(map))
|
||||
@@ -371,8 +372,9 @@ ProjectExplorer::BuildStep *MakeStepFactory::restore(ProjectExplorer::BuildConfi
|
||||
return 0;
|
||||
}
|
||||
|
||||
QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent) const
|
||||
QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
if (qobject_cast<Qt4BuildConfiguration *>(parent))
|
||||
return QStringList() << QLatin1String(MAKESTEP_BS_ID);
|
||||
return QStringList();
|
||||
|
@@ -54,14 +54,14 @@ public:
|
||||
explicit MakeStepFactory(QObject *parent = 0);
|
||||
virtual ~MakeStepFactory();
|
||||
|
||||
bool canCreate(ProjectExplorer::BuildConfiguration *parent, const QString &id) const;
|
||||
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, const QString &id);
|
||||
bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *source) const;
|
||||
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *source);
|
||||
bool canRestore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map) const;
|
||||
ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map);
|
||||
bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const;
|
||||
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id);
|
||||
bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source) const;
|
||||
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source);
|
||||
bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const;
|
||||
ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map);
|
||||
|
||||
QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent) const;
|
||||
QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const;
|
||||
QString displayNameForId(const QString &id) const;
|
||||
};
|
||||
} //namespace Internal
|
||||
|
@@ -402,45 +402,47 @@ QMakeStepFactory::~QMakeStepFactory()
|
||||
{
|
||||
}
|
||||
|
||||
bool QMakeStepFactory::canCreate(BuildConfiguration *parent, const QString &id) const
|
||||
bool QMakeStepFactory::canCreate(BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const
|
||||
{
|
||||
if (type != ProjectExplorer::Build)
|
||||
return false;
|
||||
if (!qobject_cast<Qt4BuildConfiguration *>(parent))
|
||||
return false;
|
||||
return (id == QLatin1String(QMAKE_BS_ID));
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *QMakeStepFactory::create(BuildConfiguration *parent, const QString &id)
|
||||
ProjectExplorer::BuildStep *QMakeStepFactory::create(BuildConfiguration *parent, ProjectExplorer::StepType type,const QString &id)
|
||||
{
|
||||
if (!canCreate(parent, id))
|
||||
if (!canCreate(parent, type, id))
|
||||
return 0;
|
||||
Qt4BuildConfiguration *bc(qobject_cast<Qt4BuildConfiguration *>(parent));
|
||||
Q_ASSERT(bc);
|
||||
return new QMakeStep(bc);
|
||||
}
|
||||
|
||||
bool QMakeStepFactory::canClone(BuildConfiguration *parent, BuildStep *source) const
|
||||
bool QMakeStepFactory::canClone(BuildConfiguration *parent, ProjectExplorer::StepType type, BuildStep *source) const
|
||||
{
|
||||
return canCreate(parent, source->id());
|
||||
return canCreate(parent, type, source->id());
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *QMakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *source)
|
||||
ProjectExplorer::BuildStep *QMakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source)
|
||||
{
|
||||
if (!canClone(parent, source))
|
||||
if (!canClone(parent, type, source))
|
||||
return 0;
|
||||
Qt4BuildConfiguration *bc(qobject_cast<Qt4BuildConfiguration *>(parent));
|
||||
Q_ASSERT(bc);
|
||||
return new QMakeStep(bc, qobject_cast<QMakeStep *>(source));
|
||||
}
|
||||
|
||||
bool QMakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map) const
|
||||
bool QMakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const
|
||||
{
|
||||
QString id(ProjectExplorer::idFromMap(map));
|
||||
return canCreate(parent, id);
|
||||
return canCreate(parent, type, id);
|
||||
}
|
||||
|
||||
ProjectExplorer::BuildStep *QMakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map)
|
||||
ProjectExplorer::BuildStep *QMakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map)
|
||||
{
|
||||
if (!canRestore(parent, map))
|
||||
if (!canRestore(parent, type, map))
|
||||
return 0;
|
||||
Qt4BuildConfiguration *bc(qobject_cast<Qt4BuildConfiguration *>(parent));
|
||||
Q_ASSERT(bc);
|
||||
@@ -451,8 +453,9 @@ ProjectExplorer::BuildStep *QMakeStepFactory::restore(ProjectExplorer::BuildConf
|
||||
return 0;
|
||||
}
|
||||
|
||||
QStringList QMakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent) const
|
||||
QStringList QMakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const
|
||||
{
|
||||
if (type == Build)
|
||||
if (Qt4BuildConfiguration *bc = qobject_cast<Qt4BuildConfiguration *>(parent))
|
||||
if (!bc->qmakeStep())
|
||||
return QStringList() << QLatin1String(QMAKE_BS_ID);
|
||||
|
@@ -55,13 +55,13 @@ class QMakeStepFactory : public ProjectExplorer::IBuildStepFactory
|
||||
public:
|
||||
explicit QMakeStepFactory(QObject *parent = 0);
|
||||
virtual ~QMakeStepFactory();
|
||||
bool canCreate(ProjectExplorer::BuildConfiguration *parent, const QString & id) const;
|
||||
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, const QString &id);
|
||||
bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *bs) const;
|
||||
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep *bs);
|
||||
bool canRestore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map) const;
|
||||
ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, const QVariantMap &map);
|
||||
QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc) const;
|
||||
bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QString & id) const;
|
||||
ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QString &id);
|
||||
bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,ProjectExplorer::BuildStep *bs) const;
|
||||
ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,ProjectExplorer::BuildStep *bs);
|
||||
bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QVariantMap &map) const;
|
||||
ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QVariantMap &map);
|
||||
QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc, ProjectExplorer::StepType type) const;
|
||||
QString displayNameForId(const QString &id) const;
|
||||
};
|
||||
|
||||
|
@@ -362,7 +362,7 @@ void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUser
|
||||
QMakeStep *Qt4BuildConfiguration::qmakeStep() const
|
||||
{
|
||||
QMakeStep *qs = 0;
|
||||
foreach(BuildStep *bs, buildSteps())
|
||||
foreach(BuildStep *bs, steps(ProjectExplorer::Build))
|
||||
if ((qs = qobject_cast<QMakeStep *>(bs)) != 0)
|
||||
return qs;
|
||||
return 0;
|
||||
@@ -371,7 +371,7 @@ QMakeStep *Qt4BuildConfiguration::qmakeStep() const
|
||||
MakeStep *Qt4BuildConfiguration::makeStep() const
|
||||
{
|
||||
MakeStep *qs = 0;
|
||||
foreach(BuildStep *bs, buildSteps())
|
||||
foreach(BuildStep *bs, steps(ProjectExplorer::Build))
|
||||
if ((qs = qobject_cast<MakeStep *>(bs)) != 0)
|
||||
return qs;
|
||||
return 0;
|
||||
|
@@ -244,15 +244,15 @@ Qt4BuildConfiguration *Qt4Target::addQt4BuildConfiguration(QString displayName,
|
||||
bc->setDisplayName(displayName);
|
||||
|
||||
QMakeStep *qmakeStep = new QMakeStep(bc);
|
||||
bc->insertBuildStep(0, qmakeStep);
|
||||
bc->insertStep(ProjectExplorer::Build, 0, qmakeStep);
|
||||
|
||||
MakeStep *makeStep = new MakeStep(bc);
|
||||
bc->insertBuildStep(1, makeStep);
|
||||
bc->insertStep(ProjectExplorer::Build, 1, makeStep);
|
||||
|
||||
MakeStep* cleanStep = new MakeStep(bc);
|
||||
cleanStep->setClean(true);
|
||||
cleanStep->setUserArguments(QStringList() << "clean");
|
||||
bc->insertCleanStep(0, cleanStep);
|
||||
bc->insertStep(ProjectExplorer::Clean, 0, cleanStep);
|
||||
if (!additionalArguments.isEmpty())
|
||||
qmakeStep->setUserArguments(additionalArguments);
|
||||
|
||||
|
Reference in New Issue
Block a user