From a0c7022b334007adc40ea7f87146158a8cfb8482 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 7 Jan 2020 15:48:00 +0100 Subject: [PATCH] QtSupport: use new settings page convenience for CodeGenSettings Change-Id: I0e3bf34dd709af33136b0f95dc3dcaecf36eb3bc Reviewed-by: Christian Kandeler --- src/plugins/qtsupport/codegensettingspage.cpp | 54 ++++++------------- src/plugins/qtsupport/codegensettingspage.h | 19 ++----- 2 files changed, 20 insertions(+), 53 deletions(-) diff --git a/src/plugins/qtsupport/codegensettingspage.cpp b/src/plugins/qtsupport/codegensettingspage.cpp index 1181b3bb3fd..2efb90b98c7 100644 --- a/src/plugins/qtsupport/codegensettingspage.cpp +++ b/src/plugins/qtsupport/codegensettingspage.cpp @@ -27,11 +27,10 @@ #include "qtsupportconstants.h" +#include #include #include -#include -#include namespace QtSupport { namespace Internal { @@ -41,26 +40,27 @@ namespace Internal { CodeGenSettingsPageWidget::CodeGenSettingsPageWidget() { m_ui.setupUi(this); + + CodeGenSettings parameters; + parameters.fromSettings(Core::ICore::settings()); + + m_ui.retranslateCheckBox->setChecked(parameters.retranslationSupport); + m_ui.includeQtModuleCheckBox->setChecked(parameters.includeQtModule); + m_ui.addQtVersionCheckBox->setChecked(parameters.addQtVersionCheck); + setUiEmbedding(parameters.embedding); + connect(m_ui.includeQtModuleCheckBox, &QAbstractButton::toggled, m_ui.addQtVersionCheckBox, &QWidget::setEnabled); } -CodeGenSettings CodeGenSettingsPageWidget::parameters() const +void CodeGenSettingsPageWidget::apply() { CodeGenSettings rc; rc.embedding = static_cast(uiEmbedding()); - rc.retranslationSupport =m_ui.retranslateCheckBox->isChecked(); + rc.retranslationSupport = m_ui.retranslateCheckBox->isChecked(); rc.includeQtModule = m_ui.includeQtModuleCheckBox->isChecked(); rc.addQtVersionCheck = m_ui.addQtVersionCheckBox->isChecked(); - return rc; -} - -void CodeGenSettingsPageWidget::setParameters(const CodeGenSettings &p) -{ - m_ui.retranslateCheckBox->setChecked(p.retranslationSupport); - m_ui.includeQtModuleCheckBox->setChecked(p.includeQtModule); - m_ui.addQtVersionCheckBox->setChecked(p.addQtVersionCheck); - setUiEmbedding(p.embedding); + rc.toSettings(Core::ICore::settings()); } int CodeGenSettingsPageWidget::uiEmbedding() const @@ -88,9 +88,9 @@ void CodeGenSettingsPageWidget::setUiEmbedding(int v) } // ---------- CodeGenSettingsPage + CodeGenSettingsPage::CodeGenSettingsPage() { - m_parameters.fromSettings(Core::ICore::settings()); setId(Constants::CODEGEN_SETTINGS_PAGE_ID); setDisplayName(QCoreApplication::translate("QtSupport", "Qt Class Generation")); setCategory(CppTools::Constants::CPP_SETTINGS_CATEGORY); @@ -99,31 +99,7 @@ CodeGenSettingsPage::CodeGenSettingsPage() setCategoryIcon(Utils::Icon({{":/projectexplorer/images/settingscategory_cpp.png", Utils::Theme::PanelTextColorDark}}, Utils::Icon::Tint)); -} - -QWidget *CodeGenSettingsPage::widget() -{ - if (!m_widget) { - m_widget = new CodeGenSettingsPageWidget; - m_widget->setParameters(m_parameters); - } - return m_widget; -} - -void CodeGenSettingsPage::apply() -{ - if (m_widget) { - const CodeGenSettings newParameters = m_widget->parameters(); - if (newParameters != m_parameters) { - m_parameters = newParameters; - m_parameters.toSettings(Core::ICore::settings()); - } - } -} - -void CodeGenSettingsPage::finish() -{ - delete m_widget; + setWidgetCreator([] { return new CodeGenSettingsPageWidget; }); } } // namespace Internal diff --git a/src/plugins/qtsupport/codegensettingspage.h b/src/plugins/qtsupport/codegensettingspage.h index 68aee7db290..5faef91763c 100644 --- a/src/plugins/qtsupport/codegensettingspage.h +++ b/src/plugins/qtsupport/codegensettingspage.h @@ -31,21 +31,20 @@ #include -#include - namespace QtSupport { namespace Internal { -class CodeGenSettingsPageWidget : public QWidget +class CodeGenSettingsPageWidget : public Core::IOptionsPageWidget { Q_OBJECT + public: CodeGenSettingsPageWidget(); - CodeGenSettings parameters() const; - void setParameters(const CodeGenSettings &p); - private: + void apply() final; + void finish() final {} + int uiEmbedding() const; void setUiEmbedding(int); @@ -56,14 +55,6 @@ class CodeGenSettingsPage : public Core::IOptionsPage { public: CodeGenSettingsPage(); - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - QPointer m_widget; - CodeGenSettings m_parameters; }; } // namespace Internal