From 4ef57eeaed94a69d2da116534b4a728ea4f4c28c Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 28 Jan 2020 16:11:51 +0100 Subject: [PATCH] QmlJsEditor: Use now-standard pattern for settings page setup Change-Id: I6de2ef5df605a103c99c5304590d8b8b2cf3ee3e Reviewed-by: Christian Stenger --- .../qmljseditor/qmljseditingsettingspage.cpp | 69 ++++++++----------- .../qmljseditor/qmljseditingsettingspage.h | 28 -------- 2 files changed, 29 insertions(+), 68 deletions(-) diff --git a/src/plugins/qmljseditor/qmljseditingsettingspage.cpp b/src/plugins/qmljseditor/qmljseditingsettingspage.cpp index 7aea17c3156..c2c9cc2aa9b 100644 --- a/src/plugins/qmljseditor/qmljseditingsettingspage.cpp +++ b/src/plugins/qmljseditor/qmljseditingsettingspage.cpp @@ -123,28 +123,36 @@ void QmlJsEditingSettings::setAutoFormatOnlyCurrentProject(const bool autoFormat m_autoFormatOnlyCurrentProject = autoFormatOnlyCurrentProject; } -QmlJsEditingSettignsPageWidget::QmlJsEditingSettignsPageWidget() +class QmlJsEditingSettingsPageWidget final : public Core::IOptionsPageWidget { - m_ui.setupUi(this); -} + Q_DECLARE_TR_FUNCTIONS(QmlDesigner::Internal::QmlJsEditingSettingsPage) -QmlJsEditingSettings QmlJsEditingSettignsPageWidget::settings() const -{ - QmlJsEditingSettings s; - s.setEnableContextPane(m_ui.textEditHelperCheckBox->isChecked()); - s.setPinContextPane(m_ui.textEditHelperCheckBoxPin->isChecked()); - s.setAutoFormatOnSave(m_ui.autoFormatOnSave->isChecked()); - s.setAutoFormatOnlyCurrentProject(m_ui.autoFormatOnlyCurrentProject->isChecked()); - return s; -} +public: + QmlJsEditingSettingsPageWidget() + { + m_ui.setupUi(this); + + auto s = QmlJsEditingSettings::get(); + m_ui.textEditHelperCheckBox->setChecked(s.enableContextPane()); + m_ui.textEditHelperCheckBoxPin->setChecked(s.pinContextPane()); + m_ui.autoFormatOnSave->setChecked(s.autoFormatOnSave()); + m_ui.autoFormatOnlyCurrentProject->setChecked(s.autoFormatOnlyCurrentProject()); + } + + void apply() final + { + QmlJsEditingSettings s; + s.setEnableContextPane(m_ui.textEditHelperCheckBox->isChecked()); + s.setPinContextPane(m_ui.textEditHelperCheckBoxPin->isChecked()); + s.setAutoFormatOnSave(m_ui.autoFormatOnSave->isChecked()); + s.setAutoFormatOnlyCurrentProject(m_ui.autoFormatOnlyCurrentProject->isChecked()); + s.set(); + } + +private: + Ui::QmlJsEditingSettingsPage m_ui; +}; -void QmlJsEditingSettignsPageWidget::setSettings(const QmlJsEditingSettings &s) -{ - m_ui.textEditHelperCheckBox->setChecked(s.enableContextPane()); - m_ui.textEditHelperCheckBoxPin->setChecked(s.pinContextPane()); - m_ui.autoFormatOnSave->setChecked(s.autoFormatOnSave()); - m_ui.autoFormatOnlyCurrentProject->setChecked(s.autoFormatOnlyCurrentProject()); -} QmlJsEditingSettings QmlJsEditingSettings::get() { @@ -156,27 +164,8 @@ QmlJsEditingSettings QmlJsEditingSettings::get() QmlJsEditingSettingsPage::QmlJsEditingSettingsPage() { setId("C.QmlJsEditing"); - setDisplayName(tr("QML/JS Editing")); + setDisplayName(QmlJsEditingSettingsPageWidget::tr("QML/JS Editing")); setCategory(Constants::SETTINGS_CATEGORY_QML); + setWidgetCreator([] { return new QmlJsEditingSettingsPageWidget; }); } -QWidget *QmlJsEditingSettingsPage::widget() -{ - if (!m_widget) { - m_widget = new QmlJsEditingSettignsPageWidget; - m_widget->setSettings(QmlJsEditingSettings::get()); - } - return m_widget; -} - -void QmlJsEditingSettingsPage::apply() -{ - if (!m_widget) // page was never shown - return; - m_widget->settings().set(); -} - -void QmlJsEditingSettingsPage::finish() -{ - delete m_widget; -} diff --git a/src/plugins/qmljseditor/qmljseditingsettingspage.h b/src/plugins/qmljseditor/qmljseditingsettingspage.h index 0be399b3d50..7a8fb9be749 100644 --- a/src/plugins/qmljseditor/qmljseditingsettingspage.h +++ b/src/plugins/qmljseditor/qmljseditingsettingspage.h @@ -73,40 +73,12 @@ namespace QmlJSEditor { { return !s1.equals(s2); } -class QmlJsEditingSettings; - namespace Internal { -class QmlJsEditingSettignsPageWidget : public QWidget -{ - Q_OBJECT - -public: - QmlJsEditingSettignsPageWidget(); - - QmlJsEditingSettings settings() const; - void setSettings(const QmlJsEditingSettings &); - - static QmlJsEditingSettings get(); - -private: - Ui::QmlJsEditingSettingsPage m_ui; -}; - - class QmlJsEditingSettingsPage : public Core::IOptionsPage { - Q_OBJECT - public: QmlJsEditingSettingsPage(); - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - QPointer m_widget; }; } // namespace Internal