forked from qt-creator/qt-creator
TextEditor: Simplify DisplaySettingsPage creation
Change-Id: I082db19c8b88d1fa21690339d2cb7dc2728e0d44 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user