diff options
Diffstat (limited to 'src/plugins/projectexplorer/deployconfiguration.cpp')
-rw-r--r-- | src/plugins/projectexplorer/deployconfiguration.cpp | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index b4b5c9e97e..adf95a56b0 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -64,7 +64,8 @@ DeployConfiguration::DeployConfiguration(Target *target, const Core::Id id) : } DeployConfiguration::DeployConfiguration(Target *target, DeployConfiguration *source) : - ProjectConfiguration(target, source) + ProjectConfiguration(target, source), + m_stepList(0) { Q_ASSERT(target); // Do not clone stepLists here, do that in the derived constructor instead @@ -150,6 +151,21 @@ void DeployConfiguration::cloneSteps(DeployConfiguration *source) } /// +// DefaultDeployConfiguration +/// +DefaultDeployConfiguration::DefaultDeployConfiguration(Target *target, const Core::Id id) + : DeployConfiguration(target, id) +{ + +} + +DefaultDeployConfiguration::DefaultDeployConfiguration(Target *target, DeployConfiguration *source) + : DeployConfiguration(target, source) +{ + cloneSteps(source); +} + +/// // DeployConfigurationFactory /// @@ -186,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 @@ -198,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; @@ -215,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) @@ -240,6 +256,17 @@ DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent) return 0; } +DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, DeployConfiguration *dc) +{ + QList<DeployConfigurationFactory *> factories + = ExtensionSystem::PluginManager::instance()->getObjects<DeployConfigurationFactory>(); + foreach (DeployConfigurationFactory *factory, factories) { + if (factory->canClone(parent, dc)) + return factory; + } + return 0; +} + bool DeployConfigurationFactory::canHandle(Target *parent) const { if (!parent->project()->supportsKit(parent->kit())) |