summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-04-20 11:03:22 +0200
committerhjk <hjk@qt.io>2023-04-28 07:29:55 +0000
commite13c000196be60b5efa933a061a394c07f0b4413 (patch)
tree664bedefe7ab1f0b2f940930282933849c82b190
parent85d25390c9630bdc2dde1db3651e6b9469c70c59 (diff)
downloadqt-creator-e13c000196be60b5efa933a061a394c07f0b4413.tar.gz
CppEditor: Use IOptionPage::setWidgetCreator() for cppquickfix settings
Change-Id: I33455f2ea98b1cafbb56ab8267b4d0afca106f33 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/plugins/cppeditor/cppquickfixprojectsettingswidget.cpp2
-rw-r--r--src/plugins/cppeditor/cppquickfixsettingspage.cpp26
-rw-r--r--src/plugins/cppeditor/cppquickfixsettingspage.h16
-rw-r--r--src/plugins/cppeditor/cppquickfixsettingswidget.cpp14
-rw-r--r--src/plugins/cppeditor/cppquickfixsettingswidget.h7
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;