summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@theqtcompany.com>2014-12-08 15:50:22 +0100
committerDaniel Teske <daniel.teske@theqtcompany.com>2015-01-13 16:12:24 +0100
commitb3f0a1bfbba0b2455b0b99332f1296a67d8a2b50 (patch)
treed3b6abae85cc5cd0b7362945457d518c31dc6bbe
parent90a2665737b09b51b31813d8f84ac17f86cfb350 (diff)
downloadqt-creator-b3f0a1bfbba0b2455b0b99332f1296a67d8a2b50.tar.gz
DeployConfigurationFactory: Properly extract the abstract class
Make DeployConfigurationFactory a true base class. Introduce the DefaultDeployConfigurationFactory as the implementation that actually creates DefaultDeployConfigurations. This mostly moves code around. The virtual canHandle method was mostly unused and was removed from most classes. Change-Id: I170d94c648e67f3fe52a76ffb5344f389ae49efc Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
-rw-r--r--src/plugins/android/androiddeployconfiguration.cpp5
-rw-r--r--src/plugins/android/androiddeployconfiguration.h3
-rw-r--r--src/plugins/ios/iosdeployconfiguration.cpp5
-rw-r--r--src/plugins/ios/iosdeployconfiguration.h3
-rw-r--r--src/plugins/projectexplorer/deployconfiguration.cpp70
-rw-r--r--src/plugins/projectexplorer/deployconfiguration.h35
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp2
-rw-r--r--src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp5
-rw-r--r--src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h1
-rw-r--r--src/plugins/qnx/qnxdeployconfigurationfactory.h2
-rw-r--r--src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.cpp5
-rw-r--r--src/plugins/remotelinux/remotelinuxdeployconfigurationfactory.h1
12 files changed, 74 insertions, 63 deletions
diff --git a/src/plugins/android/androiddeployconfiguration.cpp b/src/plugins/android/androiddeployconfiguration.cpp
index 327d08668a..7f68941d97 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 d414fcf4b7..8e5530a58d 100644
--- a/src/plugins/android/androiddeployconfiguration.h
+++ b/src/plugins/android/androiddeployconfiguration.h
@@ -70,9 +70,6 @@ public:
QList<Core::Id> 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 a2dbce94d7..e1940553ee 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 86080d23e9..90974b12ad 100644
--- a/src/plugins/ios/iosdeployconfiguration.h
+++ b/src/plugins/ios/iosdeployconfiguration.h
@@ -72,9 +72,6 @@ public:
QList<Core::Id> 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 1c39a177b5..3ed2a4e707 100644
--- a/src/plugins/projectexplorer/deployconfiguration.cpp
+++ b/src/plugins/projectexplorer/deployconfiguration.cpp
@@ -182,14 +182,42 @@ DeployConfigurationFactory::DeployConfigurationFactory(QObject *parent) :
DeployConfigurationFactory::~DeployConfigurationFactory()
{ }
-QList<Core::Id> DeployConfigurationFactory::availableCreationIds(Target *parent) const
+DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, const QVariantMap &map)
+{
+ return ExtensionSystem::PluginManager::getObject<DeployConfigurationFactory>(
+ [&parent, &map](DeployConfigurationFactory *factory) {
+ return factory->canRestore(parent, map);
+ });
+}
+
+QList<DeployConfigurationFactory *> DeployConfigurationFactory::find(Target *parent)
+{
+ return ExtensionSystem::PluginManager::getObjects<DeployConfigurationFactory>(
+ [&parent](DeployConfigurationFactory *factory) {
+ return !factory->availableCreationIds(parent).isEmpty();
+ });
+}
+
+DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, DeployConfiguration *dc)
+{
+ return ExtensionSystem::PluginManager::getObject<DeployConfigurationFactory>(
+ [&parent, &dc](DeployConfigurationFactory *factory) {
+ return factory->canClone(parent, dc);
+ });
+}
+
+///
+// DefaultDeployConfigurationFactory
+///
+
+QList<Core::Id> DefaultDeployConfigurationFactory::availableCreationIds(Target *parent) const
{
if (!canHandle(parent))
return QList<Core::Id>();
return QList<Core::Id>() << Core::Id(Constants::DEFAULT_DEPLOYCONFIGURATION_ID);
}
-QString DeployConfigurationFactory::displayNameForId(Core::Id id) const
+QString DefaultDeployConfigurationFactory::displayNameForId(Core::Id id) const
{
if (id == Constants::DEFAULT_DEPLOYCONFIGURATION_ID)
//: Display name of the default deploy configuration
@@ -197,26 +225,26 @@ QString DeployConfigurationFactory::displayNameForId(Core::Id id) const
return QString();
}
-bool DeployConfigurationFactory::canCreate(Target *parent, Core::Id id) const
+bool DefaultDeployConfigurationFactory::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)
+DeployConfiguration *DefaultDeployConfigurationFactory::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
+bool DefaultDeployConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const
{
return canCreate(parent, idFromMap(map));
}
-DeployConfiguration *DeployConfigurationFactory::restore(Target *parent, const QVariantMap &map)
+DeployConfiguration *DefaultDeployConfigurationFactory::restore(Target *parent, const QVariantMap &map)
{
if (!canRestore(parent, map))
return 0;
@@ -228,43 +256,19 @@ DeployConfiguration *DeployConfigurationFactory::restore(Target *parent, const Q
return dc;
}
-bool DeployConfigurationFactory::canClone(Target *parent, DeployConfiguration *product) const
+bool DefaultDeployConfigurationFactory::canClone(Target *parent, DeployConfiguration *product) const
{
return canCreate(parent, product->id());
}
-DeployConfiguration *DeployConfigurationFactory::clone(Target *parent, DeployConfiguration *product)
+DeployConfiguration *DefaultDeployConfigurationFactory::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<DeployConfigurationFactory>(
- [&parent, &map](DeployConfigurationFactory *factory) {
- return factory->canRestore(parent, map);
- });
-}
-
-QList<DeployConfigurationFactory *> DeployConfigurationFactory::find(Target *parent)
-{
- return ExtensionSystem::PluginManager::getObjects<DeployConfigurationFactory>(
- [&parent](DeployConfigurationFactory *factory) {
- return !factory->availableCreationIds(parent).isEmpty();
- });
-}
-
-DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, DeployConfiguration *dc)
-{
- return ExtensionSystem::PluginManager::getObject<DeployConfigurationFactory>(
- [&parent, &dc](DeployConfigurationFactory *factory) {
- return factory->canClone(parent, dc);
- });
-}
-
-bool DeployConfigurationFactory::canHandle(Target *parent) const
+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 aed5611091..92734be0ac 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<Core::Id> availableCreationIds(Target *parent) const;
+ virtual QList<Core::Id> 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<DeployConfigurationFactory *> find(Target *parent);
@@ -118,11 +118,22 @@ public:
signals:
void availableCreationIdsChanged();
+};
-protected:
- virtual bool canHandle(Target *parent) const;
-
+class DefaultDeployConfigurationFactory : public DeployConfigurationFactory
+{
+public:
+ QList<Core::Id> 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 30e251459a..7c57dbd7a9 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 933a4e9f2d..71f45eabf5 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 c9fb2eefac..2965f9de67 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 1899f1301b..215f90a704 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 b058ef2cdd..bee60f7d2b 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 fd919e4e09..74b482c602 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);