diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp b/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp index 06344e68baa..e5f27e82d4c 100644 --- a/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp @@ -30,7 +30,6 @@ #include #include -#include namespace ProjectExplorer { namespace Internal { @@ -43,23 +42,7 @@ DeviceSettingsPage::DeviceSettingsPage() setDisplayCategory(QCoreApplication::translate("ProjectExplorer", "Devices")); setCategoryIcon(Utils::Icon({{":/projectexplorer/images/settingscategory_devices.png", Utils::Theme::PanelTextColorDark}}, Utils::Icon::Tint)); -} - -QWidget *DeviceSettingsPage::widget() -{ - if (!m_widget) - m_widget = new DeviceSettingsWidget; - return m_widget; -} - -void DeviceSettingsPage::apply() -{ - m_widget->saveSettings(); -} - -void DeviceSettingsPage::finish() -{ - delete m_widget; + setWidgetCreator([] { return new DeviceSettingsWidget; }); } } // namespace Internal diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingspage.h b/src/plugins/projectexplorer/devicesupport/devicesettingspage.h index 1bb167a19d6..6c1350314e6 100644 --- a/src/plugins/projectexplorer/devicesupport/devicesettingspage.h +++ b/src/plugins/projectexplorer/devicesupport/devicesettingspage.h @@ -27,26 +27,15 @@ #include -#include - namespace ProjectExplorer { namespace Internal { -class DeviceSettingsWidget; - class DeviceSettingsPage : public Core::IOptionsPage { Q_OBJECT public: DeviceSettingsPage(); - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - QPointer m_widget; }; } // namespace Internal diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h index 8c2affa802e..ffe51729dd6 100644 --- a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h +++ b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h @@ -31,6 +31,8 @@ #include #include +#include + QT_BEGIN_NAMESPACE class QPushButton; QT_END_NAMESPACE @@ -45,16 +47,19 @@ namespace Internal { namespace Ui { class DeviceSettingsWidget; } class NameValidator; -class DeviceSettingsWidget : public QWidget +class DeviceSettingsWidget : public Core::IOptionsPageWidget { Q_OBJECT public: DeviceSettingsWidget(); - ~DeviceSettingsWidget() override; + ~DeviceSettingsWidget() final; + +private: + void apply() final { saveSettings(); } + void finish() final {} void saveSettings(); -private: void handleDeviceUpdated(Core::Id id); void currentDeviceChanged(int index); void addDevice();