diff options
| author | hjk <hjk@qt.io> | 2023-04-20 11:03:22 +0200 |
|---|---|---|
| committer | hjk <hjk@qt.io> | 2023-04-28 07:29:55 +0000 |
| commit | e13c000196be60b5efa933a061a394c07f0b4413 (patch) | |
| tree | 664bedefe7ab1f0b2f940930282933849c82b190 | |
| parent | 85d25390c9630bdc2dde1db3651e6b9469c70c59 (diff) | |
| download | qt-creator-e13c000196be60b5efa933a061a394c07f0b4413.tar.gz | |
CppEditor: Use IOptionPage::setWidgetCreator() for cppquickfix settings
Change-Id: I33455f2ea98b1cafbb56ab8267b4d0afca106f33
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
5 files changed, 20 insertions, 45 deletions
diff --git a/src/plugins/cppeditor/cppquickfixprojectsettingswidget.cpp b/src/plugins/cppeditor/cppquickfixprojectsettingswidget.cpp index c0fb864665..c82985043f 100644 --- a/src/plugins/cppeditor/cppquickfixprojectsettingswidget.cpp +++ b/src/plugins/cppeditor/cppquickfixprojectsettingswidget.cpp @@ -28,7 +28,7 @@ CppQuickFixProjectSettingsWidget::CppQuickFixProjectSettingsWidget(ProjectExplor auto layout = new QVBoxLayout(); gridLayout->addLayout(layout, 2, 0, 1, 2); - m_settingsWidget = new CppQuickFixSettingsWidget(this); + m_settingsWidget = new CppQuickFixSettingsWidget; m_settingsWidget->loadSettings(m_projectSettings->getSettings()); if (QLayout *layout = m_settingsWidget->layout()) diff --git a/src/plugins/cppeditor/cppquickfixsettingspage.cpp b/src/plugins/cppeditor/cppquickfixsettingspage.cpp index 05aa4c586a..735dbea3b4 100644 --- a/src/plugins/cppeditor/cppquickfixsettingspage.cpp +++ b/src/plugins/cppeditor/cppquickfixsettingspage.cpp @@ -5,12 +5,8 @@ #include "cppeditorconstants.h" #include "cppeditortr.h" -#include "cppquickfixsettings.h" #include "cppquickfixsettingswidget.h" -#include <QCoreApplication> -#include <QtDebug> - namespace CppEditor::Internal { CppQuickFixSettingsPage::CppQuickFixSettingsPage() @@ -18,27 +14,7 @@ CppQuickFixSettingsPage::CppQuickFixSettingsPage() setId(Constants::QUICK_FIX_SETTINGS_ID); setDisplayName(Tr::tr(Constants::QUICK_FIX_SETTINGS_DISPLAY_NAME)); setCategory(Constants::CPP_SETTINGS_CATEGORY); -} - -QWidget *CppQuickFixSettingsPage::widget() -{ - if (!m_widget) { - m_widget = new CppQuickFixSettingsWidget; - m_widget->loadSettings(CppQuickFixSettings::instance()); - } - return m_widget; -} - -void CppQuickFixSettingsPage::apply() -{ - const auto s = CppQuickFixSettings::instance(); - m_widget->saveSettings(s); - s->saveAsGlobalSettings(); -} - -void CppQuickFixSettingsPage::finish() -{ - delete m_widget; + setWidgetCreator([] { return new CppQuickFixSettingsWidget; }); } } // CppEditor::Internal diff --git a/src/plugins/cppeditor/cppquickfixsettingspage.h b/src/plugins/cppeditor/cppquickfixsettingspage.h index 0fea07f91a..1965aae956 100644 --- a/src/plugins/cppeditor/cppquickfixsettingspage.h +++ b/src/plugins/cppeditor/cppquickfixsettingspage.h @@ -5,24 +5,12 @@ #include <coreplugin/dialogs/ioptionspage.h> -#include <QPointer> - -namespace CppEditor { -namespace Internal { -class CppQuickFixSettingsWidget; +namespace CppEditor::Internal { class CppQuickFixSettingsPage : public Core::IOptionsPage { public: CppQuickFixSettingsPage(); - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - QPointer<CppQuickFixSettingsWidget> m_widget; }; -} // namespace Internal -} // namespace CppEditor +} // CppEditor::Internal diff --git a/src/plugins/cppeditor/cppquickfixsettingswidget.cpp b/src/plugins/cppeditor/cppquickfixsettingswidget.cpp index 689a519ce3..c7aabdf670 100644 --- a/src/plugins/cppeditor/cppquickfixsettingswidget.cpp +++ b/src/plugins/cppeditor/cppquickfixsettingswidget.cpp @@ -88,9 +88,8 @@ void LineCountSpinBox::updateFields() m_unitLabel->setEnabled(enabled); } -CppQuickFixSettingsWidget::CppQuickFixSettingsWidget(QWidget *parent) - : QWidget(parent) - , m_typeSplitter("\\s*,\\s*") +CppQuickFixSettingsWidget::CppQuickFixSettingsWidget() + : m_typeSplitter("\\s*,\\s*") { m_lines_getterOutsideClass = new LineCountSpinBox; m_lines_getterInCppFile = new LineCountSpinBox; @@ -319,6 +318,8 @@ e.g. name = "m_test_foo_": connect(m_radioButton_addUsingnamespace, &QRadioButton::clicked, then); connect(m_radioButton_generateMissingNamespace, &QRadioButton::clicked, then); connect(m_radioButton_rewriteTypes, &QRadioButton::clicked, then); + + loadSettings(CppQuickFixSettings::instance()); } void CppQuickFixSettingsWidget::loadSettings(CppQuickFixSettings *settings) @@ -426,6 +427,13 @@ void CppQuickFixSettingsWidget::saveSettings(CppQuickFixSettings *settings) } } +void CppQuickFixSettingsWidget::apply() +{ + const auto s = CppQuickFixSettings::instance(); + saveSettings(s); + s->saveAsGlobalSettings(); +} + void CppQuickFixSettingsWidget::currentCustomItemChanged(QListWidgetItem *newItem, QListWidgetItem *oldItem) { diff --git a/src/plugins/cppeditor/cppquickfixsettingswidget.h b/src/plugins/cppeditor/cppquickfixsettingswidget.h index f921afbff0..e11d81a9f2 100644 --- a/src/plugins/cppeditor/cppquickfixsettingswidget.h +++ b/src/plugins/cppeditor/cppquickfixsettingswidget.h @@ -3,6 +3,8 @@ #pragma once +#include <coreplugin/dialogs/ioptionspage.h> + #include <QApplication> #include <QRegularExpression> #include <QWidget> @@ -23,7 +25,7 @@ namespace CppEditor::Internal { class LineCountSpinBox; -class CppQuickFixSettingsWidget : public QWidget +class CppQuickFixSettingsWidget : public Core::IOptionsPageWidget { Q_OBJECT @@ -36,7 +38,7 @@ class CppQuickFixSettingsWidget : public QWidget }; public: - explicit CppQuickFixSettingsWidget(QWidget *parent = nullptr); + CppQuickFixSettingsWidget(); void loadSettings(CppQuickFixSettings *settings); void saveSettings(CppQuickFixSettings *settings); @@ -45,6 +47,7 @@ signals: void settingsChanged(); private: + void apply() final; void currentCustomItemChanged(QListWidgetItem *newItem, QListWidgetItem *oldItem); bool m_isLoadingSettings = false; |
