From 870eb37867ce8dd8df2dff6162dbb6c32683213f Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 26 Nov 2024 13:12:28 +0100 Subject: [PATCH] Editor: link global settings in tab settings button Change-Id: I5ca9f3a2191e9146d5517dc8cccf6932e2c21032 Reviewed-by: Christian Stenger --- src/plugins/cppeditor/cppcodestylepreferences.cpp | 2 ++ src/plugins/qmljstools/qmljscodestylepreferences.cpp | 2 ++ src/plugins/texteditor/icodestylepreferences.cpp | 11 +++++++++++ src/plugins/texteditor/icodestylepreferences.h | 4 ++++ src/plugins/texteditor/simplecodestylepreferences.cpp | 3 ++- src/plugins/texteditor/textdocument.cpp | 5 +++++ src/plugins/texteditor/textdocument.h | 1 + src/plugins/texteditor/texteditor.cpp | 9 +++++++++ 8 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/plugins/cppeditor/cppcodestylepreferences.cpp b/src/plugins/cppeditor/cppcodestylepreferences.cpp index 59d2bd232fe..cb04d4e12cb 100644 --- a/src/plugins/cppeditor/cppcodestylepreferences.cpp +++ b/src/plugins/cppeditor/cppcodestylepreferences.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "cppcodestylepreferences.h" +#include "cppeditorconstants.h" using namespace Utils; @@ -11,6 +12,7 @@ CppCodeStylePreferences::CppCodeStylePreferences(QObject *parent) : ICodeStylePreferences(parent) { setSettingsSuffix("CodeStyleSettings"); + setGlobalSettingsCategory(Constants::CPP_CODE_STYLE_SETTINGS_ID); connect(this, &CppCodeStylePreferences::currentValueChanged, this, &CppCodeStylePreferences::slotCurrentValueChanged); diff --git a/src/plugins/qmljstools/qmljscodestylepreferences.cpp b/src/plugins/qmljstools/qmljscodestylepreferences.cpp index f19c40a7b88..679dd561f09 100644 --- a/src/plugins/qmljstools/qmljscodestylepreferences.cpp +++ b/src/plugins/qmljstools/qmljscodestylepreferences.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "qmljscodestylepreferences.h" +#include "qmljstoolsconstants.h" using namespace Utils; @@ -11,6 +12,7 @@ QmlJSCodeStylePreferences::QmlJSCodeStylePreferences(QObject *parent) : ICodeStylePreferences(parent) { setSettingsSuffix("CodeStyleSettings"); + setGlobalSettingsCategory(Constants::QML_JS_CODE_STYLE_SETTINGS_ID); connect(this, &QmlJSCodeStylePreferences::currentValueChanged, this, &QmlJSCodeStylePreferences::slotCurrentValueChanged); diff --git a/src/plugins/texteditor/icodestylepreferences.cpp b/src/plugins/texteditor/icodestylepreferences.cpp index 8eae1c4be70..997e67a6be2 100644 --- a/src/plugins/texteditor/icodestylepreferences.cpp +++ b/src/plugins/texteditor/icodestylepreferences.cpp @@ -19,6 +19,7 @@ class ICodeStylePreferencesPrivate public: CodeStylePool *m_pool = nullptr; ICodeStylePreferences *m_currentDelegate = nullptr; + Utils::Id m_globalSettingsCategory; TabSettings m_tabSettings; QByteArray m_id; QString m_displayName; @@ -249,6 +250,16 @@ void ICodeStylePreferences::fromMap(const Store &map) } } +Id ICodeStylePreferences::globalSettingsCategory() +{ + return d->m_globalSettingsCategory; +} + +void ICodeStylePreferences::setGlobalSettingsCategory(const Utils::Id &id) +{ + d->m_globalSettingsCategory = id; +} + void ICodeStylePreferences::codeStyleRemoved(ICodeStylePreferences *preferences) { if (currentDelegate() == preferences) { diff --git a/src/plugins/texteditor/icodestylepreferences.h b/src/plugins/texteditor/icodestylepreferences.h index aab34d3dc25..49f63f2c609 100644 --- a/src/plugins/texteditor/icodestylepreferences.h +++ b/src/plugins/texteditor/icodestylepreferences.h @@ -5,6 +5,7 @@ #include "texteditor_global.h" +#include #include #include @@ -75,6 +76,9 @@ public: virtual Utils::Store toMap() const; virtual void fromMap(const Utils::Store &map); + Utils::Id globalSettingsCategory(); + void setGlobalSettingsCategory(const Utils::Id &id); + signals: void tabSettingsChanged(const TextEditor::TabSettings &settings); void currentTabSettingsChanged(const TextEditor::TabSettings &settings); diff --git a/src/plugins/texteditor/simplecodestylepreferences.cpp b/src/plugins/texteditor/simplecodestylepreferences.cpp index 6a6a76bb64a..57d0dd84345 100644 --- a/src/plugins/texteditor/simplecodestylepreferences.cpp +++ b/src/plugins/texteditor/simplecodestylepreferences.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "simplecodestylepreferences.h" +#include "texteditorconstants.h" #include @@ -11,9 +12,9 @@ SimpleCodeStylePreferences::SimpleCodeStylePreferences(QObject *parent) : ICodeStylePreferences(parent) { setSettingsSuffix("TabPreferences"); + setGlobalSettingsCategory(Constants::TEXT_EDITOR_BEHAVIOR_SETTINGS); } - QVariant SimpleCodeStylePreferences::value() const { return QVariant(); diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index 8cd61342053..c375a8f1780 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -479,6 +479,11 @@ void TextDocument::setCodeStyle(ICodeStylePreferences *preferences) } } +ICodeStylePreferences *TextDocument::codeStyle() const +{ + return d->m_codeStylePreferences; +} + void TextDocument::applyFontSettings() { d->m_fontSettingsNeedsApply = false; diff --git a/src/plugins/texteditor/textdocument.h b/src/plugins/texteditor/textdocument.h index fb97543a477..55a4e75c0bb 100644 --- a/src/plugins/texteditor/textdocument.h +++ b/src/plugins/texteditor/textdocument.h @@ -140,6 +140,7 @@ public: virtual IAssistProvider *quickFixAssistProvider() const; void setCodeStyle(ICodeStylePreferences *preferences); + ICodeStylePreferences *codeStyle() const; void setTabSettings(const TextEditor::TabSettings &tabSettings); void setFontSettings(const TextEditor::FontSettings &fontSettings); diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 4848386104d..ac8e9800b40 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -360,6 +360,15 @@ private: } tabSize->addActions(tabSizeGroup->actions()); + Id globalSettingsCategory; + if (auto codeStyle = m_doc->codeStyle()) + globalSettingsCategory = codeStyle->globalSettingsCategory(); + if (!globalSettingsCategory.isValid()) + globalSettingsCategory = Constants::TEXT_EDITOR_BEHAVIOR_SETTINGS; + menu->addAction(Tr::tr("Global Settings..."), [globalSettingsCategory] { + Core::ICore::showOptionsDialog(globalSettingsCategory); + }); + menu->popup(QCursor::pos()); }