From 435b35ccfea00c6ce302545d2cc9740210232406 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 2 Feb 2024 18:32:12 +0100 Subject: [PATCH] Ios: Use setup functions for a few factories Change-Id: Ide05c2ca859454c1745e5c243af6a3d05131194c Reviewed-by: Jarek Kobus --- src/plugins/ios/iosdevice.cpp | 66 ++++++++++++++----------- src/plugins/ios/iosdevice.h | 11 +---- src/plugins/ios/iosplugin.cpp | 10 ++-- src/plugins/ios/iosqtversion.cpp | 24 ++++++--- src/plugins/ios/iosqtversion.h | 8 +-- src/plugins/ios/iosrunconfiguration.cpp | 17 +++++-- src/plugins/ios/iosrunconfiguration.h | 6 +-- src/plugins/ios/iossettingspage.cpp | 21 ++++++-- src/plugins/ios/iossettingspage.h | 8 +-- 9 files changed, 93 insertions(+), 78 deletions(-) diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp index 1bfc4b7d9f0..70de6c0b0db 100644 --- a/src/plugins/ios/iosdevice.cpp +++ b/src/plugins/ios/iosdevice.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -78,10 +79,24 @@ namespace Ios::Internal { const char kHandler[] = "Handler"; -class IosDeviceInfoWidget : public IDeviceWidget +class IosDeviceInfoWidget final : public IDeviceWidget { public: - IosDeviceInfoWidget(const ProjectExplorer::IDevice::Ptr &device); + IosDeviceInfoWidget(const IDevice::Ptr &device) + : IDeviceWidget(device) + { + const auto iosDevice = std::static_pointer_cast(device); + using namespace Layouting; + // clang-format off + Form { + Tr::tr("Device name:"), iosDevice->deviceName(), br, + Tr::tr("Identifier:"), iosDevice->uniqueInternalDeviceId(), br, + Tr::tr("OS Version:"), iosDevice->osVersion(), br, + Tr::tr("CPU Architecture:"), iosDevice->cpuArchitecture(), + noMargin + }.attachTo(this); + // clang-format on + } void updateDeviceFromUi() final {} }; @@ -584,37 +599,30 @@ void IosDeviceManager::updateAvailableDevices(const QStringList &devices) // Factory -IosDeviceFactory::IosDeviceFactory() - : IDeviceFactory(Constants::IOS_DEVICE_TYPE) +class IosDeviceFactory final : public IDeviceFactory { - setDisplayName(IosDevice::name()); - setCombinedIcon(":/ios/images/iosdevicesmall.png", - ":/ios/images/iosdevice.png"); - setConstructionFunction([] { return IDevice::Ptr(new IosDevice); }); -} +public: + IosDeviceFactory() + : IDeviceFactory(Constants::IOS_DEVICE_TYPE) + { + setDisplayName(IosDevice::name()); + setCombinedIcon(":/ios/images/iosdevicesmall.png", + ":/ios/images/iosdevice.png"); + setConstructionFunction([] { return IDevice::Ptr(new IosDevice); }); + } -bool IosDeviceFactory::canRestore(const Store &map) const -{ - Store vMap = map.value(Constants::EXTRA_INFO_KEY).value(); - if (vMap.isEmpty() || vMap.value(kDeviceName).toString() == QLatin1String("*unknown*")) - return false; // transient device (probably generated during an activation) - return true; -} + bool canRestore(const Utils::Store &map) const override + { + Store vMap = map.value(Constants::EXTRA_INFO_KEY).value(); + if (vMap.isEmpty() || vMap.value(kDeviceName).toString() == QLatin1String("*unknown*")) + return false; // transient device (probably generated during an activation) + return true; + } +}; -IosDeviceInfoWidget::IosDeviceInfoWidget(const IDevice::Ptr &device) - : IDeviceWidget(device) +void setupIosDevice() { - const auto iosDevice = std::static_pointer_cast(device); - using namespace Layouting; - // clang-format off - Form { - Tr::tr("Device name:"), iosDevice->deviceName(), br, - Tr::tr("Identifier:"), iosDevice->uniqueInternalDeviceId(), br, - Tr::tr("OS Version:"), iosDevice->osVersion(), br, - Tr::tr("CPU Architecture:"), iosDevice->cpuArchitecture(), - noMargin - }.attachTo(this); - // clang-format on + static IosDeviceFactory theIosDeviceFactory; } } // Ios::Internal diff --git a/src/plugins/ios/iosdevice.h b/src/plugins/ios/iosdevice.h index be1f837c305..111a8841598 100644 --- a/src/plugins/ios/iosdevice.h +++ b/src/plugins/ios/iosdevice.h @@ -6,7 +6,6 @@ #include "iostoolhandler.h" #include -#include #include @@ -60,14 +59,6 @@ protected: mutable quint16 m_lastPort; }; -class IosDeviceFactory final : public ProjectExplorer::IDeviceFactory -{ -public: - IosDeviceFactory(); - - bool canRestore(const Utils::Store &map) const override; -}; - class IosDeviceManager : public QObject { public: @@ -94,5 +85,7 @@ private: QStringList m_userModeDeviceIds; }; +void setupIosDevice(); + } // namespace Internal } // namespace Ios diff --git a/src/plugins/ios/iosplugin.cpp b/src/plugins/ios/iosplugin.cpp index 071870684ce..c4256f0deb9 100644 --- a/src/plugins/ios/iosplugin.cpp +++ b/src/plugins/ios/iosplugin.cpp @@ -23,7 +23,6 @@ #include using namespace ProjectExplorer; -using namespace QtSupport; namespace Ios::Internal { @@ -45,10 +44,6 @@ public: class IosPluginPrivate { public: - IosRunConfigurationFactory runConfigurationFactory; - IosSettingsPage settingsPage; - IosQtVersionFactory qtVersionFactory; - IosDeviceFactory deviceFactory; IosSimulatorFactory simulatorFactory; IosBuildStepFactory buildStepFactory; IosDeployStepFactory deployStepFactory; @@ -75,9 +70,14 @@ class IosPlugin final : public ExtensionSystem::IPlugin setupIosToolchain(); setupIosBuildConfiguration(); + setupIosQtVersion(); + setupIosDevice(); IosConfigurations::initialize(); + setupIosRunConfiguration(); + setupIosSettingsPage(); + d = new IosPluginPrivate; } diff --git a/src/plugins/ios/iosqtversion.cpp b/src/plugins/ios/iosqtversion.cpp index ab275590844..3389d96c073 100644 --- a/src/plugins/ios/iosqtversion.cpp +++ b/src/plugins/ios/iosqtversion.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -93,14 +94,23 @@ QSet IosQtVersion::targetDeviceTypes() const // Factory -IosQtVersionFactory::IosQtVersionFactory() +class IosQtVersionFactory final : public QtSupport::QtVersionFactory { - setQtVersionCreator([] { return new IosQtVersion; }); - setSupportedType(Constants::IOSQT); - setPriority(90); - setRestrictionChecker([](const SetupData &setup) { - return setup.platforms.contains("ios"); - }); +public: + IosQtVersionFactory() + { + setQtVersionCreator([] { return new IosQtVersion; }); + setSupportedType(Constants::IOSQT); + setPriority(90); + setRestrictionChecker([](const SetupData &setup) { + return setup.platforms.contains("ios"); + }); + } +}; + +void setupIosQtVersion() +{ + static IosQtVersionFactory theIosQtVersionFactory; } } // Ios::Internal diff --git a/src/plugins/ios/iosqtversion.h b/src/plugins/ios/iosqtversion.h index 72d460b422d..5eef8e4bd55 100644 --- a/src/plugins/ios/iosqtversion.h +++ b/src/plugins/ios/iosqtversion.h @@ -3,14 +3,8 @@ #pragma once -#include - namespace Ios::Internal { -class IosQtVersionFactory : public QtSupport::QtVersionFactory -{ -public: - IosQtVersionFactory(); -}; +void setupIosQtVersion(); } // Ios::Internal diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp index 69c01fca91f..6f5384cc9b6 100644 --- a/src/plugins/ios/iosrunconfiguration.cpp +++ b/src/plugins/ios/iosrunconfiguration.cpp @@ -413,11 +413,20 @@ FilePath IosDeviceTypeAspect::localExecutable() const // IosRunConfigurationFactory -IosRunConfigurationFactory::IosRunConfigurationFactory() +class IosRunConfigurationFactory final : public RunConfigurationFactory { - registerRunConfiguration(Constants::IOS_RUNCONFIG_ID); - addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); - addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); +public: + IosRunConfigurationFactory() + { + registerRunConfiguration(Constants::IOS_RUNCONFIG_ID); + addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); + addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); + } +}; + +void setupIosRunConfiguration() +{ + static IosRunConfigurationFactory theIosRunConfigurationFactory; } } // Ios::Internal diff --git a/src/plugins/ios/iosrunconfiguration.h b/src/plugins/ios/iosrunconfiguration.h index 865d9c88089..baef05cd1d2 100644 --- a/src/plugins/ios/iosrunconfiguration.h +++ b/src/plugins/ios/iosrunconfiguration.h @@ -81,10 +81,6 @@ private: IosDeviceTypeAspect iosDeviceType; }; -class IosRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory -{ -public: - IosRunConfigurationFactory(); -}; +void setupIosRunConfiguration(); } // Ios::Internal diff --git a/src/plugins/ios/iossettingspage.cpp b/src/plugins/ios/iossettingspage.cpp index 00fa6fb13c3..ad81b81b19d 100644 --- a/src/plugins/ios/iossettingspage.cpp +++ b/src/plugins/ios/iossettingspage.cpp @@ -11,6 +11,8 @@ #include "simulatorinfomodel.h" #include "simulatoroperationdialog.h" +#include + #include #include @@ -396,12 +398,21 @@ void IosSettingsWidget::saveSettings() // IosSettingsPage -IosSettingsPage::IosSettingsPage() +class IosSettingsPage final : public Core::IOptionsPage { - setId(Constants::IOS_SETTINGS_ID); - setDisplayName(Tr::tr("iOS")); - setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY); - setWidgetCreator([] { return new IosSettingsWidget; }); +public: + IosSettingsPage() + { + setId(Constants::IOS_SETTINGS_ID); + setDisplayName(Tr::tr("iOS")); + setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY); + setWidgetCreator([] { return new IosSettingsWidget; }); + } +}; + +void setupIosSettingsPage() +{ + static IosSettingsPage theIosSettingsPage; } } // Ios::Internal diff --git a/src/plugins/ios/iossettingspage.h b/src/plugins/ios/iossettingspage.h index 7617f08207e..34bb5fe63aa 100644 --- a/src/plugins/ios/iossettingspage.h +++ b/src/plugins/ios/iossettingspage.h @@ -3,14 +3,8 @@ #pragma once -#include - namespace Ios::Internal { -class IosSettingsPage final : public Core::IOptionsPage -{ -public: - IosSettingsPage(); -}; +void setupIosSettingsPage(); } // Ios::Internal