From 37188ee3a1fce6f04432b0d6fd76559142de81f0 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 8 Jan 2020 11:35:47 +0100 Subject: [PATCH] Nim: Use new settings page convenience functions Change-Id: Ie6e317724cfacbd6b565931056fb88d3773a5bed Reviewed-by: Christian Stenger --- .../nim/settings/nimcodestylesettingspage.cpp | 74 ++++++++----------- .../nim/settings/nimcodestylesettingspage.h | 11 --- 2 files changed, 30 insertions(+), 55 deletions(-) diff --git a/src/plugins/nim/settings/nimcodestylesettingspage.cpp b/src/plugins/nim/settings/nimcodestylesettingspage.cpp index 93c67050a73..54ed03f234e 100644 --- a/src/plugins/nim/settings/nimcodestylesettingspage.cpp +++ b/src/plugins/nim/settings/nimcodestylesettingspage.cpp @@ -29,66 +29,52 @@ #include "../nimconstants.h" -#include #include #include #include #include -#include -#include +#include using namespace TextEditor; namespace Nim { +class NimCodeStyleSettingsWidget : public Core::IOptionsPageWidget +{ +public: + NimCodeStyleSettingsWidget() + { + auto originalTabPreferences = qobject_cast(NimSettings::globalCodeStyle()); + m_nimCodeStylePreferences = new SimpleCodeStylePreferences(this); + m_nimCodeStylePreferences->setDelegatingPool(originalTabPreferences->delegatingPool()); + m_nimCodeStylePreferences->setTabSettings(originalTabPreferences->tabSettings()); + m_nimCodeStylePreferences->setCurrentDelegate(originalTabPreferences->currentDelegate()); + m_nimCodeStylePreferences->setId(originalTabPreferences->id()); + + auto factory = TextEditorSettings::codeStyleFactory(Nim::Constants::C_NIMLANGUAGE_ID); + + auto editor = new CodeStyleEditor(factory, m_nimCodeStylePreferences); + + auto layout = new QVBoxLayout(this); + layout->addWidget(editor); + } + +private: + void apply() final {} + void finish() final {} + + TextEditor::SimpleCodeStylePreferences *m_nimCodeStylePreferences; +}; + NimCodeStyleSettingsPage::NimCodeStyleSettingsPage() - : m_nimCodeStylePreferences(nullptr) - , m_widget(nullptr) { setId(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_ID); setDisplayName(tr(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_DISPLAY)); setCategory(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_CATEGORY); setDisplayCategory(tr("Nim")); setCategoryIconPath(":/nim/images/settingscategory_nim.png"); + setWidgetCreator([] { return new NimCodeStyleSettingsWidget; }); } -NimCodeStyleSettingsPage::~NimCodeStyleSettingsPage() -{ - deleteWidget(); -} - -QWidget *NimCodeStyleSettingsPage::widget() -{ - if (!m_widget) { - auto originalTabPreferences = qobject_cast(NimSettings::globalCodeStyle()); - m_nimCodeStylePreferences = new SimpleCodeStylePreferences(m_widget); - m_nimCodeStylePreferences->setDelegatingPool(originalTabPreferences->delegatingPool()); - m_nimCodeStylePreferences->setTabSettings(originalTabPreferences->tabSettings()); - m_nimCodeStylePreferences->setCurrentDelegate(originalTabPreferences->currentDelegate()); - m_nimCodeStylePreferences->setId(originalTabPreferences->id()); - auto factory = TextEditorSettings::codeStyleFactory(Nim::Constants::C_NIMLANGUAGE_ID); - m_widget = new CodeStyleEditor(factory, m_nimCodeStylePreferences); - } - return m_widget; -} - -void NimCodeStyleSettingsPage::apply() -{ - -} - -void NimCodeStyleSettingsPage::finish() -{ - deleteWidget(); -} - -void NimCodeStyleSettingsPage::deleteWidget() -{ - if (m_widget) { - delete m_widget; - m_widget = nullptr; - } -} - -} +} // Nim diff --git a/src/plugins/nim/settings/nimcodestylesettingspage.h b/src/plugins/nim/settings/nimcodestylesettingspage.h index 2f1f779ecbb..e1b1bb046c2 100644 --- a/src/plugins/nim/settings/nimcodestylesettingspage.h +++ b/src/plugins/nim/settings/nimcodestylesettingspage.h @@ -42,17 +42,6 @@ class NimCodeStyleSettingsPage : public Core::IOptionsPage public: NimCodeStyleSettingsPage(); - ~NimCodeStyleSettingsPage() override; - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - void deleteWidget(); - - TextEditor::SimpleCodeStylePreferences *m_nimCodeStylePreferences; - TextEditor::CodeStyleEditor *m_widget; }; }