From 5af88f570211f3e8b992371308b6d29acfaf6352 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 14 Jul 2023 12:31:52 +0200 Subject: [PATCH] Ios: Use aspects more directly in IosRunConfiguration Change-Id: Ic6fd16287e28a16c231b0b30211f112aceb11795 Reviewed-by: Eike Ziller Reviewed-by: --- src/plugins/ios/iosrunconfiguration.cpp | 23 +++++++++-------------- src/plugins/ios/iosrunconfiguration.h | 8 ++++++-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp index dda93209270..2012dfcc8f2 100644 --- a/src/plugins/ios/iosrunconfiguration.cpp +++ b/src/plugins/ios/iosrunconfiguration.cpp @@ -56,25 +56,20 @@ static IosDeviceType toIosDeviceType(const SimulatorInfo &device) } IosRunConfiguration::IosRunConfiguration(Target *target, Id id) - : RunConfiguration(target, id) + : RunConfiguration(target, id), iosDeviceType(this, this) { - auto executableAspect = addAspect(); - executableAspect->setDeviceSelector(target, ExecutableAspect::RunDevice); + executable.setDeviceSelector(target, ExecutableAspect::RunDevice); - auto argsAspect = addAspect(); - argsAspect->setMacroExpander(macroExpander()); + arguments.setMacroExpander(macroExpander()); - m_deviceTypeAspect = addAspect(this); - - setUpdater([this, target, executableAspect] { + setUpdater([this, target] { IDevice::ConstPtr dev = DeviceKitAspect::device(target->kit()); const QString devName = dev.isNull() ? IosDevice::name() : dev->displayName(); setDefaultDisplayName(Tr::tr("Run on %1").arg(devName)); setDisplayName(Tr::tr("Run %1 on %2").arg(applicationName()).arg(devName)); - executableAspect->setExecutable(localExecutable()); - - m_deviceTypeAspect->updateDeviceType(); + executable.setExecutable(localExecutable()); + iosDeviceType.updateDeviceType(); }); } @@ -279,7 +274,7 @@ QString IosRunConfiguration::disabledReason() const IosDeviceType IosRunConfiguration::deviceType() const { - return m_deviceTypeAspect->deviceType(); + return iosDeviceType.deviceType(); } IosDeviceType IosDeviceTypeAspect::deviceType() const @@ -311,8 +306,8 @@ void IosDeviceTypeAspect::setDeviceType(const IosDeviceType &deviceType) m_deviceType = deviceType; } -IosDeviceTypeAspect::IosDeviceTypeAspect(IosRunConfiguration *runConfiguration) - : m_runConfiguration(runConfiguration) +IosDeviceTypeAspect::IosDeviceTypeAspect(AspectContainer *container, IosRunConfiguration *rc) + : BaseAspect(container), m_runConfiguration(rc) { addDataExtractor(this, &IosDeviceTypeAspect::deviceType, &Data::deviceType); addDataExtractor(this, &IosDeviceTypeAspect::bundleDirectory, &Data::bundleDirectory); diff --git a/src/plugins/ios/iosrunconfiguration.h b/src/plugins/ios/iosrunconfiguration.h index 1ebe79efa56..813a0c5524f 100644 --- a/src/plugins/ios/iosrunconfiguration.h +++ b/src/plugins/ios/iosrunconfiguration.h @@ -8,6 +8,7 @@ #include "iossimulator.h" #include +#include #include @@ -23,7 +24,8 @@ class IosDeviceTypeAspect : public Utils::BaseAspect Q_OBJECT public: - explicit IosDeviceTypeAspect(IosRunConfiguration *runConfiguration); + explicit IosDeviceTypeAspect(Utils::AspectContainer *container, + IosRunConfiguration *runConfiguration); void fromMap(const QVariantMap &map) override; void toMap(QVariantMap &map) const override; @@ -74,7 +76,9 @@ public: private: bool isEnabled() const final; - IosDeviceTypeAspect *m_deviceTypeAspect = nullptr; + ProjectExplorer::ExecutableAspect executable{this}; + ProjectExplorer::ArgumentsAspect arguments{this}; + IosDeviceTypeAspect iosDeviceType; }; class IosRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory