From afa1e2bc399c820e1def47d03b91eebbf670c71f Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 8 Jan 2020 13:17:49 +0100 Subject: [PATCH] BareMetal: Use new IOptionPage convenience function Change-Id: Ic830e9ceead045a0d3de7867c714aaf71f5d1bd2 Reviewed-by: Denis Shienkov Reviewed-by: Christian Stenger --- .../debugserverproviderssettingspage.cpp | 37 ++++--------------- .../debugserverproviderssettingspage.h | 7 ---- 2 files changed, 8 insertions(+), 36 deletions(-) diff --git a/src/plugins/baremetal/debugserverproviderssettingspage.cpp b/src/plugins/baremetal/debugserverproviderssettingspage.cpp index 32de0ccb5f3..925249663d2 100644 --- a/src/plugins/baremetal/debugserverproviderssettingspage.cpp +++ b/src/plugins/baremetal/debugserverproviderssettingspage.cpp @@ -269,12 +269,15 @@ void DebugServerProviderModel::removeProvider(IDebugServerProvider *provider) // DebugServerProvidersSettingsWidget -class DebugServerProvidersSettingsWidget final : public QWidget +class DebugServerProvidersSettingsWidget final : public Core::IOptionsPageWidget { Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::DebugServerProvidersSettingsPage) public: - explicit DebugServerProvidersSettingsWidget(DebugServerProvidersSettingsPage *page); + DebugServerProvidersSettingsWidget(); + + void apply() final { m_model.apply(); } + void finish() final {} void providerSelectionChanged(); void removeProvider(); @@ -284,7 +287,6 @@ public: QModelIndex currentIndex() const; public: - DebugServerProvidersSettingsPage *m_page = nullptr; DebugServerProviderModel m_model; QItemSelectionModel *m_selectionModel = nullptr; QTreeView *m_providerView = nullptr; @@ -294,9 +296,7 @@ public: QPushButton *m_delButton = nullptr; }; -DebugServerProvidersSettingsWidget::DebugServerProvidersSettingsWidget - (DebugServerProvidersSettingsPage *page) - : m_page(page) +DebugServerProvidersSettingsWidget::DebugServerProvidersSettingsWidget() { m_providerView = new QTreeView(this); m_providerView->setUniformRowHeights(true); @@ -444,35 +444,14 @@ QModelIndex DebugServerProvidersSettingsWidget::currentIndex() const return rows.at(0); } +// DebugServerProvidersSettingsPage DebugServerProvidersSettingsPage::DebugServerProvidersSettingsPage() { setId(Constants::DEBUG_SERVER_PROVIDERS_SETTINGS_ID); setDisplayName(tr("Bare Metal")); setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY); -} - -QWidget *DebugServerProvidersSettingsPage::widget() -{ - if (!m_configWidget) - m_configWidget = new DebugServerProvidersSettingsWidget(this); - return m_configWidget; -} - -void DebugServerProvidersSettingsPage::apply() -{ - if (m_configWidget) - m_configWidget->m_model.apply(); -} - -void DebugServerProvidersSettingsPage::finish() -{ - if (m_configWidget) - disconnect(DebugServerProviderManager::instance(), &DebugServerProviderManager::providersChanged, - m_configWidget, &DebugServerProvidersSettingsWidget::providerSelectionChanged); - - delete m_configWidget; - m_configWidget = nullptr; + setWidgetCreator([] { return new DebugServerProvidersSettingsWidget; }); } } // namespace Internal diff --git a/src/plugins/baremetal/debugserverproviderssettingspage.h b/src/plugins/baremetal/debugserverproviderssettingspage.h index 576f3480fc9..4e2d7d23370 100644 --- a/src/plugins/baremetal/debugserverproviderssettingspage.h +++ b/src/plugins/baremetal/debugserverproviderssettingspage.h @@ -88,13 +88,6 @@ class DebugServerProvidersSettingsPage final : public Core::IOptionsPage public: DebugServerProvidersSettingsPage(); - -private: - QWidget *widget() final; - void apply() final; - void finish() final; - - DebugServerProvidersSettingsWidget *m_configWidget = nullptr; }; } // namespace Internal