diff options
author | hjk <hjk@qt.io> | 2019-01-18 14:51:05 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-01-22 09:33:19 +0000 |
commit | a8d2546dad8d8a05515ff867271e46ebed5841d7 (patch) | |
tree | e18fb62782f43a2b69625c90ebf684a059a30db2 /src/plugins/projectexplorer/deployconfiguration.h | |
parent | d89ad246becad9758c17f1fa89766fcd3692f4e9 (diff) |
ProjectExplorer: Allow specifying deploy config widgets in the factory
Keep the generality of creating any widget, but also add a convenience
function handling the single special case that was ever used.
Change-Id: Iab4cbe62de04b9fcc6cb0bb305eaf9a48649d991
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/deployconfiguration.h')
-rw-r--r-- | src/plugins/projectexplorer/deployconfiguration.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index ea8bd0d677..4c146f9ee8 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -51,11 +51,11 @@ public: BuildStepList *stepList(); const BuildStepList *stepList() const; + NamedWidget *createConfigWidget() const; + bool fromMap(const QVariantMap &map) override; QVariantMap toMap() const override; - virtual NamedWidget *createConfigWidget(); - virtual bool isEnabled() const; virtual QString disabledReason() const; @@ -69,6 +69,7 @@ signals: private: BuildStepList m_stepList; + std::function<NamedWidget *(Target *)> m_configWidgetCreator; }; class PROJECTEXPLORER_EXPORT DeployConfigurationFactory @@ -100,6 +101,9 @@ public: virtual bool canHandle(ProjectExplorer::Target *target) const; + void setConfigWidgetCreator(const std::function<NamedWidget *(Target *)> &configWidgetCreator); + void setUseDeploymentDataView(); + protected: using DeployConfigurationCreator = std::function<DeployConfiguration *(Target *)>; @@ -109,6 +113,7 @@ protected: m_creator = [this, deployConfigBaseId](Target *t) { auto dc = new DeployConfig(t, deployConfigBaseId); dc->setDefaultDisplayName(m_defaultDisplayName); + dc->m_configWidgetCreator = m_configWidgetCreator; return dc; }; m_deployConfigBaseId = deployConfigBaseId; @@ -125,6 +130,7 @@ private: QList<Core::Id> m_supportedTargetDeviceTypes; QList<DeployStepCreationInfo> m_initialSteps; QString m_defaultDisplayName; + std::function<NamedWidget *(Target *)> m_configWidgetCreator; }; class DefaultDeployConfigurationFactory : public DeployConfigurationFactory |