diff options
Diffstat (limited to 'src/plugins/qmljstools/qmljscodestylesettingspage.cpp')
-rw-r--r-- | src/plugins/qmljstools/qmljscodestylesettingspage.cpp | 83 |
1 files changed, 42 insertions, 41 deletions
diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp index cef7df08c3d..fc97aa53c82 100644 --- a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp +++ b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp @@ -5,7 +5,6 @@ #include "qmljscodestylepreferences.h" #include "qmljscodestylepreferenceswidget.h" -#include "qmljsindenter.h" #include "qmljsqtstylecodeformatter.h" #include "qmljstoolsconstants.h" #include "qmljstoolssettings.h" @@ -25,13 +24,13 @@ #include <utils/layoutbuilder.h> #include <QTextStream> +#include <QVBoxLayout> using namespace TextEditor; -namespace QmlJSTools { -namespace Internal { +namespace QmlJSTools::Internal { -// ------------------ CppCodeStyleSettingsWidget +// QmlJSCodeStylePreferencesWidget QmlJSCodeStylePreferencesWidget::QmlJSCodeStylePreferencesWidget( const TextEditor::ICodeStylePreferencesFactory *factory, QWidget *parent) @@ -47,7 +46,7 @@ QmlJSCodeStylePreferencesWidget::QmlJSCodeStylePreferencesWidget( decorateEditor(TextEditorSettings::fontSettings()); - using namespace Utils::Layouting; + using namespace Layouting; Row { Column { m_tabPreferencesWidget, @@ -55,7 +54,8 @@ QmlJSCodeStylePreferencesWidget::QmlJSCodeStylePreferencesWidget( st, }, m_previewTextEdit, - }.attachTo(this, WithoutMargins); + noMargin + }.attachTo(this); connect(TextEditorSettings::instance(), &TextEditorSettings::fontSettingsChanged, this, &QmlJSCodeStylePreferencesWidget::decorateEditor); @@ -120,59 +120,60 @@ void QmlJSCodeStylePreferencesWidget::updatePreview() tc.endEditBlock(); } -// ------------------ CppCodeStyleSettingsPage +// QmlJSCodeStyleSettingsPageWidget -QmlJSCodeStyleSettingsPage::QmlJSCodeStyleSettingsPage() +class QmlJSCodeStyleSettingsPageWidget : public Core::IOptionsPageWidget { - setId(Constants::QML_JS_CODE_STYLE_SETTINGS_ID); - setDisplayName(Tr::tr(Constants::QML_JS_CODE_STYLE_SETTINGS_NAME)); - setCategory(QmlJSEditor::Constants::SETTINGS_CATEGORY_QML); - setDisplayCategory(Tr::tr("Qt Quick")); - setCategoryIconPath(":/qmljstools/images/settingscategory_qml.png"); -} +public: + QmlJSCodeStyleSettingsPageWidget() + { -QWidget *QmlJSCodeStyleSettingsPage::widget() -{ - if (!m_widget) { QmlJSCodeStylePreferences *originalPreferences = QmlJSToolsSettings::globalCodeStyle(); - m_preferences = new QmlJSCodeStylePreferences(m_widget); - m_preferences->setDelegatingPool(originalPreferences->delegatingPool()); - m_preferences->setCodeStyleSettings(originalPreferences->codeStyleSettings()); - m_preferences->setTabSettings(originalPreferences->tabSettings()); - m_preferences->setCurrentDelegate(originalPreferences->currentDelegate()); - m_preferences->setId(originalPreferences->id()); - m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID), - m_preferences); + m_preferences.setDelegatingPool(originalPreferences->delegatingPool()); + m_preferences.setCodeStyleSettings(originalPreferences->codeStyleSettings()); + m_preferences.setTabSettings(originalPreferences->tabSettings()); + m_preferences.setCurrentDelegate(originalPreferences->currentDelegate()); + m_preferences.setId(originalPreferences->id()); + + auto vbox = new QVBoxLayout(this); + vbox->addWidget(new CodeStyleEditor( + TextEditorSettings::codeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID), + &m_preferences)); } - return m_widget; -} -void QmlJSCodeStyleSettingsPage::apply() -{ - if (m_widget) { + void apply() final + { QSettings *s = Core::ICore::settings(); QmlJSCodeStylePreferences *originalPreferences = QmlJSToolsSettings::globalCodeStyle(); - if (originalPreferences->codeStyleSettings() != m_preferences->codeStyleSettings()) { - originalPreferences->setCodeStyleSettings(m_preferences->codeStyleSettings()); + if (originalPreferences->codeStyleSettings() != m_preferences.codeStyleSettings()) { + originalPreferences->setCodeStyleSettings(m_preferences.codeStyleSettings()); originalPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s); } - if (originalPreferences->tabSettings() != m_preferences->tabSettings()) { - originalPreferences->setTabSettings(m_preferences->tabSettings()); + if (originalPreferences->tabSettings() != m_preferences.tabSettings()) { + originalPreferences->setTabSettings(m_preferences.tabSettings()); originalPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s); } - if (originalPreferences->currentDelegate() != m_preferences->currentDelegate()) { - originalPreferences->setCurrentDelegate(m_preferences->currentDelegate()); + if (originalPreferences->currentDelegate() != m_preferences.currentDelegate()) { + originalPreferences->setCurrentDelegate(m_preferences.currentDelegate()); originalPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s); } } -} -void QmlJSCodeStyleSettingsPage::finish() + QmlJSCodeStylePreferences m_preferences; +}; + +// QmlJSCodeStyleSettingsPage + +QmlJSCodeStyleSettingsPage::QmlJSCodeStyleSettingsPage() { - delete m_widget; + setId(Constants::QML_JS_CODE_STYLE_SETTINGS_ID); + setDisplayName(Tr::tr(Constants::QML_JS_CODE_STYLE_SETTINGS_NAME)); + setCategory(QmlJSEditor::Constants::SETTINGS_CATEGORY_QML); + setDisplayCategory(Tr::tr("Qt Quick")); + setCategoryIconPath(":/qmljstools/images/settingscategory_qml.png"); + setWidgetCreator([] { return new QmlJSCodeStyleSettingsPageWidget; }); } -} // namespace Internal -} // namespace QmlJSTools +} // QmlJSTools::Internal |