Nim: Use new settings page convenience functions

Change-Id: Ie6e317724cfacbd6b565931056fb88d3773a5bed
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2020-01-08 11:35:47 +01:00
parent 3e67c2ce92
commit 37188ee3a1
2 changed files with 30 additions and 55 deletions

View File

@@ -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 {
class NimCodeStyleSettingsWidget : public Core::IOptionsPageWidget
{
public:
NimCodeStyleSettingsWidget()
{
auto originalTabPreferences = qobject_cast<SimpleCodeStylePreferences *>(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<SimpleCodeStylePreferences *>(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

View File

@@ -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;
};
}