From e8fd863fcc0f83fd19d96cae713d825d157e1962 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 17 Jul 2023 12:10:20 +0200 Subject: [PATCH] Nim: Convert tool settings to latest style Change-Id: I206b7d10531a9a3053a68eae522896971c9f1423 Reviewed-by: Reviewed-by: Christian Stenger --- src/plugins/nim/settings/nimsettings.cpp | 32 ++++++++++++++++++++---- src/plugins/nim/settings/nimsettings.h | 6 +++-- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/plugins/nim/settings/nimsettings.cpp b/src/plugins/nim/settings/nimsettings.cpp index fac77109fde..1c404ac8503 100644 --- a/src/plugins/nim/settings/nimsettings.cpp +++ b/src/plugins/nim/settings/nimsettings.cpp @@ -7,6 +7,7 @@ #include "../nimtr.h" #include "nimcodestylepreferencesfactory.h" +#include #include #include @@ -24,14 +25,16 @@ namespace Nim { static SimpleCodeStylePreferences *m_globalCodeStyle = nullptr; +NimSettings &settings() +{ + static NimSettings theSettings; + return theSettings; +} + NimSettings::NimSettings() { setSettingsGroups("Nim", "NimSuggest"); - setId(Nim::Constants::C_NIMTOOLSSETTINGSPAGE_ID); - setDisplayName(Tr::tr("Tools")); - setCategory(Nim::Constants::C_NIMTOOLSSETTINGSPAGE_CATEGORY); - setDisplayCategory(Tr::tr("Nim")); - setCategoryIconPath(":/nim/images/settingscategory_nim.png"); + setAutoApply(false); setLayouter([this] { using namespace Layouting; @@ -105,7 +108,26 @@ NimSettings::~NimSettings() SimpleCodeStylePreferences *NimSettings::globalCodeStyle() { + QTC_ASSERT(m_globalCodeStyle, settings()); // Ensure creation return m_globalCodeStyle; } +// NimSettingsPage + +class NimSettingsPage final : public Core::IOptionsPage +{ +public: + NimSettingsPage() + { + setId(Nim::Constants::C_NIMTOOLSSETTINGSPAGE_ID); + setDisplayName(Tr::tr("Tools")); + setCategory(Nim::Constants::C_NIMTOOLSSETTINGSPAGE_CATEGORY); + setDisplayCategory(Tr::tr("Nim")); + setCategoryIconPath(":/nim/images/settingscategory_nim.png"); + setSettingsProvider([] { return &settings(); }); + } +}; + +const NimSettingsPage settingsPage; + } // namespace Nim diff --git a/src/plugins/nim/settings/nimsettings.h b/src/plugins/nim/settings/nimsettings.h index a7c6628b65b..5f0e23b8976 100644 --- a/src/plugins/nim/settings/nimsettings.h +++ b/src/plugins/nim/settings/nimsettings.h @@ -3,13 +3,13 @@ #pragma once -#include +#include namespace TextEditor { class SimpleCodeStylePreferences; } namespace Nim { -class NimSettings : public Core::PagedSettings +class NimSettings final : public Utils::AspectContainer { public: NimSettings(); @@ -20,5 +20,7 @@ public: static TextEditor::SimpleCodeStylePreferences *globalCodeStyle(); }; +NimSettings &settings(); + } // Nim