summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-03-26 16:39:41 +0100
committerTobias Hunger <tobias.hunger@digia.com>2013-04-05 08:55:01 +0200
commit1650c22b7be923d633981f45d3b38a38dce70a08 (patch)
treeb59a64209d5f43ccb34c56514d90f42f643d473f
parent5d4c4a6968ba7b5dd2d61e10ab28858b2f50deb7 (diff)
downloadqt-creator-1650c22b7be923d633981f45d3b38a38dce70a08.tar.gz
RunConfigurationAspect: Add RunConfiguration parameter to factory method
Change-Id: I7fbb82dc3ff83593473a57c69d0eb89bc33f50f5 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
-rw-r--r--src/plugins/analyzerbase/analyzerruncontrolfactory.cpp3
-rw-r--r--src/plugins/analyzerbase/analyzerruncontrolfactory.h4
-rw-r--r--src/plugins/android/androidrunfactories.cpp4
-rw-r--r--src/plugins/android/androidrunfactories.h6
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp6
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.h3
-rw-r--r--src/plugins/madde/maemorunfactories.cpp4
-rw-r--r--src/plugins/madde/maemorunfactories.h4
-rw-r--r--src/plugins/projectexplorer/runconfiguration.cpp30
-rw-r--r--src/plugins/projectexplorer/runconfiguration.h14
-rw-r--r--src/plugins/projectexplorer/target.cpp1
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp4
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.h3
-rw-r--r--src/plugins/qnx/blackberryrunconfigurationfactory.cpp5
-rw-r--r--src/plugins/qnx/blackberryrunconfigurationfactory.h2
-rw-r--r--src/plugins/qnx/qnxrunconfigurationfactory.cpp12
-rw-r--r--src/plugins/qnx/qnxrunconfigurationfactory.h4
-rw-r--r--src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp5
-rw-r--r--src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h4
-rw-r--r--src/plugins/qtsupport/customexecutablerunconfiguration.cpp6
-rw-r--r--src/plugins/qtsupport/customexecutablerunconfiguration.h3
-rw-r--r--src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp3
-rw-r--r--src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h3
23 files changed, 75 insertions, 58 deletions
diff --git a/src/plugins/analyzerbase/analyzerruncontrolfactory.cpp b/src/plugins/analyzerbase/analyzerruncontrolfactory.cpp
index c3e30dcc3e..b88be56baf 100644
--- a/src/plugins/analyzerbase/analyzerruncontrolfactory.cpp
+++ b/src/plugins/analyzerbase/analyzerruncontrolfactory.cpp
@@ -81,8 +81,9 @@ RunControl *AnalyzerRunControlFactory::create(RunConfiguration *runConfiguration
return rc;
}
-IRunConfigurationAspect *AnalyzerRunControlFactory::createRunConfigurationAspect()
+IRunConfigurationAspect *AnalyzerRunControlFactory::createRunConfigurationAspect(RunConfiguration *rc)
{
+ Q_UNUSED(rc);
return new AnalyzerRunConfigurationAspect;
}
diff --git a/src/plugins/analyzerbase/analyzerruncontrolfactory.h b/src/plugins/analyzerbase/analyzerruncontrolfactory.h
index d3c7081041..83da6acd9e 100644
--- a/src/plugins/analyzerbase/analyzerruncontrolfactory.h
+++ b/src/plugins/analyzerbase/analyzerruncontrolfactory.h
@@ -49,8 +49,8 @@ public:
ProjectExplorer::RunControl *create(RunConfiguration *runConfiguration,
ProjectExplorer::RunMode mode,
QString *errorMessage);
- ProjectExplorer::IRunConfigurationAspect *createRunConfigurationAspect();
- ProjectExplorer::RunConfigWidget *createConfigurationWidget(RunConfiguration *runConfiguration);
+ ProjectExplorer::IRunConfigurationAspect *createRunConfigurationAspect(ProjectExplorer::RunConfiguration *rc);
+ ProjectExplorer::RunConfigWidget *createConfigurationWidget(ProjectExplorer::RunConfiguration *runConfiguration);
};
diff --git a/src/plugins/android/androidrunfactories.cpp b/src/plugins/android/androidrunfactories.cpp
index 9ced92ed6f..210e4cce78 100644
--- a/src/plugins/android/androidrunfactories.cpp
+++ b/src/plugins/android/androidrunfactories.cpp
@@ -102,10 +102,8 @@ QString AndroidRunConfigurationFactory::displayNameForId(const Core::Id id) cons
return QFileInfo(pathFromId(id)).completeBaseName();
}
-RunConfiguration *AndroidRunConfigurationFactory::create(Target *parent, const Core::Id id)
+RunConfiguration *AndroidRunConfigurationFactory::doCreate(Target *parent, const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
return new AndroidRunConfiguration(parent, id, pathFromId(id));
}
diff --git a/src/plugins/android/androidrunfactories.h b/src/plugins/android/androidrunfactories.h
index 599d074092..c605e506b6 100644
--- a/src/plugins/android/androidrunfactories.h
+++ b/src/plugins/android/androidrunfactories.h
@@ -54,7 +54,6 @@ public:
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
@@ -65,6 +64,11 @@ public:
bool canHandle(ProjectExplorer::Target *t) const;
QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Target *t,
ProjectExplorer::Node *n);
+
+private:
+ bool canHandle(ProjectExplorer::Target *t) const;
+
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
};
class AndroidRunControlFactory : public ProjectExplorer::IRunControlFactory
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 2e804f5355..1f834cca49 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -513,11 +513,9 @@ bool CMakeRunConfigurationFactory::canCreate(ProjectExplorer::Target *parent, co
return project->hasBuildTarget(buildTargetFromId(id));
}
-ProjectExplorer::RunConfiguration *CMakeRunConfigurationFactory::create(ProjectExplorer::Target *parent,
- const Core::Id id)
+ProjectExplorer::RunConfiguration *CMakeRunConfigurationFactory::doCreate(ProjectExplorer::Target *parent,
+ const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
CMakeProject *project = static_cast<CMakeProject *>(parent->project());
const QString title(buildTargetFromId(id));
const CMakeBuildTarget &ct = project->buildTargetForTitle(title);
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
index 65212e3747..ab7728b8ac 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -162,7 +162,6 @@ public:
~CMakeRunConfigurationFactory();
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product) const;
@@ -176,6 +175,8 @@ public:
private:
bool canHandle(ProjectExplorer::Target *parent) const;
+
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
};
}
diff --git a/src/plugins/madde/maemorunfactories.cpp b/src/plugins/madde/maemorunfactories.cpp
index 54ca2df1a5..d0cd8cfe04 100644
--- a/src/plugins/madde/maemorunfactories.cpp
+++ b/src/plugins/madde/maemorunfactories.cpp
@@ -132,10 +132,8 @@ QString MaemoRunConfigurationFactory::displayNameForId(const Core::Id id) const
+ QLatin1String(" (on remote Maemo device)");
}
-RunConfiguration *MaemoRunConfigurationFactory::create(Target *parent, const Core::Id id)
+RunConfiguration *MaemoRunConfigurationFactory::doCreate(Target *parent, const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
return new MaemoRunConfiguration(parent, id, pathFromId(id));
}
diff --git a/src/plugins/madde/maemorunfactories.h b/src/plugins/madde/maemorunfactories.h
index 82aa34ad89..2d04db7133 100644
--- a/src/plugins/madde/maemorunfactories.h
+++ b/src/plugins/madde/maemorunfactories.h
@@ -59,7 +59,6 @@ public:
QList<Core::Id> availableCreationIds(Target *parent) const;
bool canCreate(Target *parent, const Core::Id id) const;
- RunConfiguration *create(Target *parent, const Core::Id id);
bool canRestore(Target *parent, const QVariantMap &map) const;
RunConfiguration *restore(Target *parent, const QVariantMap &map);
@@ -70,6 +69,9 @@ public:
bool canHandle(ProjectExplorer::Target *t) const;
QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Target *t,
ProjectExplorer::Node *n);
+
+private:
+ RunConfiguration *doCreate(Target *parent, const Core::Id id);
};
class MaemoRunControlFactory : public IRunControlFactory
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 22e881a3ac..361070aa5c 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -37,7 +37,6 @@
#include "kitinformation.h"
#include <extensionsystem/pluginmanager.h>
-#include <utils/qtcassert.h>
#include <utils/outputformatter.h>
#include <utils/checkablemessagebox.h>
@@ -273,15 +272,16 @@ DebuggerRunConfigurationAspect *DebuggerRunConfigurationAspect::clone(RunConfigu
RunConfiguration::RunConfiguration(Target *target, const Core::Id id) :
ProjectConfiguration(target, id),
- m_debuggerAspect(new DebuggerRunConfigurationAspect(this))
+ m_debuggerAspect(new DebuggerRunConfigurationAspect(this)),
+ m_aspectsInitialized(false)
{
Q_ASSERT(target);
- addExtraAspects();
}
RunConfiguration::RunConfiguration(Target *target, RunConfiguration *source) :
ProjectConfiguration(target, source),
- m_debuggerAspect(source->debuggerAspect()->clone(this))
+ m_debuggerAspect(source->debuggerAspect()->clone(this)),
+ m_aspectsInitialized(true)
{
Q_ASSERT(target);
foreach (IRunConfigurationAspect *aspect, source->m_aspects) {
@@ -299,9 +299,13 @@ RunConfiguration::~RunConfiguration()
void RunConfiguration::addExtraAspects()
{
+ if (m_aspectsInitialized)
+ return;
+
foreach (IRunControlFactory *factory, ExtensionSystem::PluginManager::getObjects<IRunControlFactory>())
- if (IRunConfigurationAspect *aspect = factory->createRunConfigurationAspect())
+ if (IRunConfigurationAspect *aspect = factory->createRunConfigurationAspect(this))
m_aspects.append(aspect);
+ m_aspectsInitialized = true;
}
/*!
@@ -376,6 +380,7 @@ ProjectExplorer::Abi RunConfiguration::abi() const
bool RunConfiguration::fromMap(const QVariantMap &map)
{
+ addExtraAspects();
m_debuggerAspect->fromMap(map);
foreach (IRunConfigurationAspect *aspect, m_aspects)
@@ -402,6 +407,7 @@ bool RunConfiguration::fromMap(const QVariantMap &map)
QList<IRunConfigurationAspect *> RunConfiguration::extraAspects() const
{
+ QTC_ASSERT(m_aspectsInitialized, return QList<IRunConfigurationAspect *>());
return m_aspects;
}
@@ -445,6 +451,17 @@ IRunConfigurationFactory::~IRunConfigurationFactory()
{
}
+RunConfiguration *IRunConfigurationFactory::create(Target *parent, const Core::Id id)
+{
+ if (!canCreate(parent, id))
+ return 0;
+ RunConfiguration *rc = doCreate(parent, id);
+ if (!rc)
+ return 0;
+ rc->addExtraAspects();
+ return rc;
+}
+
IRunConfigurationFactory *IRunConfigurationFactory::find(Target *parent, const QVariantMap &map)
{
QList<IRunConfigurationFactory *> factories
@@ -512,8 +529,9 @@ IRunControlFactory::~IRunControlFactory()
{
}
-IRunConfigurationAspect *IRunControlFactory::createRunConfigurationAspect()
+IRunConfigurationAspect *IRunControlFactory::createRunConfigurationAspect(RunConfiguration *rc)
{
+ Q_UNUSED(rc);
return 0;
}
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index 2cfa6fbf05..8c143d3eba 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -35,6 +35,7 @@
#include "projectexplorerconstants.h"
#include <utils/outputformat.h>
+#include <utils/qtcassert.h>
#include <QPointer>
#include <QWidget>
@@ -170,6 +171,7 @@ public:
QList<IRunConfigurationAspect *> extraAspects() const;
template <typename T> T *extraAspect() const
{
+ QTC_ASSERT(m_aspectsInitialized, return 0);
IRunConfigurationAspect *typeCheck = static_cast<T *>(0);
Q_UNUSED(typeCheck);
T *result = 0;
@@ -182,6 +184,8 @@ public:
virtual ProjectExplorer::Abi abi() const;
+ void addExtraAspects();
+
signals:
void enabledChanged();
@@ -193,10 +197,9 @@ protected:
BuildConfiguration *activeBuildConfiguration() const;
private:
- void addExtraAspects();
-
QList<IRunConfigurationAspect *> m_aspects;
DebuggerRunConfigurationAspect *m_debuggerAspect;
+ bool m_aspectsInitialized;
};
class PROJECTEXPLORER_EXPORT IRunConfigurationFactory : public QObject
@@ -211,7 +214,7 @@ public:
virtual QString displayNameForId(const Core::Id id) const = 0;
virtual bool canCreate(Target *parent, const Core::Id id) const = 0;
- virtual RunConfiguration *create(Target *parent, const Core::Id id) = 0;
+ RunConfiguration *create(Target *parent, const Core::Id id);
virtual bool canRestore(Target *parent, const QVariantMap &map) const = 0;
virtual RunConfiguration *restore(Target *parent, const QVariantMap &map) = 0;
virtual bool canClone(Target *parent, RunConfiguration *product) const = 0;
@@ -223,6 +226,9 @@ public:
signals:
void availableCreationIdsChanged();
+
+private:
+ virtual RunConfiguration *doCreate(Target *parent, const Core::Id id) = 0;
};
class RunConfigWidget;
@@ -239,7 +245,7 @@ public:
virtual QString displayName() const = 0;
- virtual IRunConfigurationAspect *createRunConfigurationAspect();
+ virtual IRunConfigurationAspect *createRunConfigurationAspect(RunConfiguration *rc);
virtual RunConfigWidget *createConfigurationWidget(RunConfiguration *runConfiguration);
};
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp
index b0cf49affb..bd6a5b4a5c 100644
--- a/src/plugins/projectexplorer/target.cpp
+++ b/src/plugins/projectexplorer/target.cpp
@@ -400,6 +400,7 @@ void Target::addRunConfiguration(RunConfiguration* runConfiguration)
{
QTC_ASSERT(runConfiguration && !d->m_runConfigurations.contains(runConfiguration), return);
Q_ASSERT(runConfiguration->target() == this);
+ runConfiguration->addExtraAspects();
// Check that we don't have a configuration with the same displayName
QString configurationDisplayName = runConfiguration->displayName();
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp
index d747e76bd0..2cfa65fd24 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.cpp
@@ -110,10 +110,8 @@ bool QmlProjectRunConfigurationFactory::canCreate(ProjectExplorer::Target *paren
return false;
}
-ProjectExplorer::RunConfiguration *QmlProjectRunConfigurationFactory::create(ProjectExplorer::Target *parent, const Core::Id id)
+ProjectExplorer::RunConfiguration *QmlProjectRunConfigurationFactory::doCreate(ProjectExplorer::Target *parent, const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
return new QmlProjectRunConfiguration(parent, id);
}
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.h
index 7eab5a3d0a..f2b3e500a1 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationfactory.h
@@ -47,7 +47,6 @@ public:
QString displayNameForId(const Core::Id id) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const;
@@ -55,6 +54,8 @@ public:
private:
bool canHandle(ProjectExplorer::Target *parent) const;
+
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
};
} // namespace Internal
diff --git a/src/plugins/qnx/blackberryrunconfigurationfactory.cpp b/src/plugins/qnx/blackberryrunconfigurationfactory.cpp
index 57808a3cbe..84f1dc7926 100644
--- a/src/plugins/qnx/blackberryrunconfigurationfactory.cpp
+++ b/src/plugins/qnx/blackberryrunconfigurationfactory.cpp
@@ -95,12 +95,9 @@ bool BlackBerryRunConfigurationFactory::canCreate(ProjectExplorer::Target *paren
return qt4Project->hasApplicationProFile(pathFromId(id));
}
-ProjectExplorer::RunConfiguration *BlackBerryRunConfigurationFactory::create(ProjectExplorer::Target *parent,
+ProjectExplorer::RunConfiguration *BlackBerryRunConfigurationFactory::doCreate(ProjectExplorer::Target *parent,
const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
-
return new BlackBerryRunConfiguration(parent, id, pathFromId(id));
}
diff --git a/src/plugins/qnx/blackberryrunconfigurationfactory.h b/src/plugins/qnx/blackberryrunconfigurationfactory.h
index 80d124ca9f..2d38bcd401 100644
--- a/src/plugins/qnx/blackberryrunconfigurationfactory.h
+++ b/src/plugins/qnx/blackberryrunconfigurationfactory.h
@@ -47,7 +47,7 @@ public:
QString displayNameForId(const Core::Id id) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent,
diff --git a/src/plugins/qnx/qnxrunconfigurationfactory.cpp b/src/plugins/qnx/qnxrunconfigurationfactory.cpp
index 1459f591e2..81c5310439 100644
--- a/src/plugins/qnx/qnxrunconfigurationfactory.cpp
+++ b/src/plugins/qnx/qnxrunconfigurationfactory.cpp
@@ -82,7 +82,7 @@ QString QnxRunConfigurationFactory::displayNameForId(const Core::Id id) const
bool QnxRunConfigurationFactory::canCreate(ProjectExplorer::Target *parent, const Core::Id id) const
{
- if (!canHandle(parent))
+ if (!canHandle(parent) || id.name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX))
return false;
Qt4ProjectManager::Qt4Project *qt4Project = qobject_cast<Qt4ProjectManager::Qt4Project *>(parent->project());
@@ -92,15 +92,9 @@ bool QnxRunConfigurationFactory::canCreate(ProjectExplorer::Target *parent, cons
return qt4Project->hasApplicationProFile(pathFromId(id));
}
-ProjectExplorer::RunConfiguration *QnxRunConfigurationFactory::create(ProjectExplorer::Target *parent, const Core::Id id)
+ProjectExplorer::RunConfiguration *QnxRunConfigurationFactory::doCreate(ProjectExplorer::Target *parent, const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
-
- if (id.name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX))
- return new QnxRunConfiguration(parent, id, pathFromId(id));
-
- return 0;
+ return new QnxRunConfiguration(parent, id, pathFromId(id));
}
bool QnxRunConfigurationFactory::canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const
diff --git a/src/plugins/qnx/qnxrunconfigurationfactory.h b/src/plugins/qnx/qnxrunconfigurationfactory.h
index 676eba8031..f74559da4a 100644
--- a/src/plugins/qnx/qnxrunconfigurationfactory.h
+++ b/src/plugins/qnx/qnxrunconfigurationfactory.h
@@ -47,7 +47,6 @@ public:
QString displayNameForId(const Core::Id id) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent,
@@ -57,7 +56,10 @@ public:
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent,
ProjectExplorer::RunConfiguration *source);
+private:
bool canHandle(ProjectExplorer::Target *t) const;
+
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
};
} // namespace Internal
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
index 97f7fcc1f8..b6f2c53f9b 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
@@ -735,11 +735,8 @@ bool Qt4RunConfigurationFactory::canCreate(ProjectExplorer::Target *parent, cons
return project->hasApplicationProFile(pathFromId(id));
}
-ProjectExplorer::RunConfiguration *Qt4RunConfigurationFactory::create(ProjectExplorer::Target *parent, const Core::Id id)
+ProjectExplorer::RunConfiguration *Qt4RunConfigurationFactory::doCreate(ProjectExplorer::Target *parent, const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
-
Qt4RunConfiguration *rc = new Qt4RunConfiguration(parent, id);
QList<Qt4ProFileNode *> profiles = static_cast<Qt4Project *>(parent->project())->applicationProFiles();
foreach (Qt4ProFileNode *node, profiles) {
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h
index 2c83cf1be6..7b07c9c62b 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h
@@ -213,7 +213,6 @@ public:
~Qt4RunConfigurationFactory();
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const;
@@ -225,6 +224,9 @@ public:
bool canHandle(ProjectExplorer::Target *t) const;
QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Target *t,
ProjectExplorer::Node *n);
+
+private:
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
};
} // namespace Internal
diff --git a/src/plugins/qtsupport/customexecutablerunconfiguration.cpp b/src/plugins/qtsupport/customexecutablerunconfiguration.cpp
index 6e93267c35..3f5c0b8ee5 100644
--- a/src/plugins/qtsupport/customexecutablerunconfiguration.cpp
+++ b/src/plugins/qtsupport/customexecutablerunconfiguration.cpp
@@ -400,11 +400,9 @@ bool CustomExecutableRunConfigurationFactory::canCreate(ProjectExplorer::Target
}
ProjectExplorer::RunConfiguration *
-CustomExecutableRunConfigurationFactory::create(ProjectExplorer::Target *parent, const Core::Id id)
+CustomExecutableRunConfigurationFactory::doCreate(ProjectExplorer::Target *parent, const Core::Id id)
{
- if (!canCreate(parent, id))
- return 0;
-
+ Q_UNUSED(id);
return new CustomExecutableRunConfiguration(parent);
}
diff --git a/src/plugins/qtsupport/customexecutablerunconfiguration.h b/src/plugins/qtsupport/customexecutablerunconfiguration.h
index 9175977141..64b175d76c 100644
--- a/src/plugins/qtsupport/customexecutablerunconfiguration.h
+++ b/src/plugins/qtsupport/customexecutablerunconfiguration.h
@@ -138,7 +138,6 @@ public:
QString displayNameForId(const Core::Id id) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *product) const;
@@ -147,6 +146,8 @@ public:
private:
bool canHandle(ProjectExplorer::Target *parent) const;
+
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
};
} // namespace QtSupport
diff --git a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp
index eec12119f8..cd220fc53a 100644
--- a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp
+++ b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp
@@ -105,9 +105,8 @@ QString RemoteLinuxRunConfigurationFactory::displayNameForId(const Core::Id id)
+ tr(" (on Remote Generic Linux Host)");
}
-RunConfiguration *RemoteLinuxRunConfigurationFactory::create(Target *parent, const Core::Id id)
+RunConfiguration *RemoteLinuxRunConfigurationFactory::doCreate(Target *parent, const Core::Id id)
{
- QTC_ASSERT(canCreate(parent, id), return 0);
return new RemoteLinuxRunConfiguration(parent, id, pathFromId(id));
}
diff --git a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h
index a4d951574f..bca5608bef 100644
--- a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h
+++ b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h
@@ -46,7 +46,6 @@ public:
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent,
@@ -58,6 +57,8 @@ public:
private:
bool canHandle(const ProjectExplorer::Target *target) const;
+
+ ProjectExplorer::RunConfiguration *doCreate(ProjectExplorer::Target *parent, const Core::Id id);
};
} // namespace Internal