diff options
author | Tobias Hunger <tobias.hunger@digia.com> | 2013-03-26 16:39:41 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@digia.com> | 2013-04-05 08:55:01 +0200 |
commit | 1650c22b7be923d633981f45d3b38a38dce70a08 (patch) | |
tree | b59a64209d5f43ccb34c56514d90f42f643d473f | |
parent | 5d4c4a6968ba7b5dd2d61e10ab28858b2f50deb7 (diff) | |
download | qt-creator-1650c22b7be923d633981f45d3b38a38dce70a08.tar.gz |
RunConfigurationAspect: Add RunConfiguration parameter to factory method
Change-Id: I7fbb82dc3ff83593473a57c69d0eb89bc33f50f5
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
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 |