diff --git a/src/plugins/android/androiddeployconfiguration.cpp b/src/plugins/android/androiddeployconfiguration.cpp index 327d08668a4..7f68941d97d 100644 --- a/src/plugins/android/androiddeployconfiguration.cpp +++ b/src/plugins/android/androiddeployconfiguration.cpp @@ -135,10 +135,5 @@ QString AndroidDeployConfigurationFactory::displayNameForId(Core::Id id) const return QString(); } -bool AndroidDeployConfigurationFactory::canHandle(Target *parent) const -{ - return AndroidManager::supportsAndroid(parent); -} - } // namespace Internal } // namespace Android diff --git a/src/plugins/android/androiddeployconfiguration.h b/src/plugins/android/androiddeployconfiguration.h index d414fcf4b76..8e5530a58d3 100644 --- a/src/plugins/android/androiddeployconfiguration.h +++ b/src/plugins/android/androiddeployconfiguration.h @@ -70,9 +70,6 @@ public: QList availableCreationIds(ProjectExplorer::Target *parent) const; // used to translate the ids to names to display to the user QString displayNameForId(Core::Id id) const; - -private: - bool canHandle(ProjectExplorer::Target *parent) const; }; } // namespace Internal diff --git a/src/plugins/ios/iosdeployconfiguration.cpp b/src/plugins/ios/iosdeployconfiguration.cpp index a2dbce94d7d..e1940553eef 100644 --- a/src/plugins/ios/iosdeployconfiguration.cpp +++ b/src/plugins/ios/iosdeployconfiguration.cpp @@ -128,10 +128,5 @@ QString IosDeployConfigurationFactory::displayNameForId(Core::Id id) const return QString(); } -bool IosDeployConfigurationFactory::canHandle(Target *parent) const -{ - return IosManager::supportsIos(parent); -} - } // namespace Internal } // namespace Ios diff --git a/src/plugins/ios/iosdeployconfiguration.h b/src/plugins/ios/iosdeployconfiguration.h index 86080d23e96..90974b12adb 100644 --- a/src/plugins/ios/iosdeployconfiguration.h +++ b/src/plugins/ios/iosdeployconfiguration.h @@ -72,9 +72,6 @@ public: QList availableCreationIds(ProjectExplorer::Target *parent) const Q_DECL_OVERRIDE; // used to translate the ids to names to display to the user QString displayNameForId(Core::Id id) const Q_DECL_OVERRIDE; - -private: - bool canHandle(ProjectExplorer::Target *parent) const Q_DECL_OVERRIDE; }; } // namespace Internal diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index 1c39a177b52..3ed2a4e7072 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -182,64 +182,6 @@ DeployConfigurationFactory::DeployConfigurationFactory(QObject *parent) : DeployConfigurationFactory::~DeployConfigurationFactory() { } -QList DeployConfigurationFactory::availableCreationIds(Target *parent) const -{ - if (!canHandle(parent)) - return QList(); - return QList() << Core::Id(Constants::DEFAULT_DEPLOYCONFIGURATION_ID); -} - -QString DeployConfigurationFactory::displayNameForId(Core::Id id) const -{ - if (id == Constants::DEFAULT_DEPLOYCONFIGURATION_ID) - //: Display name of the default deploy configuration - return tr("Deploy Configuration"); - return QString(); -} - -bool DeployConfigurationFactory::canCreate(Target *parent, Core::Id id) const -{ - if (!canHandle(parent)) - return false; - return id == Constants::DEFAULT_DEPLOYCONFIGURATION_ID; -} - -DeployConfiguration *DeployConfigurationFactory::create(Target *parent, Core::Id id) -{ - if (!canCreate(parent, id)) - return 0; - return new DefaultDeployConfiguration(parent, id); -} - -bool DeployConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const -{ - return canCreate(parent, idFromMap(map)); -} - -DeployConfiguration *DeployConfigurationFactory::restore(Target *parent, const QVariantMap &map) -{ - if (!canRestore(parent, map)) - return 0; - DefaultDeployConfiguration *dc = new DefaultDeployConfiguration(parent, idFromMap(map)); - if (!dc->fromMap(map)) { - delete dc; - return 0; - } - return dc; -} - -bool DeployConfigurationFactory::canClone(Target *parent, DeployConfiguration *product) const -{ - return canCreate(parent, product->id()); -} - -DeployConfiguration *DeployConfigurationFactory::clone(Target *parent, DeployConfiguration *product) -{ - if (!canClone(parent, product)) - return 0; - return new DefaultDeployConfiguration(parent, product); -} - DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, const QVariantMap &map) { return ExtensionSystem::PluginManager::getObject( @@ -264,7 +206,69 @@ DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, Dep }); } -bool DeployConfigurationFactory::canHandle(Target *parent) const +/// +// DefaultDeployConfigurationFactory +/// + +QList DefaultDeployConfigurationFactory::availableCreationIds(Target *parent) const +{ + if (!canHandle(parent)) + return QList(); + return QList() << Core::Id(Constants::DEFAULT_DEPLOYCONFIGURATION_ID); +} + +QString DefaultDeployConfigurationFactory::displayNameForId(Core::Id id) const +{ + if (id == Constants::DEFAULT_DEPLOYCONFIGURATION_ID) + //: Display name of the default deploy configuration + return tr("Deploy Configuration"); + return QString(); +} + +bool DefaultDeployConfigurationFactory::canCreate(Target *parent, Core::Id id) const +{ + if (!canHandle(parent)) + return false; + return id == Constants::DEFAULT_DEPLOYCONFIGURATION_ID; +} + +DeployConfiguration *DefaultDeployConfigurationFactory::create(Target *parent, Core::Id id) +{ + if (!canCreate(parent, id)) + return 0; + return new DefaultDeployConfiguration(parent, id); +} + +bool DefaultDeployConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const +{ + return canCreate(parent, idFromMap(map)); +} + +DeployConfiguration *DefaultDeployConfigurationFactory::restore(Target *parent, const QVariantMap &map) +{ + if (!canRestore(parent, map)) + return 0; + DefaultDeployConfiguration *dc = new DefaultDeployConfiguration(parent, idFromMap(map)); + if (!dc->fromMap(map)) { + delete dc; + return 0; + } + return dc; +} + +bool DefaultDeployConfigurationFactory::canClone(Target *parent, DeployConfiguration *product) const +{ + return canCreate(parent, product->id()); +} + +DeployConfiguration *DefaultDeployConfigurationFactory::clone(Target *parent, DeployConfiguration *product) +{ + if (!canClone(parent, product)) + return 0; + return new DefaultDeployConfiguration(parent, product); +} + +bool DefaultDeployConfigurationFactory::canHandle(Target *parent) const { if (!parent->project()->supportsKit(parent->kit()) || parent->project()->needsSpecialDeployment()) return false; diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index aed56110912..92734be0ac7 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -84,7 +84,7 @@ private: class PROJECTEXPLORER_EXPORT DefaultDeployConfiguration : public DeployConfiguration { Q_OBJECT - friend class DeployConfigurationFactory; // for the ctors + friend class DefaultDeployConfigurationFactory; // for the ctors protected: DefaultDeployConfiguration(Target *target, Core::Id id); DefaultDeployConfiguration(Target *target, DeployConfiguration *source); @@ -100,17 +100,17 @@ public: virtual ~DeployConfigurationFactory(); // used to show the list of possible additons to a target, returns a list of types - virtual QList availableCreationIds(Target *parent) const; + virtual QList availableCreationIds(Target *parent) const = 0; // used to translate the types to names to display to the user - virtual QString displayNameForId(Core::Id id) const; + virtual QString displayNameForId(Core::Id id) const = 0; - virtual bool canCreate(Target *parent, Core::Id id) const; - virtual DeployConfiguration *create(Target *parent, Core::Id id); + virtual bool canCreate(Target *parent, Core::Id id) const = 0; + virtual DeployConfiguration *create(Target *parent, Core::Id id) = 0; // used to recreate the runConfigurations when restoring settings - virtual bool canRestore(Target *parent, const QVariantMap &map) const; - virtual DeployConfiguration *restore(Target *parent, const QVariantMap &map); - virtual bool canClone(Target *parent, DeployConfiguration *product) const; - virtual DeployConfiguration *clone(Target *parent, DeployConfiguration *product); + virtual bool canRestore(Target *parent, const QVariantMap &map) const = 0; + virtual DeployConfiguration *restore(Target *parent, const QVariantMap &map) = 0; + virtual bool canClone(Target *parent, DeployConfiguration *product) const = 0; + virtual DeployConfiguration *clone(Target *parent, DeployConfiguration *product) = 0; static DeployConfigurationFactory *find(Target *parent, const QVariantMap &map); static QList find(Target *parent); @@ -118,11 +118,22 @@ public: signals: void availableCreationIdsChanged(); +}; -protected: - virtual bool canHandle(Target *parent) const; - +class DefaultDeployConfigurationFactory : public DeployConfigurationFactory +{ +public: + QList availableCreationIds(Target *parent) const; + // used to translate the types to names to display to the user + QString displayNameForId(Core::Id id) const; + bool canCreate(Target *parent, Core::Id id) const; + DeployConfiguration *create(Target *parent, Core::Id id); + bool canRestore(Target *parent, const QVariantMap &map) const; + DeployConfiguration *restore(Target *parent, const QVariantMap &map); + bool canClone(Target *parent, DeployConfiguration *product) const; + DeployConfiguration *clone(Target *parent, DeployConfiguration *product); private: + bool canHandle(Target *parent) const; }; } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 30e251459af..7c57dbd7a9d 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1008,7 +1008,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er addAutoReleasedObject(new ProjectTreeWidgetFactory); addAutoReleasedObject(new FolderNavigationWidgetFactory); - addAutoReleasedObject(new DeployConfigurationFactory); + addAutoReleasedObject(new DefaultDeployConfigurationFactory); QSettings *s = ICore::settings(); const QStringList fileNames = diff --git a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp index 933a4e9f2dc..71f45eabf57 100644 --- a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp +++ b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp @@ -142,6 +142,11 @@ ProjectExplorer::DeployConfiguration return dc; } +bool QbsDeployConfigurationFactory::canClone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *product) const +{ + return canCreate(parent, product->id()); +} + ProjectExplorer::DeployConfiguration *QbsDeployConfigurationFactory::clone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *product) diff --git a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h index c9fb2eefac8..2965f9de67b 100644 --- a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h +++ b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h @@ -69,6 +69,7 @@ public: ProjectExplorer::DeployConfiguration *create(ProjectExplorer::Target *parent, Core::Id id); bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const; ProjectExplorer::DeployConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map); + bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *product) const; ProjectExplorer::DeployConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *product); }; diff --git a/src/plugins/qnx/qnxdeployconfigurationfactory.h b/src/plugins/qnx/qnxdeployconfigurationfactory.h index 1899f1301b2..215f90a704e 100644 --- a/src/plugins/qnx/qnxdeployconfigurationfactory.h +++ b/src/plugins/qnx/qnxdeployconfigurationfactory.h @@ -58,7 +58,7 @@ public: ProjectExplorer::DeployConfiguration *source) const; ProjectExplorer::DeployConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *source); - +private: bool canHandle(ProjectExplorer::Target *t) const; }; diff --git a/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.cpp b/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.cpp index b058ef2cdd9..bee60f7d2b6 100644 --- a/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.cpp +++ b/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.cpp @@ -115,6 +115,11 @@ DeployConfiguration *RemoteLinuxDeployConfigurationFactory::restore(Target *pare return dc; } +bool RemoteLinuxDeployConfigurationFactory::canClone(Target *parent, DeployConfiguration *product) const +{ + return canCreate(parent, product->id()); +} + DeployConfiguration *RemoteLinuxDeployConfigurationFactory::clone(Target *parent, DeployConfiguration *product) { diff --git a/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.h b/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.h index fd919e4e098..74b482c6026 100644 --- a/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.h +++ b/src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.h @@ -48,6 +48,7 @@ public: ProjectExplorer::DeployConfiguration *create(ProjectExplorer::Target *parent, Core::Id id); bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const; ProjectExplorer::DeployConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map); + bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *product) const; ProjectExplorer::DeployConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::DeployConfiguration *product);