From d7993c717d08e2884963340d9017156b54b44c05 Mon Sep 17 00:00:00 2001 From: Daniel Teske <daniel.teske@nokia.com> Date: Wed, 12 Sep 2012 17:38:08 +0200 Subject: [PATCH] Make DeployConfigurations cloneable The API was there just not the correct implementation. Change-Id: I65468f3c00f3c8ba1b853f8c11f6296813d1a966 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> --- .../android/androiddeployconfiguration.cpp | 1 + .../madde/qt4maemodeployconfiguration.cpp | 1 + .../projectexplorer/deployconfiguration.cpp | 21 ++++++++++++++++--- .../projectexplorer/deployconfiguration.h | 11 ++++++++-- .../qnx/blackberrydeployconfiguration.cpp | 1 + src/plugins/qnx/qnxdeployconfiguration.cpp | 1 + 6 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/plugins/android/androiddeployconfiguration.cpp b/src/plugins/android/androiddeployconfiguration.cpp index 6d06801af65..2c76ccd3bf5 100644 --- a/src/plugins/android/androiddeployconfiguration.cpp +++ b/src/plugins/android/androiddeployconfiguration.cpp @@ -57,6 +57,7 @@ AndroidDeployConfiguration::AndroidDeployConfiguration(Target *parent, Core::Id AndroidDeployConfiguration::AndroidDeployConfiguration(Target *parent, DeployConfiguration *source) : DeployConfiguration(parent, source) { + cloneSteps(source); } AndroidDeployConfigurationFactory::AndroidDeployConfigurationFactory(QObject *parent) diff --git a/src/plugins/madde/qt4maemodeployconfiguration.cpp b/src/plugins/madde/qt4maemodeployconfiguration.cpp index 5f533a9bd9e..68a9865ab7e 100644 --- a/src/plugins/madde/qt4maemodeployconfiguration.cpp +++ b/src/plugins/madde/qt4maemodeployconfiguration.cpp @@ -76,6 +76,7 @@ Qt4MaemoDeployConfiguration::Qt4MaemoDeployConfiguration(ProjectExplorer::Target : RemoteLinuxDeployConfiguration(target, source) { init(); + cloneSteps(source); } DeployConfigurationWidget *Qt4MaemoDeployConfiguration::configurationWidget() const diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index 2be157dd8cc..f5db9d320b7 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -150,6 +150,21 @@ void DeployConfiguration::cloneSteps(DeployConfiguration *source) m_stepList->cloneSteps(source->stepList()); } +/// +// DefaultDeployConfiguration +/// +DefaultDeployConfiguration::DefaultDeployConfiguration(Target *target, const Core::Id id) + : DeployConfiguration(target, id) +{ + +} + +DefaultDeployConfiguration::DefaultDeployConfiguration(Target *target, DeployConfiguration *source) + : DeployConfiguration(target, source) +{ + cloneSteps(source); +} + /// // DeployConfigurationFactory /// @@ -187,7 +202,7 @@ DeployConfiguration *DeployConfigurationFactory::create(Target *parent, const Co { if (!canCreate(parent, id)) return 0; - return new DeployConfiguration(parent, id); + return new DefaultDeployConfiguration(parent, id); } bool DeployConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const @@ -199,7 +214,7 @@ DeployConfiguration *DeployConfigurationFactory::restore(Target *parent, const Q { if (!canRestore(parent, map)) return 0; - DeployConfiguration *dc = new DeployConfiguration(parent, idFromMap(map)); + DefaultDeployConfiguration *dc = new DefaultDeployConfiguration(parent, idFromMap(map)); if (!dc->fromMap(map)) { delete dc; return 0; @@ -216,7 +231,7 @@ DeployConfiguration *DeployConfigurationFactory::clone(Target *parent, DeployCon { if (!canClone(parent, product)) return 0; - return new DeployConfiguration(parent, product); + return new DefaultDeployConfiguration(parent, product); } DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, const QVariantMap &map) diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index 18ff4816bf7..49482879dc9 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -78,11 +78,18 @@ protected: bool fromMap(const QVariantMap &map); private: - friend class DeployConfigurationFactory; - BuildStepList *m_stepList; }; +class PROJECTEXPLORER_EXPORT DefaultDeployConfiguration : public DeployConfiguration +{ + Q_OBJECT + friend class DeployConfigurationFactory; // for the ctors +protected: + DefaultDeployConfiguration(Target *target, const Core::Id id); + DefaultDeployConfiguration(Target *target, DeployConfiguration *source); +}; + class PROJECTEXPLORER_EXPORT DeployConfigurationFactory : public QObject { diff --git a/src/plugins/qnx/blackberrydeployconfiguration.cpp b/src/plugins/qnx/blackberrydeployconfiguration.cpp index cbf93f40d25..3bd180bc421 100644 --- a/src/plugins/qnx/blackberrydeployconfiguration.cpp +++ b/src/plugins/qnx/blackberrydeployconfiguration.cpp @@ -61,6 +61,7 @@ BlackBerryDeployConfiguration::BlackBerryDeployConfiguration(ProjectExplorer::Ta : ProjectExplorer::DeployConfiguration(parent, source) { ctor(); + cloneSteps(source); } void BlackBerryDeployConfiguration::ctor() diff --git a/src/plugins/qnx/qnxdeployconfiguration.cpp b/src/plugins/qnx/qnxdeployconfiguration.cpp index 9d6efacdce5..859cd65b3fe 100644 --- a/src/plugins/qnx/qnxdeployconfiguration.cpp +++ b/src/plugins/qnx/qnxdeployconfiguration.cpp @@ -44,4 +44,5 @@ QnxDeployConfiguration::QnxDeployConfiguration(ProjectExplorer::Target *target, QnxDeployConfiguration::QnxDeployConfiguration(ProjectExplorer::Target *target, QnxDeployConfiguration *source) : RemoteLinux::RemoteLinuxDeployConfiguration(target, source) { + cloneSteps(source); } -- GitLab