diff --git a/src/plugins/android/androiddeployconfiguration.cpp b/src/plugins/android/androiddeployconfiguration.cpp index 32c11305daa..04de02a691c 100644 --- a/src/plugins/android/androiddeployconfiguration.cpp +++ b/src/plugins/android/androiddeployconfiguration.cpp @@ -45,8 +45,7 @@ namespace Internal { AndroidDeployConfigurationFactory::AndroidDeployConfigurationFactory() { - registerDeployConfiguration - ("Qt4ProjectManager.AndroidDeployConfiguration2"); + setConfigBaseId("Qt4ProjectManager.AndroidDeployConfiguration2"); addSupportedTargetDeviceType(Constants::ANDROID_DEVICE_TYPE); setDefaultDisplayName(QCoreApplication::translate("Android::Internal", "Deploy to Android device")); diff --git a/src/plugins/ios/iosdeployconfiguration.cpp b/src/plugins/ios/iosdeployconfiguration.cpp index 1701d81f91f..81dd217db3c 100644 --- a/src/plugins/ios/iosdeployconfiguration.cpp +++ b/src/plugins/ios/iosdeployconfiguration.cpp @@ -39,7 +39,7 @@ namespace Internal { IosDeployConfigurationFactory::IosDeployConfigurationFactory() { - registerDeployConfiguration("Qt4ProjectManager.IosDeployConfiguration"); + setConfigBaseId("Qt4ProjectManager.IosDeployConfiguration"); setSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID); addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index bf716554675..88470828f38 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -179,6 +179,17 @@ void DeployConfigurationFactory::setUseDeploymentDataView() m_configWidgetCreator = [](Target *target) { return new DeploymentDataView(target); }; } +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; +} + bool DeployConfigurationFactory::canCreate(Target *parent, Core::Id id) const { if (!canHandle(parent)) @@ -265,7 +276,7 @@ void DeployConfigurationFactory::addInitialStep(Core::Id stepId, const std::func DefaultDeployConfigurationFactory::DefaultDeployConfigurationFactory() { - registerDeployConfiguration("ProjectExplorer.DefaultDeployConfiguration"); + setConfigBaseId("ProjectExplorer.DefaultDeployConfiguration"); addSupportedTargetDeviceType(Constants::DESKTOP_DEVICE_TYPE); //: Display name of the default deploy configuration setDefaultDisplayName(DeployConfiguration::tr("Deploy Configuration")); diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index 706d97958b8..f4a9bca2552 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -100,18 +100,7 @@ public: protected: using DeployConfigurationCreator = std::function; - - template - void registerDeployConfiguration(Core::Id deployConfigBaseId) - { - 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; - } + void setConfigBaseId(Core::Id deployConfigBaseId); private: struct DeployStepCreationInfo { diff --git a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp index 60a4370ad44..5ad699b5b85 100644 --- a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp +++ b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp @@ -35,7 +35,7 @@ namespace Internal { QbsDeployConfigurationFactory::QbsDeployConfigurationFactory() { - registerDeployConfiguration("Qbs.Deploy"); + setConfigBaseId("Qbs.Deploy"); addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); setSupportedProjectType(Constants::PROJECT_ID); setDefaultDisplayName(QCoreApplication::translate("Qbs", "Qbs Install")); diff --git a/src/plugins/qnx/qnxdeployconfiguration.cpp b/src/plugins/qnx/qnxdeployconfiguration.cpp index 20fa709506d..2ff9ed9c004 100644 --- a/src/plugins/qnx/qnxdeployconfiguration.cpp +++ b/src/plugins/qnx/qnxdeployconfiguration.cpp @@ -41,8 +41,7 @@ namespace Internal { QnxDeployConfigurationFactory::QnxDeployConfigurationFactory() { - registerDeployConfiguration - (Constants::QNX_QNX_DEPLOYCONFIGURATION_ID); + setConfigBaseId(Constants::QNX_QNX_DEPLOYCONFIGURATION_ID); setDefaultDisplayName(QCoreApplication::translate("Qnx::Internal::QnxDeployConfiguration", "Deploy to QNX Device")); addSupportedTargetDeviceType(QnxDeviceFactory::deviceType()); diff --git a/src/plugins/remotelinux/remotelinuxdeployconfiguration.cpp b/src/plugins/remotelinux/remotelinuxdeployconfiguration.cpp index 9e8b51ef61f..11723a5a257 100644 --- a/src/plugins/remotelinux/remotelinuxdeployconfiguration.cpp +++ b/src/plugins/remotelinux/remotelinuxdeployconfiguration.cpp @@ -54,7 +54,7 @@ namespace Internal { RemoteLinuxDeployConfigurationFactory::RemoteLinuxDeployConfigurationFactory() { - registerDeployConfiguration(genericDeployConfigurationId()); + setConfigBaseId(genericDeployConfigurationId()); addSupportedTargetDeviceType(RemoteLinux::Constants::GenericLinuxOsType); setDefaultDisplayName(QCoreApplication::translate("RemoteLinux", "Deploy to Remote Linux Host")); diff --git a/src/plugins/winrt/winrtdeployconfiguration.cpp b/src/plugins/winrt/winrtdeployconfiguration.cpp index 189e9783736..e6eb9fd0da7 100644 --- a/src/plugins/winrt/winrtdeployconfiguration.cpp +++ b/src/plugins/winrt/winrtdeployconfiguration.cpp @@ -41,7 +41,7 @@ namespace Internal { WinRtAppDeployConfigurationFactory::WinRtAppDeployConfigurationFactory() { - registerDeployConfiguration("WinRTAppxDeployConfiguration"); + setConfigBaseId("WinRTAppxDeployConfiguration"); setDefaultDisplayName(QCoreApplication::translate("WinRt::Internal::WinRtDeployConfiguration", "Run windeployqt")); addSupportedTargetDeviceType(Constants::WINRT_DEVICE_TYPE_LOCAL); @@ -50,7 +50,7 @@ WinRtAppDeployConfigurationFactory::WinRtAppDeployConfigurationFactory() WinRtPhoneDeployConfigurationFactory::WinRtPhoneDeployConfigurationFactory() { - registerDeployConfiguration("WinRTPhoneDeployConfiguration"); + setConfigBaseId("WinRTPhoneDeployConfiguration"); setDefaultDisplayName(QCoreApplication::translate("WinRt::Internal::WinRtDeployConfiguration", "Deploy to Windows Phone")); addSupportedTargetDeviceType(Constants::WINRT_DEVICE_TYPE_PHONE); @@ -59,7 +59,7 @@ WinRtPhoneDeployConfigurationFactory::WinRtPhoneDeployConfigurationFactory() WinRtEmulatorDeployConfigurationFactory::WinRtEmulatorDeployConfigurationFactory() { - registerDeployConfiguration("WinRTEmulatorDeployConfiguration"); + setConfigBaseId("WinRTEmulatorDeployConfiguration"); setDefaultDisplayName(QCoreApplication::translate("WinRt::Internal::WinRtDeployConfiguration", "Deploy to Windows Phone Emulator")); addSupportedTargetDeviceType(Constants::WINRT_DEVICE_TYPE_EMULATOR);