summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp3
-rw-r--r--src/plugins/cmakeprojectmanager/cmaketarget.cpp5
-rw-r--r--src/plugins/cmakeprojectmanager/makestep.cpp26
-rw-r--r--src/plugins/cmakeprojectmanager/makestep.h16
-rw-r--r--src/plugins/genericprojectmanager/genericbuildconfiguration.cpp2
-rw-r--r--src/plugins/genericprojectmanager/genericmakestep.cpp24
-rw-r--r--src/plugins/genericprojectmanager/genericmakestep.h12
-rw-r--r--src/plugins/genericprojectmanager/generictarget.cpp2
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.cpp108
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.h16
-rw-r--r--src/plugins/projectexplorer/buildmanager.cpp4
-rw-r--r--src/plugins/projectexplorer/buildsettingspropertiespage.cpp4
-rw-r--r--src/plugins/projectexplorer/buildstep.h19
-rw-r--r--src/plugins/projectexplorer/buildstepspage.cpp30
-rw-r--r--src/plugins/projectexplorer/buildstepspage.h5
-rw-r--r--src/plugins/projectexplorer/processstep.cpp28
-rw-r--r--src/plugins/projectexplorer/processstep.h14
-rw-r--r--src/plugins/projectexplorer/projectwindow.cpp1
-rw-r--r--src/plugins/qt4projectmanager/makestep.cpp26
-rw-r--r--src/plugins/qt4projectmanager/makestep.h16
-rw-r--r--src/plugins/qt4projectmanager/qmakestep.cpp33
-rw-r--r--src/plugins/qt4projectmanager/qmakestep.h14
-rw-r--r--src/plugins/qt4projectmanager/qt4buildconfiguration.cpp4
-rw-r--r--src/plugins/qt4projectmanager/qt4target.cpp6
25 files changed, 214 insertions, 208 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 9127252b08..6e006053c4 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -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);
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index cb6ab49044..b4304bb60a 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -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);
}
diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.cpp b/src/plugins/cmakeprojectmanager/cmaketarget.cpp
index c38ccd15d4..a96cedf503 100644
--- a/src/plugins/cmakeprojectmanager/cmaketarget.cpp
+++ b/src/plugins/cmakeprojectmanager/cmaketarget.cpp
@@ -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);
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index e5d303f722..48b78b6be4 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -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);
diff --git a/src/plugins/cmakeprojectmanager/makestep.h b/src/plugins/cmakeprojectmanager/makestep.h
index ede5bb4035..102b73ca60 100644
--- a/src/plugins/cmakeprojectmanager/makestep.h
+++ b/src/plugins/cmakeprojectmanager/makestep.h
@@ -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 QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc) 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, ProjectExplorer::StepType type) const;
virtual QString displayNameForId(const QString &id) const;
};
diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
index 970fd66fed..b35000b40e 100644
--- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
+++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
@@ -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...
diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp
index 292469119c..655717bfb8 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.cpp
+++ b/src/plugins/genericprojectmanager/genericmakestep.cpp
@@ -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);
diff --git a/src/plugins/genericprojectmanager/genericmakestep.h b/src/plugins/genericprojectmanager/genericmakestep.h
index 8e6edd84c8..fbe22581c2 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.h
+++ b/src/plugins/genericprojectmanager/genericmakestep.h
@@ -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;
};
diff --git a/src/plugins/genericprojectmanager/generictarget.cpp b/src/plugins/genericprojectmanager/generictarget.cpp
index 6d0c9dfe5c..cabd75cfbe 100644
--- a/src/plugins/genericprojectmanager/generictarget.cpp
+++ b/src/plugins/genericprojectmanager/generictarget.cpp
@@ -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);
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index cb14f38435..62ff647523 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -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));
- if (!factory)
- continue;
- BuildStep *clonebs(factory->clone(this, originalbs));
- if (clonebs)
- m_buildSteps.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);
+ 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, StepType(i), originalbs));
+ if (clonebs)
+ m_steps[i].append(clonebs);
+ }
}
}
@@ -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,51 +175,32 @@ 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);
-
-}
-
-QList<BuildStep *> BuildConfiguration::cleanSteps() const
-{
- return m_cleanSteps;
-}
+ m_steps[type].swap(position - 1, position);
-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
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h
index e391e03877..c0bc765771 100644
--- a/src/plugins/projectexplorer/buildconfiguration.h
+++ b/src/plugins/projectexplorer/buildconfiguration.h
@@ -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;
diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp
index 09f940f503..3cef5471db 100644
--- a/src/plugins/projectexplorer/buildmanager.cpp
+++ b/src/plugins/projectexplorer/buildmanager.cpp
@@ -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) {
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index a50d1a530a..deaac21513 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -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)
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index 9f5f862934..d5d5fa3a54 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -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
diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp
index 349e938c82..02dc875ee8 100644
--- a/src/plugins/projectexplorer/buildstepspage.cpp
+++ b/src/plugins/projectexplorer/buildstepspage.cpp
@@ -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());
diff --git a/src/plugins/projectexplorer/buildstepspage.h b/src/plugins/projectexplorer/buildstepspage.h
index 765ed51dae..689eb5d490 100644
--- a/src/plugins/projectexplorer/buildstepspage.h
+++ b/src/plugins/projectexplorer/buildstepspage.h
@@ -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;
diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp
index c1f19087ea..7ea0c27f65 100644
--- a/src/plugins/projectexplorer/processstep.cpp
+++ b/src/plugins/projectexplorer/processstep.cpp
@@ -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
diff --git a/src/plugins/projectexplorer/processstep.h b/src/plugins/projectexplorer/processstep.h
index 611009a74d..88c4e1bb6b 100644
--- a/src/plugins/projectexplorer/processstep.h
+++ b/src/plugins/projectexplorer/processstep.h
@@ -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
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index a8e87ee682..f2f27a20e5 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -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"
diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp
index 0d65bb12ee..1775e85255 100644
--- a/src/plugins/qt4projectmanager/makestep.cpp
+++ b/src/plugins/qt4projectmanager/makestep.cpp
@@ -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();
diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h
index 2805ea857d..fabbf26c87 100644
--- a/src/plugins/qt4projectmanager/makestep.h
+++ b/src/plugins/qt4projectmanager/makestep.h
@@ -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);
-
- QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent) 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 *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, ProjectExplorer::StepType type) const;
QString displayNameForId(const QString &id) const;
};
} //namespace Internal
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 7652949b81..508e6146b9 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -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,11 +453,12 @@ 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 (Qt4BuildConfiguration *bc = qobject_cast<Qt4BuildConfiguration *>(parent))
- if (!bc->qmakeStep())
- return QStringList() << QLatin1String(QMAKE_BS_ID);
+ if (type == Build)
+ if (Qt4BuildConfiguration *bc = qobject_cast<Qt4BuildConfiguration *>(parent))
+ if (!bc->qmakeStep())
+ return QStringList() << QLatin1String(QMAKE_BS_ID);
return QStringList();
}
diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h
index c90606f773..436183ec00 100644
--- a/src/plugins/qt4projectmanager/qmakestep.h
+++ b/src/plugins/qt4projectmanager/qmakestep.h
@@ -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;
};
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index 5254dab4af..2ac72ee348 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -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;
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 1ce701fa9b..856fd4b5e6 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -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);