diff --git a/src/plugins/ios/iossettingspage.cpp b/src/plugins/ios/iossettingspage.cpp index cc1ce8e6bea..a7e0f951d6c 100644 --- a/src/plugins/ios/iossettingspage.cpp +++ b/src/plugins/ios/iossettingspage.cpp @@ -40,24 +40,7 @@ IosSettingsPage::IosSettingsPage() setId(Constants::IOS_SETTINGS_ID); setDisplayName(tr("iOS")); setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY); -} - -QWidget *IosSettingsPage::widget() -{ - if (!m_widget) - m_widget = new IosSettingsWidget; - return m_widget; -} - -void IosSettingsPage::apply() -{ - m_widget->saveSettings(); - IosConfigurations::updateAutomaticKitList(); -} - -void IosSettingsPage::finish() -{ - delete m_widget; + setWidgetCreator([] { return new IosSettingsWidget; }); } } // namespace Internal diff --git a/src/plugins/ios/iossettingspage.h b/src/plugins/ios/iossettingspage.h index fd3cb969217..3dc9ce52d8b 100644 --- a/src/plugins/ios/iossettingspage.h +++ b/src/plugins/ios/iossettingspage.h @@ -27,26 +27,15 @@ #include -#include - namespace Ios { namespace Internal { -class IosSettingsWidget; - class IosSettingsPage : public Core::IOptionsPage { Q_OBJECT public: IosSettingsPage(); - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - QPointer m_widget; }; } // namespace Internal diff --git a/src/plugins/ios/iossettingswidget.cpp b/src/plugins/ios/iossettingswidget.cpp index 29346b43282..d5612712cbc 100644 --- a/src/plugins/ios/iossettingswidget.cpp +++ b/src/plugins/ios/iossettingswidget.cpp @@ -94,6 +94,12 @@ IosSettingsWidget::~IosSettingsWidget() delete m_ui; } +void IosSettingsWidget::apply() +{ + saveSettings(); + IosConfigurations::updateAutomaticKitList(); +} + /*! Called on start button click. Selected simulator devices are started. Multiple devices can be started simultaneously provided they in shutdown state. diff --git a/src/plugins/ios/iossettingswidget.h b/src/plugins/ios/iossettingswidget.h index 535a04f45ef..339df65fe5a 100644 --- a/src/plugins/ios/iossettingswidget.h +++ b/src/plugins/ios/iossettingswidget.h @@ -27,24 +27,28 @@ #include "iosconfigurations.h" #include "simulatorcontrol.h" -#include + +#include namespace Ios { namespace Internal { namespace Ui { class IosSettingsWidget; } -class IosSettingsWidget : public QWidget +class IosSettingsWidget : public Core::IOptionsPageWidget { Q_OBJECT public: IosSettingsWidget(); - ~IosSettingsWidget() override; + ~IosSettingsWidget() final; + +private: + void apply() final; + void finish() final {} void saveSettings(); -private: void onStart(); void onCreate(); void onReset();