diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp index 7d8145fd86f..464f4272085 100644 --- a/src/plugins/ios/iosrunconfiguration.cpp +++ b/src/plugins/ios/iosrunconfiguration.cpp @@ -111,12 +111,20 @@ IosRunConfiguration::IosRunConfiguration(Target *target, Core::Id id) addAspect(); m_deviceTypeAspect = addAspect(this); + + setUpdater([this, target, executableAspect] { + IDevice::ConstPtr dev = DeviceKitAspect::device(target->kit()); + const QString devName = dev.isNull() ? IosDevice::name() : dev->displayName(); + setDefaultDisplayName(tr("Run on %1").arg(devName)); + setDisplayName(tr("Run %1 on %2").arg(applicationName()).arg(devName)); + + executableAspect->setExecutable(localExecutable()); + }); } void IosDeviceTypeAspect::deviceChanges() { updateDeviceType(); - m_runConfiguration->updateDisplayNames(); m_runConfiguration->update(); } @@ -129,16 +137,6 @@ void IosDeviceTypeAspect::updateDeviceType() m_deviceType = IosDeviceType(IosDeviceType::SimulatedDevice); } -void IosRunConfiguration::updateDisplayNames() -{ - IDevice::ConstPtr dev = DeviceKitAspect::device(target()->kit()); - const QString devName = dev.isNull() ? IosDevice::name() : dev->displayName(); - setDefaultDisplayName(tr("Run on %1").arg(devName)); - setDisplayName(tr("Run %1 on %2").arg(applicationName()).arg(devName)); - - aspect()->setExecutable(localExecutable()); -} - bool IosRunConfiguration::isEnabled() const { Core::Id devType = DeviceTypeKitAspect::deviceTypeId(target()->kit()); @@ -211,7 +209,7 @@ void IosDeviceTypeAspect::fromMap(const QVariantMap &map) if (deviceTypeIsInt || !m_deviceType.fromMap(map.value(deviceTypeKey).toMap())) updateDeviceType(); - m_runConfiguration->updateDisplayNames(); + m_runConfiguration->update(); } void IosDeviceTypeAspect::toMap(QVariantMap &map) const @@ -307,7 +305,7 @@ void IosDeviceTypeAspect::setDeviceType(const IosDeviceType &deviceType) void IosRunConfiguration::doAdditionalSetup(const RunConfigurationCreationInfo &) { m_deviceTypeAspect->updateDeviceType(); - updateDisplayNames(); + update(); } IosDeviceTypeAspect::IosDeviceTypeAspect(IosRunConfiguration *runConfiguration) diff --git a/src/plugins/ios/iosrunconfiguration.h b/src/plugins/ios/iosrunconfiguration.h index 11746fd316b..72b2ef01775 100644 --- a/src/plugins/ios/iosrunconfiguration.h +++ b/src/plugins/ios/iosrunconfiguration.h @@ -53,8 +53,6 @@ public: void doAdditionalSetup(const ProjectExplorer::RunConfigurationCreationInfo &) override; private: - friend class IosDeviceTypeAspect; - void updateDisplayNames(); bool isEnabled() const final; IosDeviceTypeAspect *m_deviceTypeAspect = nullptr;