diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp index 5cc5fcacbc9..27c079db20f 100644 --- a/src/plugins/texteditor/behaviorsettingspage.cpp +++ b/src/plugins/texteditor/behaviorsettingspage.cpp @@ -47,20 +47,17 @@ #include #include -#include -using namespace TextEditor; +namespace TextEditor { -struct BehaviorSettingsPage::BehaviorSettingsPagePrivate +struct BehaviorSettingsPage::BehaviorSettingsPagePrivate : public QObject { - explicit BehaviorSettingsPagePrivate(const BehaviorSettingsPageParameters &p); + BehaviorSettingsPagePrivate(); - const BehaviorSettingsPageParameters m_parameters; + const QString m_settingsPrefix{"text"}; QPointer m_widget; Internal::Ui::BehaviorSettingsPage *m_page = nullptr; - void init(); - CodeStylePool *m_defaultCodeStylePool = nullptr; SimpleCodeStylePreferences *m_codeStyle = nullptr; SimpleCodeStylePreferences *m_pageCodeStyle = nullptr; @@ -70,43 +67,35 @@ struct BehaviorSettingsPage::BehaviorSettingsPagePrivate ExtraEncodingSettings m_extraEncodingSettings; }; -BehaviorSettingsPage::BehaviorSettingsPagePrivate::BehaviorSettingsPagePrivate - (const BehaviorSettingsPageParameters &p) - : m_parameters(p) +BehaviorSettingsPage::BehaviorSettingsPagePrivate::BehaviorSettingsPagePrivate() { -} + // global tab preferences for all other languages + m_codeStyle = new SimpleCodeStylePreferences(this); + m_codeStyle->setDisplayName(tr("Global", "Settings")); + m_codeStyle->setId(Constants::GLOBAL_SETTINGS_ID); + + // default pool for all other languages + m_defaultCodeStylePool = new CodeStylePool(nullptr, this); // Any language + m_defaultCodeStylePool->addCodeStyle(m_codeStyle); -void BehaviorSettingsPage::BehaviorSettingsPagePrivate::init() -{ const QSettings *s = Core::ICore::settings(); - m_codeStyle->fromSettings(m_parameters.settingsPrefix, s); - m_typingSettings.fromSettings(m_parameters.settingsPrefix, s); - m_storageSettings.fromSettings(m_parameters.settingsPrefix, s); - m_behaviorSettings.fromSettings(m_parameters.settingsPrefix, s); - m_extraEncodingSettings.fromSettings(m_parameters.settingsPrefix, s); + m_codeStyle->fromSettings(m_settingsPrefix, s); + m_typingSettings.fromSettings(m_settingsPrefix, s); + m_storageSettings.fromSettings(m_settingsPrefix, s); + m_behaviorSettings.fromSettings(m_settingsPrefix, s); + m_extraEncodingSettings.fromSettings(m_settingsPrefix, s); } -BehaviorSettingsPage::BehaviorSettingsPage(const BehaviorSettingsPageParameters &p, - QObject *parent) - : Core::IOptionsPage(parent), - d(new BehaviorSettingsPagePrivate(p)) +BehaviorSettingsPage::BehaviorSettingsPage() + : d(new BehaviorSettingsPagePrivate) { + // Add the GUI used to configure the tab, storage and interaction settings + setId(Constants::TEXT_EDITOR_BEHAVIOR_SETTINGS); + setDisplayName(tr("Behavior")); + setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY); setDisplayCategory(QCoreApplication::translate("TextEditor", "Text Editor")); setCategoryIconPath(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON_PATH); - - // global tab preferences for all other languages - d->m_codeStyle = new SimpleCodeStylePreferences(this); - d->m_codeStyle->setDisplayName(tr("Global", "Settings")); - d->m_codeStyle->setId(Constants::GLOBAL_SETTINGS_ID); - - // default pool for all other languages - d->m_defaultCodeStylePool = new CodeStylePool(nullptr, this); // Any language - d->m_defaultCodeStylePool->addCodeStyle(d->m_codeStyle); - d->init(); - - setId(p.id); - setDisplayName(p.displayName); } BehaviorSettingsPage::~BehaviorSettingsPage() @@ -156,19 +145,19 @@ void BehaviorSettingsPage::apply() if (d->m_codeStyle->tabSettings() != d->m_pageCodeStyle->tabSettings()) { d->m_codeStyle->setTabSettings(d->m_pageCodeStyle->tabSettings()); if (s) - d->m_codeStyle->toSettings(d->m_parameters.settingsPrefix, s); + d->m_codeStyle->toSettings(d->m_settingsPrefix, s); } if (d->m_codeStyle->currentDelegate() != d->m_pageCodeStyle->currentDelegate()) { d->m_codeStyle->setCurrentDelegate(d->m_pageCodeStyle->currentDelegate()); if (s) - d->m_codeStyle->toSettings(d->m_parameters.settingsPrefix, s); + d->m_codeStyle->toSettings(d->m_settingsPrefix, s); } if (newTypingSettings != d->m_typingSettings) { d->m_typingSettings = newTypingSettings; if (s) - d->m_typingSettings.toSettings(d->m_parameters.settingsPrefix, s); + d->m_typingSettings.toSettings(d->m_settingsPrefix, s); emit typingSettingsChanged(newTypingSettings); } @@ -176,7 +165,7 @@ void BehaviorSettingsPage::apply() if (newStorageSettings != d->m_storageSettings) { d->m_storageSettings = newStorageSettings; if (s) - d->m_storageSettings.toSettings(d->m_parameters.settingsPrefix, s); + d->m_storageSettings.toSettings(d->m_settingsPrefix, s); emit storageSettingsChanged(newStorageSettings); } @@ -184,7 +173,7 @@ void BehaviorSettingsPage::apply() if (newBehaviorSettings != d->m_behaviorSettings) { d->m_behaviorSettings = newBehaviorSettings; if (s) - d->m_behaviorSettings.toSettings(d->m_parameters.settingsPrefix, s); + d->m_behaviorSettings.toSettings(d->m_settingsPrefix, s); emit behaviorSettingsChanged(newBehaviorSettings); } @@ -192,7 +181,7 @@ void BehaviorSettingsPage::apply() if (newExtraEncodingSettings != d->m_extraEncodingSettings) { d->m_extraEncodingSettings = newExtraEncodingSettings; if (s) - d->m_extraEncodingSettings.toSettings(d->m_parameters.settingsPrefix, s); + d->m_extraEncodingSettings.toSettings(d->m_settingsPrefix, s); emit extraEncodingSettingsChanged(newExtraEncodingSettings); } @@ -277,3 +266,5 @@ void BehaviorSettingsPage::openCodingStylePreferences(TabSettingsWidget::CodingS break; } } + +} // namespace TextEditor diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h index e164157736a..475d5172169 100644 --- a/src/plugins/texteditor/behaviorsettingspage.h +++ b/src/plugins/texteditor/behaviorsettingspage.h @@ -41,20 +41,12 @@ class ExtraEncodingSettings; class ICodeStylePreferences; class CodeStylePool; -class BehaviorSettingsPageParameters -{ -public: - Core::Id id; - QString displayName; - QString settingsPrefix; -}; - class BehaviorSettingsPage : public Core::IOptionsPage { Q_OBJECT public: - BehaviorSettingsPage(const BehaviorSettingsPageParameters &p, QObject *parent); + BehaviorSettingsPage(); ~BehaviorSettingsPage() override; // IOptionsPage diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp index ad08d03c44e..9b70393cce8 100644 --- a/src/plugins/texteditor/texteditorsettings.cpp +++ b/src/plugins/texteditor/texteditorsettings.cpp @@ -64,7 +64,7 @@ class TextEditorSettingsPrivate { public: FontSettingsPage *m_fontSettingsPage; - BehaviorSettingsPage *m_behaviorSettingsPage; + BehaviorSettingsPage m_behaviorSettingsPage; DisplaySettingsPage m_displaySettingsPage; HighlighterSettingsPage m_highlighterSettingsPage; SnippetsSettingsPage m_snippetsSettingsPage; @@ -350,13 +350,6 @@ TextEditorSettings::TextEditorSettings() Constants::TEXT_EDITOR_FONT_SETTINGS, this); - // Add the GUI used to configure the tab, storage and interaction settings - BehaviorSettingsPageParameters behaviorSettingsPageParameters; - behaviorSettingsPageParameters.id = Constants::TEXT_EDITOR_BEHAVIOR_SETTINGS; - behaviorSettingsPageParameters.displayName = tr("Behavior"); - behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text"); - d->m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this); - auto updateGeneralMessagesFontSettings = []() { Core::MessageManager::setFont(d->m_fontSettingsPage->fontSettings().font()); }; @@ -365,20 +358,20 @@ TextEditorSettings::TextEditorSettings() connect(d->m_fontSettingsPage, &FontSettingsPage::changed, this, updateGeneralMessagesFontSettings); updateGeneralMessagesFontSettings(); - connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::typingSettingsChanged, + connect(&d->m_behaviorSettingsPage, &BehaviorSettingsPage::typingSettingsChanged, this, &TextEditorSettings::typingSettingsChanged); - connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::storageSettingsChanged, + connect(&d->m_behaviorSettingsPage, &BehaviorSettingsPage::storageSettingsChanged, this, &TextEditorSettings::storageSettingsChanged); auto updateGeneralMessagesBehaviorSettings = []() { - bool wheelZoom = d->m_behaviorSettingsPage->behaviorSettings().m_scrollWheelZooming; + bool wheelZoom = d->m_behaviorSettingsPage.behaviorSettings().m_scrollWheelZooming; Core::MessageManager::setWheelZoomEnabled(wheelZoom); }; - connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::behaviorSettingsChanged, + connect(&d->m_behaviorSettingsPage, &BehaviorSettingsPage::behaviorSettingsChanged, this, &TextEditorSettings::behaviorSettingsChanged); - connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::behaviorSettingsChanged, + connect(&d->m_behaviorSettingsPage, &BehaviorSettingsPage::behaviorSettingsChanged, this, updateGeneralMessagesBehaviorSettings); updateGeneralMessagesBehaviorSettings(); - connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::extraEncodingSettingsChanged, + connect(&d->m_behaviorSettingsPage, &BehaviorSettingsPage::extraEncodingSettingsChanged, this, &TextEditorSettings::extraEncodingSettingsChanged); connect(&d->m_displaySettingsPage, &DisplaySettingsPage::marginSettingsChanged, this, &TextEditorSettings::marginSettingsChanged); @@ -388,7 +381,7 @@ TextEditorSettings::TextEditorSettings() auto updateCamelCaseNavigation = [] { Utils::FancyLineEdit::setCamelCaseNavigationEnabled(behaviorSettings().m_camelCaseNavigation); }; - connect(d->m_behaviorSettingsPage, &BehaviorSettingsPage::behaviorSettingsChanged, + connect(&d->m_behaviorSettingsPage, &BehaviorSettingsPage::behaviorSettingsChanged, this, updateCamelCaseNavigation); updateCamelCaseNavigation(); } @@ -412,17 +405,17 @@ const FontSettings &TextEditorSettings::fontSettings() const TypingSettings &TextEditorSettings::typingSettings() { - return d->m_behaviorSettingsPage->typingSettings(); + return d->m_behaviorSettingsPage.typingSettings(); } const StorageSettings &TextEditorSettings::storageSettings() { - return d->m_behaviorSettingsPage->storageSettings(); + return d->m_behaviorSettingsPage.storageSettings(); } const BehaviorSettings &TextEditorSettings::behaviorSettings() { - return d->m_behaviorSettingsPage->behaviorSettings(); + return d->m_behaviorSettingsPage.behaviorSettings(); } const MarginSettings &TextEditorSettings::marginSettings() @@ -447,7 +440,7 @@ const HighlighterSettings &TextEditorSettings::highlighterSettings() const ExtraEncodingSettings &TextEditorSettings::extraEncodingSettings() { - return d->m_behaviorSettingsPage->extraEncodingSettings(); + return d->m_behaviorSettingsPage.extraEncodingSettings(); } const CommentsSettings &TextEditorSettings::commentsSettings() @@ -477,7 +470,7 @@ ICodeStylePreferencesFactory *TextEditorSettings::codeStyleFactory(Core::Id lang ICodeStylePreferences *TextEditorSettings::codeStyle() { - return d->m_behaviorSettingsPage->codeStyle(); + return d->m_behaviorSettingsPage.codeStyle(); } ICodeStylePreferences *TextEditorSettings::codeStyle(Core::Id languageId) @@ -502,7 +495,7 @@ void TextEditorSettings::unregisterCodeStyle(Core::Id languageId) CodeStylePool *TextEditorSettings::codeStylePool() { - return d->m_behaviorSettingsPage->codeStylePool(); + return d->m_behaviorSettingsPage.codeStylePool(); } CodeStylePool *TextEditorSettings::codeStylePool(Core::Id languageId)