From 5f719f8740bc2cc1223ee40e754de6e2ca834697 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 8 Jan 2020 13:27:57 +0100 Subject: [PATCH] Debugger: Use new IOptionBase convenience in DebuggerOptionsPage Change-Id: I99663efacc5c91d71bfe693bb932e6bc0f10e182 Reviewed-by: Christian Stenger --- src/plugins/debugger/debuggeritemmanager.cpp | 55 +++++++------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/src/plugins/debugger/debuggeritemmanager.cpp b/src/plugins/debugger/debuggeritemmanager.cpp index 7ec9d6efa6d..fda3f163fd0 100644 --- a/src/plugins/debugger/debuggeritemmanager.cpp +++ b/src/plugins/debugger/debuggeritemmanager.cpp @@ -444,7 +444,7 @@ void DebuggerItemConfigWidget::binaryPathHasChanged() // DebuggerConfigWidget // -------------------------------------------------------------------------- -class DebuggerConfigWidget : public QWidget +class DebuggerConfigWidget : public IOptionsPageWidget { Q_DECLARE_TR_FUNCTIONS(Debugger::DebuggerOptionsPage) public: @@ -506,6 +506,17 @@ public: updateButtons(); } + void apply() final + { + m_itemConfigWidget->store(); + d->m_model->apply(); + } + + void finish() final + { + d->m_model->cancel(); + } + void cloneDebugger(); void addDebugger(); void removeDebugger(); @@ -585,44 +596,14 @@ class DebuggerOptionsPage : public Core::IOptionsPage Q_DECLARE_TR_FUNCTIONS(Debugger::DebuggerOptionsPage) public: - DebuggerOptionsPage(); - - QWidget *widget() final; - void apply() final; - void finish() final; - -private: - QPointer m_configWidget; + DebuggerOptionsPage() { + setId(ProjectExplorer::Constants::DEBUGGER_SETTINGS_PAGE_ID); + setDisplayName(tr("Debuggers")); + setCategory(ProjectExplorer::Constants::KITS_SETTINGS_CATEGORY); + setWidgetCreator([] { return new DebuggerConfigWidget; }); + } }; -DebuggerOptionsPage::DebuggerOptionsPage() -{ - setId(ProjectExplorer::Constants::DEBUGGER_SETTINGS_PAGE_ID); - setDisplayName(tr("Debuggers")); - setCategory(ProjectExplorer::Constants::KITS_SETTINGS_CATEGORY); -} - -QWidget *DebuggerOptionsPage::widget() -{ - if (!m_configWidget) - m_configWidget = new DebuggerConfigWidget; - return m_configWidget; -} - -void DebuggerOptionsPage::apply() -{ - QTC_ASSERT(m_configWidget, return); - m_configWidget->m_itemConfigWidget->store(); - d->m_model->apply(); -} - -void DebuggerOptionsPage::finish() -{ - delete m_configWidget; - m_configWidget = nullptr; - d->m_model->cancel(); -} - void DebuggerItemManagerPrivate::autoDetectCdbDebuggers() { FilePaths cdbs;