summaryrefslogtreecommitdiff
path: root/src/plugins/cmakeprojectmanager/makestep.h
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2010-01-14 17:41:29 +0100
committerTobias Hunger <tobias.hunger@nokia.com>2010-02-01 12:23:12 +0100
commit1726688434b4f974d0179d4ec979ce00f208c9b2 (patch)
tree502f06910adc0744a1fb13b4f8f1d0d01731b844 /src/plugins/cmakeprojectmanager/makestep.h
parentc410d268dbe05c26563f4beceab99e2420f7a521 (diff)
downloadqt-creator-1726688434b4f974d0179d4ec979ce00f208c9b2.tar.gz
Make use of ProjectConfiguration class in BuildSteps
* Use new BuildSteps interface (as seen in ProjectConfiguration). * Use new factory to construct/clone/restore them. Reviewed-by: dt
Diffstat (limited to 'src/plugins/cmakeprojectmanager/makestep.h')
-rw-r--r--src/plugins/cmakeprojectmanager/makestep.h41
1 files changed, 28 insertions, 13 deletions
diff --git a/src/plugins/cmakeprojectmanager/makestep.h b/src/plugins/cmakeprojectmanager/makestep.h
index a2ab1888dc..2a54a0e0e3 100644
--- a/src/plugins/cmakeprojectmanager/makestep.h
+++ b/src/plugins/cmakeprojectmanager/makestep.h
@@ -42,16 +42,18 @@ namespace CMakeProjectManager {
namespace Internal {
class CMakeBuildConfiguration;
+class MakeStepFactory;
class MakeStep : public ProjectExplorer::AbstractProcessStep
{
Q_OBJECT
+ friend class MakeStepFactory;
friend class MakeStepConfigWidget; // TODO remove
// This is for modifying internal data
+
public:
MakeStep(ProjectExplorer::BuildConfiguration *bc);
- MakeStep(MakeStep *bs, ProjectExplorer::BuildConfiguration *bc);
- ~MakeStep();
+ virtual ~MakeStep();
CMakeBuildConfiguration *cmakeBuildConfiguration() const;
@@ -59,8 +61,6 @@ public:
virtual void run(QFutureInterface<bool> &fi);
- virtual QString id();
- virtual QString displayName();
virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget();
virtual bool immutable() const;
bool buildsTarget(const QString &target) const;
@@ -68,17 +68,22 @@ public:
QStringList additionalArguments() const;
void setAdditionalArguments(const QStringList &list);
- virtual void restoreFromGlobalMap(const QMap<QString, QVariant> &map);
-
- virtual void restoreFromLocalMap(const QMap<QString, QVariant> &map);
- virtual void storeIntoLocalMap(QMap<QString, QVariant> &map);
-
void setClean(bool clean);
+ QVariantMap toMap() const;
+
protected:
+ MakeStep(ProjectExplorer::BuildConfiguration *bc, MakeStep *bs);
+ MakeStep(ProjectExplorer::BuildConfiguration *bc, const QString &id);
+
+ bool fromMap(const QVariantMap &map);
+
// For parsing [ 76%]
virtual void stdOut(const QString &line);
+
private:
+ void ctor();
+
bool m_clean;
QRegExp m_percentProgress;
QFutureInterface<bool> *m_futureInterface;
@@ -108,10 +113,20 @@ private:
class MakeStepFactory : public ProjectExplorer::IBuildStepFactory
{
- virtual bool canCreate(const QString &id) const;
- virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *bc, const QString &id) const;
- virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStep *bs, ProjectExplorer::BuildConfiguration *bc) const;
- virtual QStringList canCreateForBuildConfiguration(ProjectExplorer::BuildConfiguration *bc) const;
+ Q_OBJECT
+
+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 QString displayNameForId(const QString &id) const;
};