forked from qt-creator/qt-creator
Nim: Use new settings page convenience functions
Change-Id: Ie6e317724cfacbd6b565931056fb88d3773a5bed Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -29,66 +29,52 @@
|
|||||||
|
|
||||||
#include "../nimconstants.h"
|
#include "../nimconstants.h"
|
||||||
|
|
||||||
#include <extensionsystem/pluginmanager.h>
|
|
||||||
#include <texteditor/simplecodestylepreferences.h>
|
#include <texteditor/simplecodestylepreferences.h>
|
||||||
#include <texteditor/codestyleeditor.h>
|
#include <texteditor/codestyleeditor.h>
|
||||||
#include <texteditor/texteditorsettings.h>
|
#include <texteditor/texteditorsettings.h>
|
||||||
#include <texteditor/tabsettings.h>
|
#include <texteditor/tabsettings.h>
|
||||||
#include <utils/qtcassert.h>
|
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
using namespace TextEditor;
|
using namespace TextEditor;
|
||||||
|
|
||||||
namespace Nim {
|
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()
|
NimCodeStyleSettingsPage::NimCodeStyleSettingsPage()
|
||||||
: m_nimCodeStylePreferences(nullptr)
|
|
||||||
, m_widget(nullptr)
|
|
||||||
{
|
{
|
||||||
setId(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_ID);
|
setId(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_ID);
|
||||||
setDisplayName(tr(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_DISPLAY));
|
setDisplayName(tr(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_DISPLAY));
|
||||||
setCategory(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_CATEGORY);
|
setCategory(Nim::Constants::C_NIMCODESTYLESETTINGSPAGE_CATEGORY);
|
||||||
setDisplayCategory(tr("Nim"));
|
setDisplayCategory(tr("Nim"));
|
||||||
setCategoryIconPath(":/nim/images/settingscategory_nim.png");
|
setCategoryIconPath(":/nim/images/settingscategory_nim.png");
|
||||||
|
setWidgetCreator([] { return new NimCodeStyleSettingsWidget; });
|
||||||
}
|
}
|
||||||
|
|
||||||
NimCodeStyleSettingsPage::~NimCodeStyleSettingsPage()
|
} // Nim
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@@ -42,17 +42,6 @@ class NimCodeStyleSettingsPage : public Core::IOptionsPage
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
NimCodeStyleSettingsPage();
|
NimCodeStyleSettingsPage();
|
||||||
~NimCodeStyleSettingsPage() override;
|
|
||||||
|
|
||||||
QWidget *widget() override;
|
|
||||||
void apply() override;
|
|
||||||
void finish() override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void deleteWidget();
|
|
||||||
|
|
||||||
TextEditor::SimpleCodeStylePreferences *m_nimCodeStylePreferences;
|
|
||||||
TextEditor::CodeStyleEditor *m_widget;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user