aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/nim
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/nim')
-rw-r--r--src/plugins/nim/settings/nimcodestylesettingspage.cpp64
-rw-r--r--src/plugins/nim/settings/nimcodestylesettingspage.h11
2 files changed, 25 insertions, 50 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 <extensionsystem/pluginmanager.h>
#include <texteditor/simplecodestylepreferences.h>
#include <texteditor/codestyleeditor.h>
#include <texteditor/texteditorsettings.h>
#include <texteditor/tabsettings.h>
-#include <utils/qtcassert.h>
-#include <QWidget>
+#include <QVBoxLayout>
using namespace TextEditor;
namespace Nim {
-NimCodeStyleSettingsPage::NimCodeStyleSettingsPage()
- : m_nimCodeStylePreferences(nullptr)
- , m_widget(nullptr)
+class NimCodeStyleSettingsWidget : public Core::IOptionsPageWidget
{
- 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");
-}
-
-NimCodeStyleSettingsPage::~NimCodeStyleSettingsPage()
-{
- deleteWidget();
-}
-
-QWidget *NimCodeStyleSettingsPage::widget()
-{
- if (!m_widget) {
+public:
+ NimCodeStyleSettingsWidget()
+ {
auto originalTabPreferences = qobject_cast<SimpleCodeStylePreferences *>(NimSettings::globalCodeStyle());
- m_nimCodeStylePreferences = new SimpleCodeStylePreferences(m_widget);
+ 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);
- m_widget = new CodeStyleEditor(factory, m_nimCodeStylePreferences);
- }
- return m_widget;
-}
-void NimCodeStyleSettingsPage::apply()
-{
+ auto editor = new CodeStyleEditor(factory, m_nimCodeStylePreferences);
-}
+ auto layout = new QVBoxLayout(this);
+ layout->addWidget(editor);
+ }
-void NimCodeStyleSettingsPage::finish()
-{
- deleteWidget();
-}
+private:
+ void apply() final {}
+ void finish() final {}
+
+ TextEditor::SimpleCodeStylePreferences *m_nimCodeStylePreferences;
+};
-void NimCodeStyleSettingsPage::deleteWidget()
+NimCodeStyleSettingsPage::NimCodeStyleSettingsPage()
{
- if (m_widget) {
- delete m_widget;
- 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; });
}
-}
+} // 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;
};
}