diff --git a/src/plugins/android/androidsettingspage.cpp b/src/plugins/android/androidsettingspage.cpp index 67c5d220dd3..9b68ea2f621 100644 --- a/src/plugins/android/androidsettingspage.cpp +++ b/src/plugins/android/androidsettingspage.cpp @@ -27,13 +27,8 @@ #include "androidsettingswidget.h" #include "androidconstants.h" -#include "androidtoolchain.h" + #include -#include - -#include - -using namespace ProjectExplorer; namespace Android { namespace Internal { @@ -43,24 +38,7 @@ AndroidSettingsPage::AndroidSettingsPage() setId(Constants::ANDROID_SETTINGS_ID); setDisplayName(tr("Android")); setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY); -} - -QWidget *AndroidSettingsPage::widget() -{ - if (!m_widget) - m_widget = new AndroidSettingsWidget; - return m_widget; -} - -void AndroidSettingsPage::apply() -{ - if (m_widget) - m_widget->saveSettings(); -} - -void AndroidSettingsPage::finish() -{ - delete m_widget; + setWidgetCreator([] { return new AndroidSettingsWidget; }); } } // namespace Internal diff --git a/src/plugins/android/androidsettingspage.h b/src/plugins/android/androidsettingspage.h index 2cdef168527..2430c68f302 100644 --- a/src/plugins/android/androidsettingspage.h +++ b/src/plugins/android/androidsettingspage.h @@ -27,26 +27,15 @@ #include -#include - namespace Android { namespace Internal { -class AndroidSettingsWidget; - class AndroidSettingsPage : public Core::IOptionsPage { Q_OBJECT public: AndroidSettingsPage(); - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - QPointer m_widget; }; } // namespace Internal diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp index 5dc0143e300..ffb5f238763 100644 --- a/src/plugins/android/androidsettingswidget.cpp +++ b/src/plugins/android/androidsettingswidget.cpp @@ -216,9 +216,8 @@ int AvdModel::columnCount(const QModelIndex &/*parent*/) const return 3; } -AndroidSettingsWidget::AndroidSettingsWidget(QWidget *parent) - : QWidget(parent), - m_ui(new Ui_AndroidSettingsWidget), +AndroidSettingsWidget::AndroidSettingsWidget() + : m_ui(new Ui_AndroidSettingsWidget), m_androidConfig(AndroidConfigurations::currentConfig()), m_avdManager(new AndroidAvdManager(m_androidConfig)), m_sdkManager(new AndroidSdkManager(m_androidConfig)) diff --git a/src/plugins/android/androidsettingswidget.h b/src/plugins/android/androidsettingswidget.h index 0bd2fd2eef3..9c618956817 100644 --- a/src/plugins/android/androidsettingswidget.h +++ b/src/plugins/android/androidsettingswidget.h @@ -35,6 +35,8 @@ #include +#include + QT_BEGIN_NAMESPACE class Ui_AndroidSettingsWidget; QT_END_NAMESPACE @@ -64,17 +66,19 @@ private: AndroidDeviceInfoList m_list; }; -class AndroidSettingsWidget : public QWidget +class AndroidSettingsWidget : public Core::IOptionsPageWidget { Q_OBJECT public: // Todo: This would be so much simpler if it just used Utils::PathChooser!!! - AndroidSettingsWidget(QWidget *parent = nullptr); - ~AndroidSettingsWidget() override; - - void saveSettings(); + AndroidSettingsWidget(); + ~AndroidSettingsWidget() final; private: + void apply() final { saveSettings(); } + void finish() final {} + + void saveSettings(); void validateJdk(); void validateNdk(); void onSdkPathChanged(); @@ -94,7 +98,6 @@ private: void updateUI(); void updateAvds(); -private: void startUpdateAvd(); void enableAvdControls(); void disableAvdControls();