TextEditor: Simplify DisplaySettingsPage creation

Change-Id: I082db19c8b88d1fa21690339d2cb7dc2728e0d44
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2020-01-21 15:20:02 +01:00
parent f5d4b65931
commit 8da309f6a5
3 changed files with 21 additions and 37 deletions

View File

@@ -33,36 +33,32 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <QPointer> #include <QPointer>
#include <QTextStream>
using namespace TextEditor; namespace TextEditor {
struct DisplaySettingsPage::DisplaySettingsPagePrivate struct DisplaySettingsPage::DisplaySettingsPagePrivate
{ {
explicit DisplaySettingsPagePrivate(const DisplaySettingsPageParameters &p); DisplaySettingsPagePrivate();
const DisplaySettingsPageParameters m_parameters;
QPointer<QWidget> m_widget; QPointer<QWidget> m_widget;
Internal::Ui::DisplaySettingsPage *m_page = nullptr; Internal::Ui::DisplaySettingsPage *m_page = nullptr;
DisplaySettings m_displaySettings; DisplaySettings m_displaySettings;
MarginSettings m_marginSettings; MarginSettings m_marginSettings;
QString m_settingsPrefix;
}; };
DisplaySettingsPage::DisplaySettingsPagePrivate::DisplaySettingsPagePrivate DisplaySettingsPage::DisplaySettingsPagePrivate::DisplaySettingsPagePrivate()
(const DisplaySettingsPageParameters &p)
: m_parameters(p)
{ {
m_displaySettings.fromSettings(m_parameters.settingsPrefix, Core::ICore::settings()); m_settingsPrefix = QLatin1String("text");
m_marginSettings.fromSettings(m_parameters.settingsPrefix, Core::ICore::settings()); m_displaySettings.fromSettings(m_settingsPrefix, Core::ICore::settings());
m_marginSettings.fromSettings(m_settingsPrefix, Core::ICore::settings());
} }
DisplaySettingsPage::DisplaySettingsPage(const DisplaySettingsPageParameters &p, DisplaySettingsPage::DisplaySettingsPage()
QObject *parent) : d(new DisplaySettingsPagePrivate)
: Core::IOptionsPage(parent),
d(new DisplaySettingsPagePrivate(p))
{ {
setId(p.id); setId(Constants::TEXT_EDITOR_DISPLAY_SETTINGS);
setDisplayName(p.displayName); setDisplayName(tr("Display"));
setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY); setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
setDisplayCategory(QCoreApplication::translate("TextEditor", "Text Editor")); setDisplayCategory(QCoreApplication::translate("TextEditor", "Text Editor"));
setCategoryIconPath(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON_PATH); setCategoryIconPath(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON_PATH);
@@ -180,15 +176,17 @@ void DisplaySettingsPage::setDisplaySettings(const DisplaySettings &newDisplaySe
{ {
if (newDisplaySettings != d->m_displaySettings) { if (newDisplaySettings != d->m_displaySettings) {
d->m_displaySettings = newDisplaySettings; d->m_displaySettings = newDisplaySettings;
d->m_displaySettings.toSettings(d->m_parameters.settingsPrefix, Core::ICore::settings()); d->m_displaySettings.toSettings(d->m_settingsPrefix, Core::ICore::settings());
emit displaySettingsChanged(newDisplaySettings); emit displaySettingsChanged(newDisplaySettings);
} }
if (newMarginSettings != d->m_marginSettings) { if (newMarginSettings != d->m_marginSettings) {
d->m_marginSettings = newMarginSettings; d->m_marginSettings = newMarginSettings;
d->m_marginSettings.toSettings(d->m_parameters.settingsPrefix, Core::ICore::settings()); d->m_marginSettings.toSettings(d->m_settingsPrefix, Core::ICore::settings());
emit marginSettingsChanged(newMarginSettings); emit marginSettingsChanged(newMarginSettings);
} }
} }
} // TextEditor

View File

@@ -34,20 +34,12 @@ namespace TextEditor {
class DisplaySettings; class DisplaySettings;
class MarginSettings; class MarginSettings;
class DisplaySettingsPageParameters
{
public:
Core::Id id;
QString displayName;
QString settingsPrefix;
};
class DisplaySettingsPage : public Core::IOptionsPage class DisplaySettingsPage : public Core::IOptionsPage
{ {
Q_OBJECT Q_OBJECT
public: public:
DisplaySettingsPage(const DisplaySettingsPageParameters &p, QObject *parent); DisplaySettingsPage();
~DisplaySettingsPage() override; ~DisplaySettingsPage() override;
// IOptionsPage // IOptionsPage

View File

@@ -65,7 +65,7 @@ class TextEditorSettingsPrivate
public: public:
FontSettingsPage *m_fontSettingsPage; FontSettingsPage *m_fontSettingsPage;
BehaviorSettingsPage *m_behaviorSettingsPage; BehaviorSettingsPage *m_behaviorSettingsPage;
DisplaySettingsPage *m_displaySettingsPage; DisplaySettingsPage m_displaySettingsPage;
HighlighterSettingsPage m_highlighterSettingsPage; HighlighterSettingsPage m_highlighterSettingsPage;
SnippetsSettingsPage m_snippetsSettingsPage; SnippetsSettingsPage m_snippetsSettingsPage;
CompletionSettingsPage m_completionSettingsPage; CompletionSettingsPage m_completionSettingsPage;
@@ -357,12 +357,6 @@ TextEditorSettings::TextEditorSettings()
behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text"); behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text");
d->m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this); d->m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
DisplaySettingsPageParameters displaySettingsPageParameters;
displaySettingsPageParameters.id = Constants::TEXT_EDITOR_DISPLAY_SETTINGS;
displaySettingsPageParameters.displayName = tr("Display");
displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
d->m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
auto updateGeneralMessagesFontSettings = []() { auto updateGeneralMessagesFontSettings = []() {
Core::MessageManager::setFont(d->m_fontSettingsPage->fontSettings().font()); Core::MessageManager::setFont(d->m_fontSettingsPage->fontSettings().font());
}; };
@@ -386,9 +380,9 @@ TextEditorSettings::TextEditorSettings()
updateGeneralMessagesBehaviorSettings(); updateGeneralMessagesBehaviorSettings();
connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::extraEncodingSettingsChanged, connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::extraEncodingSettingsChanged,
this, &TextEditorSettings::extraEncodingSettingsChanged); this, &TextEditorSettings::extraEncodingSettingsChanged);
connect(d->m_displaySettingsPage, &DisplaySettingsPage::marginSettingsChanged, connect(&d->m_displaySettingsPage, &DisplaySettingsPage::marginSettingsChanged,
this, &TextEditorSettings::marginSettingsChanged); this, &TextEditorSettings::marginSettingsChanged);
connect(d->m_displaySettingsPage, &DisplaySettingsPage::displaySettingsChanged, connect(&d->m_displaySettingsPage, &DisplaySettingsPage::displaySettingsChanged,
this, &TextEditorSettings::displaySettingsChanged); this, &TextEditorSettings::displaySettingsChanged);
auto updateCamelCaseNavigation = [] { auto updateCamelCaseNavigation = [] {
@@ -433,12 +427,12 @@ const BehaviorSettings &TextEditorSettings::behaviorSettings()
const MarginSettings &TextEditorSettings::marginSettings() const MarginSettings &TextEditorSettings::marginSettings()
{ {
return d->m_displaySettingsPage->marginSettings(); return d->m_displaySettingsPage.marginSettings();
} }
const DisplaySettings &TextEditorSettings::displaySettings() const DisplaySettings &TextEditorSettings::displaySettings()
{ {
return d->m_displaySettingsPage->displaySettings(); return d->m_displaySettingsPage.displaySettings();
} }
const CompletionSettings &TextEditorSettings::completionSettings() const CompletionSettings &TextEditorSettings::completionSettings()