diff options
author | hjk <hjk@qt.io> | 2024-02-07 09:05:23 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2024-02-07 10:33:03 +0000 |
commit | fe251201fbf792fc771dbe38c32ae4207caf2351 (patch) | |
tree | ec938d2d30f17eb71ce73db339a05c6b38a0c47a /src/plugins/projectexplorer | |
parent | 7daee3d68188ab819356b5af7020d40ec1430730 (diff) |
ProjectExplorer: Hide a few factories behind a setup function
Change-Id: I2b688cee072d9983fbceb536063454a97dea3e60
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer')
5 files changed, 72 insertions, 59 deletions
diff --git a/src/plugins/projectexplorer/desktoprunconfiguration.cpp b/src/plugins/projectexplorer/desktoprunconfiguration.cpp index 9c5b4df6e8..a8d3284e9b 100644 --- a/src/plugins/projectexplorer/desktoprunconfiguration.cpp +++ b/src/plugins/projectexplorer/desktoprunconfiguration.cpp @@ -7,6 +7,7 @@ #include "projectexplorerconstants.h" #include "projectexplorertr.h" #include "runconfigurationaspects.h" +#include "runcontrol.h" #include "target.h" #include <cmakeprojectmanager/cmakeprojectconstants.h> @@ -15,6 +16,7 @@ #include <qmakeprojectmanager/qmakeprojectmanagerconstants.h> using namespace Utils; +using namespace ProjectExplorer::Constants; namespace ProjectExplorer::Internal { @@ -142,7 +144,9 @@ FilePath DesktopRunConfiguration::executableToRun(const BuildTargetInfo &targetI return appInLocalInstallDir.exists() ? appInLocalInstallDir : appInBuildDir; } -// Factory +// Factories + +// FIXME: These three would not be needed if registerRunConfiguration took parameter pack args class DesktopQmakeRunConfiguration final : public DesktopRunConfiguration { @@ -168,28 +172,56 @@ public: {} }; -CMakeRunConfigurationFactory::CMakeRunConfigurationFactory() +class CMakeRunConfigurationFactory final : public RunConfigurationFactory { - registerRunConfiguration<CMakeRunConfiguration>(ProjectExplorer::Constants::CMAKE_RUNCONFIG_ID); - addSupportedProjectType(CMakeProjectManager::Constants::CMAKE_PROJECT_ID); - addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); - addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE); -} +public: + CMakeRunConfigurationFactory() + { + registerRunConfiguration<CMakeRunConfiguration>(Constants::CMAKE_RUNCONFIG_ID); + addSupportedProjectType(CMakeProjectManager::Constants::CMAKE_PROJECT_ID); + addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); + addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE); + } +}; + +class QbsRunConfigurationFactory final : public RunConfigurationFactory +{ +public: + QbsRunConfigurationFactory() + { + registerRunConfiguration<QbsRunConfiguration>(Constants::QBS_RUNCONFIG_ID); + addSupportedProjectType(QbsProjectManager::Constants::PROJECT_ID); + addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); + addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE); + } +}; + +class DesktopQmakeRunConfigurationFactory final : public RunConfigurationFactory +{ +public: + DesktopQmakeRunConfigurationFactory() + { + registerRunConfiguration<DesktopQmakeRunConfiguration>(Constants::QMAKE_RUNCONFIG_ID); + addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID); + addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); + addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE); + } +}; -QbsRunConfigurationFactory::QbsRunConfigurationFactory() +void setupDesktopRunConfigurations() { - registerRunConfiguration<QbsRunConfiguration>(ProjectExplorer::Constants::QBS_RUNCONFIG_ID); - addSupportedProjectType(QbsProjectManager::Constants::PROJECT_ID); - addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); - addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE); + static DesktopQmakeRunConfigurationFactory theQmakeRunConfigFactory; + static QbsRunConfigurationFactory theQbsRunConfigFactory; + static CMakeRunConfigurationFactory theCmakeRunConfigFactory; } -DesktopQmakeRunConfigurationFactory::DesktopQmakeRunConfigurationFactory() +void setupDesktopRunWorker() { - registerRunConfiguration<DesktopQmakeRunConfiguration>(ProjectExplorer::Constants::QMAKE_RUNCONFIG_ID); - addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID); - addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); - addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE); + static SimpleTargetRunnerFactory theDesktopRunWorkerFactory({ + Constants::CMAKE_RUNCONFIG_ID, + Constants::QBS_RUNCONFIG_ID, + Constants::QMAKE_RUNCONFIG_ID + }); } } // ProjectExplorer::Internal diff --git a/src/plugins/projectexplorer/desktoprunconfiguration.h b/src/plugins/projectexplorer/desktoprunconfiguration.h index 6a2203cace..f0163ccc6c 100644 --- a/src/plugins/projectexplorer/desktoprunconfiguration.h +++ b/src/plugins/projectexplorer/desktoprunconfiguration.h @@ -3,26 +3,9 @@ #pragma once -#include "runconfiguration.h" - namespace ProjectExplorer::Internal { -class DesktopQmakeRunConfigurationFactory final : public RunConfigurationFactory -{ -public: - DesktopQmakeRunConfigurationFactory(); -}; - -class QbsRunConfigurationFactory final : public RunConfigurationFactory -{ -public: - QbsRunConfigurationFactory(); -}; - -class CMakeRunConfigurationFactory final : public RunConfigurationFactory -{ -public: - CMakeRunConfigurationFactory(); -}; +void setupDesktopRunConfigurations(); +void setupDesktopRunWorker(); } // ProjectExplorer::Internal diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp index 9fb1e7fe8b..503347dd7f 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp @@ -3,6 +3,7 @@ #include "devicecheckbuildstep.h" +#include "../buildstep.h" #include "../kitaspects.h" #include "../projectexplorerconstants.h" #include "../projectexplorertr.h" @@ -16,7 +17,7 @@ namespace ProjectExplorer { -class DeviceCheckBuildStep : public BuildStep +class DeviceCheckBuildStep final : public BuildStep { public: DeviceCheckBuildStep(BuildStepList *bsl, Utils::Id id) @@ -25,7 +26,7 @@ public: setWidgetExpandedByDefault(false); } - bool init() override + bool init() final { IDevice::ConstPtr device = DeviceKitAspect::device(kit()); if (device) @@ -65,10 +66,19 @@ private: // Factory -DeviceCheckBuildStepFactory::DeviceCheckBuildStepFactory() +class DeviceCheckBuildStepFactory final : public BuildStepFactory { - registerStep<DeviceCheckBuildStep>(Constants::DEVICE_CHECK_STEP); - setDisplayName(Tr::tr("Check for a configured device")); +public: + DeviceCheckBuildStepFactory() + { + registerStep<DeviceCheckBuildStep>(Constants::DEVICE_CHECK_STEP); + setDisplayName(Tr::tr("Check for a configured device")); + } +}; + +void setupDeviceCheckBuildStep() +{ + static DeviceCheckBuildStepFactory theDeviceCheckBuildStepFactory; } } // ProjectExplorer diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h index d93227e264..c3f8470046 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h @@ -3,14 +3,8 @@ #pragma once -#include "../buildstep.h" - namespace ProjectExplorer { -class DeviceCheckBuildStepFactory : public BuildStepFactory -{ -public: - DeviceCheckBuildStepFactory(); -}; +void setupDeviceCheckBuildStep(); } // ProjectExplorer diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index c2aed7faaa..e8aa205abd 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -710,17 +710,6 @@ public: IDocumentFactory m_documentFactory; IDocumentFactory m_taskFileFactory; StopMonitoringHandler closeTaskFile; - - DesktopQmakeRunConfigurationFactory qmakeRunConfigFactory; - QbsRunConfigurationFactory qbsRunConfigFactory; - CMakeRunConfigurationFactory cmakeRunConfigFactory; - SimpleTargetRunnerFactory desktopRunWorkerFactory{{ - qmakeRunConfigFactory.runConfigurationId(), - qbsRunConfigFactory.runConfigurationId(), - cmakeRunConfigFactory.runConfigurationId() - }}; - - DeviceCheckBuildStepFactory deviceCheckBuildStepFactory; }; static ProjectExplorerPlugin *m_instance = nullptr; @@ -823,6 +812,11 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er dd = new ProjectExplorerPluginPrivate; + setupDesktopRunConfigurations(); + setupDesktopRunWorker(); + + setupDeviceCheckBuildStep(); + setupCurrentProjectFind(); setupSanitizerOutputParser(); |