From 8d1307552bd32a0e36207ab26156a1a2a83ad7aa Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 20 Apr 2023 10:40:54 +0200 Subject: [PATCH] Copilot: Take advantage of IOptionPage::setWidgetCreator() Less boilerplate for the implementation add user code access to IOptionPage::{apply,finish} is planned to be removed. Change-Id: I03bbde071fdf673bee0568baa9ae9fab8d816590 Reviewed-by: David Schulz --- src/plugins/copilot/copilotoptionspage.cpp | 29 +++++++--------------- src/plugins/copilot/copilotoptionspage.h | 9 +------ src/plugins/copilot/copilotplugin.cpp | 2 +- src/plugins/copilot/copilotplugin.h | 2 -- 4 files changed, 11 insertions(+), 31 deletions(-) diff --git a/src/plugins/copilot/copilotoptionspage.cpp b/src/plugins/copilot/copilotoptionspage.cpp index feb807d7f1e..33d0c4361a4 100644 --- a/src/plugins/copilot/copilotoptionspage.cpp +++ b/src/plugins/copilot/copilotoptionspage.cpp @@ -17,11 +17,10 @@ using namespace LanguageClient; namespace Copilot { -class CopilotOptionsPageWidget : public QWidget +class CopilotOptionsPageWidget : public Core::IOptionsPageWidget { public: - CopilotOptionsPageWidget(QWidget *parent = nullptr) - : QWidget(parent) + CopilotOptionsPageWidget() { using namespace Layouting; @@ -73,6 +72,12 @@ file from the Copilot neovim plugin. updateAuthWidget); updateAuthWidget(); } + + void apply() final + { + CopilotSettings::instance().apply(); + CopilotSettings::instance().writeSettings(Core::ICore::settings()); + } }; CopilotOptionsPage::CopilotOptionsPage() @@ -82,25 +87,9 @@ CopilotOptionsPage::CopilotOptionsPage() setCategory("ZY.Copilot"); setDisplayCategory("Copilot"); setCategoryIconPath(":/copilot/images/settingscategory_copilot.png"); + setWidgetCreator([] { return new CopilotOptionsPageWidget; }); } -CopilotOptionsPage::~CopilotOptionsPage() {} - -void CopilotOptionsPage::init() {} - -QWidget *CopilotOptionsPage::widget() -{ - return new CopilotOptionsPageWidget(); -} - -void CopilotOptionsPage::apply() -{ - CopilotSettings::instance().apply(); - CopilotSettings::instance().writeSettings(Core::ICore::settings()); -} - -void CopilotOptionsPage::finish() {} - CopilotOptionsPage &CopilotOptionsPage::instance() { static CopilotOptionsPage settingsPage; diff --git a/src/plugins/copilot/copilotoptionspage.h b/src/plugins/copilot/copilotoptionspage.h index 1124f74dea6..103e975b634 100644 --- a/src/plugins/copilot/copilotoptionspage.h +++ b/src/plugins/copilot/copilotoptionspage.h @@ -11,15 +11,8 @@ class CopilotOptionsPage : public Core::IOptionsPage { public: CopilotOptionsPage(); - ~CopilotOptionsPage() override; static CopilotOptionsPage &instance(); - - void init(); - - QWidget *widget() override; - void apply() override; - void finish() override; }; -} // namespace Copilot +} // Copilot diff --git a/src/plugins/copilot/copilotplugin.cpp b/src/plugins/copilot/copilotplugin.cpp index 67e07b170c5..3acbc705854 100644 --- a/src/plugins/copilot/copilotplugin.cpp +++ b/src/plugins/copilot/copilotplugin.cpp @@ -50,7 +50,7 @@ void CopilotPlugin::initialize() void CopilotPlugin::extensionsInitialized() { - CopilotOptionsPage::instance().init(); + (void)CopilotOptionsPage::instance(); } void CopilotPlugin::restartClient() diff --git a/src/plugins/copilot/copilotplugin.h b/src/plugins/copilot/copilotplugin.h index 5d915030653..09a6caecb20 100644 --- a/src/plugins/copilot/copilotplugin.h +++ b/src/plugins/copilot/copilotplugin.h @@ -9,8 +9,6 @@ #include -namespace TextEditor { class TextEditorWidget; } - namespace Copilot { namespace Internal {