diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index 72220e9bd7a..83b793ff3b8 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -181,27 +181,26 @@ void DeployConfigurationFactory::setUseDeploymentDataView() void DeployConfigurationFactory::setConfigBaseId(Core::Id deployConfigBaseId) { - m_creator = [this, deployConfigBaseId](Target *t) { - auto dc = new DeployConfiguration(t, deployConfigBaseId); - dc->setDefaultDisplayName(m_defaultDisplayName); - dc->m_configWidgetCreator = m_configWidgetCreator; - return dc; - }; m_deployConfigBaseId = deployConfigBaseId; } +DeployConfiguration *DeployConfigurationFactory::createDeployConfiguration(Target *t) +{ + auto dc = new DeployConfiguration(t, m_deployConfigBaseId); + dc->setDefaultDisplayName(m_defaultDisplayName); + dc->m_configWidgetCreator = m_configWidgetCreator; + return dc; +} + DeployConfiguration *DeployConfigurationFactory::create(Target *parent) { QTC_ASSERT(canHandle(parent), return nullptr); - QTC_ASSERT(m_creator, return nullptr); - DeployConfiguration *dc = m_creator(parent); - if (!dc) - return nullptr; + DeployConfiguration *dc = createDeployConfiguration(parent); + QTC_ASSERT(dc, return nullptr); for (const DeployStepCreationInfo &info : qAsConst(m_initialSteps)) { if (!info.condition || info.condition(parent)) dc->stepList()->appendStep(info.deployStepId); } - dc->m_configWidgetCreator = m_configWidgetCreator; return dc; } @@ -222,8 +221,7 @@ DeployConfiguration *DeployConfigurationFactory::restore(Target *parent, const Q }); if (!factory) return nullptr; - QTC_ASSERT(factory->m_creator, return nullptr); - DeployConfiguration *dc = factory->m_creator(parent); + DeployConfiguration *dc = factory->createDeployConfiguration(parent); QTC_ASSERT(dc, return nullptr); if (!dc->fromMap(map)) { delete dc; diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index b2011d4ab99..3539d73cec7 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -106,7 +106,7 @@ private: Core::Id deployStepId; std::function condition; // unset counts as unrestricted }; - DeployConfigurationCreator m_creator; + DeployConfiguration *createDeployConfiguration(Target *t); Core::Id m_deployConfigBaseId; Core::Id m_supportedProjectType; QList m_supportedTargetDeviceTypes;