summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);