CppEditor: Use IOptionPage::setWidgetCreator() for cppquickfix settings

Change-Id: I33455f2ea98b1cafbb56ab8267b4d0afca106f33
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2023-04-20 11:03:22 +02:00
parent 85d25390c9
commit e13c000196
5 changed files with 20 additions and 45 deletions

View File

@@ -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())

View File

@@ -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

View File

@@ -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

View File

@@ -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)
{

View File

@@ -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;