forked from qt-creator/qt-creator
CppEditor: Use IOptionPage::setWidgetCreator() for cppquickfix settings
Change-Id: I33455f2ea98b1cafbb56ab8267b4d0afca106f33 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -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())
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user