Make DeployConfigurations cloneable

The API was there just not the correct implementation.

Change-Id: I65468f3c00f3c8ba1b853f8c11f6296813d1a966
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Daniel Teske
2012-09-12 17:38:08 +02:00
committed by Daniel Teske
parent a969c9c1d8
commit d7993c717d
6 changed files with 31 additions and 5 deletions

View File

@@ -57,6 +57,7 @@ AndroidDeployConfiguration::AndroidDeployConfiguration(Target *parent, Core::Id
AndroidDeployConfiguration::AndroidDeployConfiguration(Target *parent, DeployConfiguration *source) AndroidDeployConfiguration::AndroidDeployConfiguration(Target *parent, DeployConfiguration *source)
: DeployConfiguration(parent, source) : DeployConfiguration(parent, source)
{ {
cloneSteps(source);
} }
AndroidDeployConfigurationFactory::AndroidDeployConfigurationFactory(QObject *parent) AndroidDeployConfigurationFactory::AndroidDeployConfigurationFactory(QObject *parent)

View File

@@ -76,6 +76,7 @@ Qt4MaemoDeployConfiguration::Qt4MaemoDeployConfiguration(ProjectExplorer::Target
: RemoteLinuxDeployConfiguration(target, source) : RemoteLinuxDeployConfiguration(target, source)
{ {
init(); init();
cloneSteps(source);
} }
DeployConfigurationWidget *Qt4MaemoDeployConfiguration::configurationWidget() const DeployConfigurationWidget *Qt4MaemoDeployConfiguration::configurationWidget() const

View File

@@ -150,6 +150,21 @@ void DeployConfiguration::cloneSteps(DeployConfiguration *source)
m_stepList->cloneSteps(source->stepList()); 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 // DeployConfigurationFactory
/// ///
@@ -187,7 +202,7 @@ DeployConfiguration *DeployConfigurationFactory::create(Target *parent, const Co
{ {
if (!canCreate(parent, id)) if (!canCreate(parent, id))
return 0; return 0;
return new DeployConfiguration(parent, id); return new DefaultDeployConfiguration(parent, id);
} }
bool DeployConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const bool DeployConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const
@@ -199,7 +214,7 @@ DeployConfiguration *DeployConfigurationFactory::restore(Target *parent, const Q
{ {
if (!canRestore(parent, map)) if (!canRestore(parent, map))
return 0; return 0;
DeployConfiguration *dc = new DeployConfiguration(parent, idFromMap(map)); DefaultDeployConfiguration *dc = new DefaultDeployConfiguration(parent, idFromMap(map));
if (!dc->fromMap(map)) { if (!dc->fromMap(map)) {
delete dc; delete dc;
return 0; return 0;
@@ -216,7 +231,7 @@ DeployConfiguration *DeployConfigurationFactory::clone(Target *parent, DeployCon
{ {
if (!canClone(parent, product)) if (!canClone(parent, product))
return 0; return 0;
return new DeployConfiguration(parent, product); return new DefaultDeployConfiguration(parent, product);
} }
DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, const QVariantMap &map) DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, const QVariantMap &map)

View File

@@ -78,11 +78,18 @@ protected:
bool fromMap(const QVariantMap &map); bool fromMap(const QVariantMap &map);
private: private:
friend class DeployConfigurationFactory;
BuildStepList *m_stepList; 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 : class PROJECTEXPLORER_EXPORT DeployConfigurationFactory :
public QObject public QObject
{ {

View File

@@ -61,6 +61,7 @@ BlackBerryDeployConfiguration::BlackBerryDeployConfiguration(ProjectExplorer::Ta
: ProjectExplorer::DeployConfiguration(parent, source) : ProjectExplorer::DeployConfiguration(parent, source)
{ {
ctor(); ctor();
cloneSteps(source);
} }
void BlackBerryDeployConfiguration::ctor() void BlackBerryDeployConfiguration::ctor()

View File

@@ -44,4 +44,5 @@ QnxDeployConfiguration::QnxDeployConfiguration(ProjectExplorer::Target *target,
QnxDeployConfiguration::QnxDeployConfiguration(ProjectExplorer::Target *target, QnxDeployConfiguration *source) QnxDeployConfiguration::QnxDeployConfiguration(ProjectExplorer::Target *target, QnxDeployConfiguration *source)
: RemoteLinux::RemoteLinuxDeployConfiguration(target, source) : RemoteLinux::RemoteLinuxDeployConfiguration(target, source)
{ {
cloneSteps(source);
} }