From 75d9dc2d313acca3ddf72809d2d2bec89b836844 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 26 Jul 2023 13:31:30 +0200 Subject: [PATCH] CppEditor: Apply 'static pattern' to CppToolsSettings Change-Id: I1632787e1a1ebf60427c92b302b25a1a2550853f Reviewed-by: Christian Kandeler --- .../clangformat/clangformatbaseindenter.cpp | 2 +- .../cppeditor/cppcodestylesettings.cpp | 5 ++-- .../cppeditor/cppcodestylesettingspage.cpp | 7 ++--- src/plugins/cppeditor/cppdoxygen_test.cpp | 7 ++--- src/plugins/cppeditor/cppeditoroutline.cpp | 2 +- src/plugins/cppeditor/cppqtstyleindenter.cpp | 2 +- src/plugins/cppeditor/cppquickfix_test.cpp | 10 +++---- src/plugins/cppeditor/cpptoolssettings.cpp | 16 +++++----- src/plugins/cppeditor/cpptoolssettings.h | 29 +++++-------------- src/plugins/glsleditor/glslindenter.cpp | 12 +++----- 10 files changed, 36 insertions(+), 56 deletions(-) diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp index 8e8d6013253..6903491fb0c 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.cpp +++ b/src/plugins/clangformat/clangformatbaseindenter.cpp @@ -565,7 +565,7 @@ Utils::EditOperations ClangFormatBaseIndenter::format(const TextEditor::RangesIn { bool doFormatting = mode == FormattingMode::Forced || formatCodeInsteadOfIndent(); #ifdef WITH_TESTS - doFormatting = doFormatting || CppEditor::CppToolsSettings::instance()->cppCodeStyle() + doFormatting = doFormatting || CppEditor::CppToolsSettings::cppCodeStyle() ->codeStyleSettings().forceFormatting; #endif if (!doFormatting) diff --git a/src/plugins/cppeditor/cppcodestylesettings.cpp b/src/plugins/cppeditor/cppcodestylesettings.cpp index 0fafad5a071..0607ce52819 100644 --- a/src/plugins/cppeditor/cppcodestylesettings.cpp +++ b/src/plugins/cppeditor/cppcodestylesettings.cpp @@ -161,7 +161,7 @@ CppCodeStyleSettings CppCodeStyleSettings::currentProjectCodeStyle() CppCodeStyleSettings CppCodeStyleSettings::currentGlobalCodeStyle() { - CppCodeStylePreferences *cppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle(); + CppCodeStylePreferences *cppCodeStylePreferences = CppToolsSettings::cppCodeStyle(); QTC_ASSERT(cppCodeStylePreferences, return CppCodeStyleSettings()); return cppCodeStylePreferences->currentCodeStyleSettings(); @@ -188,8 +188,7 @@ TextEditor::TabSettings CppCodeStyleSettings::currentProjectTabSettings() TextEditor::TabSettings CppCodeStyleSettings::currentGlobalTabSettings() { - CppCodeStylePreferences *cppCodeStylePreferences - = CppToolsSettings::instance()->cppCodeStyle(); + CppCodeStylePreferences *cppCodeStylePreferences = CppToolsSettings::cppCodeStyle(); QTC_ASSERT(cppCodeStylePreferences, return TextEditor::TabSettings()); return cppCodeStylePreferences->currentTabSettings(); diff --git a/src/plugins/cppeditor/cppcodestylesettingspage.cpp b/src/plugins/cppeditor/cppcodestylesettingspage.cpp index 2f49c7eeb4d..d580f4dd990 100644 --- a/src/plugins/cppeditor/cppcodestylesettingspage.cpp +++ b/src/plugins/cppeditor/cppcodestylesettingspage.cpp @@ -469,7 +469,7 @@ void CppCodeStylePreferencesWidget::updatePreview() { CppCodeStylePreferences *cppCodeStylePreferences = m_preferences ? m_preferences - : CppToolsSettings::instance()->cppCodeStyle(); + : CppToolsSettings::cppCodeStyle(); const CppCodeStyleSettings ccss = cppCodeStylePreferences->currentCodeStyleSettings(); const TabSettings ts = cppCodeStylePreferences->currentTabSettings(); QtStyleCodeFormatter formatter(ts, ccss); @@ -568,8 +568,7 @@ class CppCodeStyleSettingsPageWidget : public Core::IOptionsPageWidget public: CppCodeStyleSettingsPageWidget() { - CppCodeStylePreferences *originalCodeStylePreferences = CppToolsSettings::instance() - ->cppCodeStyle(); + CppCodeStylePreferences *originalCodeStylePreferences = CppToolsSettings::cppCodeStyle(); m_pageCppCodeStylePreferences = new CppCodeStylePreferences(); m_pageCppCodeStylePreferences->setDelegatingPool( originalCodeStylePreferences->delegatingPool()); @@ -589,7 +588,7 @@ public: void apply() final { - CppCodeStylePreferences *originalCppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle(); + CppCodeStylePreferences *originalCppCodeStylePreferences = CppToolsSettings::cppCodeStyle(); if (originalCppCodeStylePreferences->codeStyleSettings() != m_pageCppCodeStylePreferences->codeStyleSettings()) { originalCppCodeStylePreferences->setCodeStyleSettings(m_pageCppCodeStylePreferences->codeStyleSettings()); originalCppCodeStylePreferences->toSettings(QLatin1String(CppEditor::Constants::CPP_SETTINGS_ID)); diff --git a/src/plugins/cppeditor/cppdoxygen_test.cpp b/src/plugins/cppeditor/cppdoxygen_test.cpp index 19d1dee42b4..d784c008c91 100644 --- a/src/plugins/cppeditor/cppdoxygen_test.cpp +++ b/src/plugins/cppeditor/cppdoxygen_test.cpp @@ -40,7 +40,7 @@ void DoxygenTest::cleanTestCase() void DoxygenTest::cleanup() { if (oldSettings) - CppToolsSettings::instance()->setCommentsSettings(*oldSettings); + CppToolsSettings::setCommentsSettings(*oldSettings); QVERIFY(Core::EditorManager::closeAllEditors(false)); QVERIFY(TestCase::garbageCollectGlobalSnapshot()); } @@ -434,9 +434,8 @@ void DoxygenTest::runTest(const QByteArray &original, &testDocument.m_editorWidget)); if (settings) { - auto *cts = CppToolsSettings::instance(); - oldSettings.reset(new TextEditor::CommentsSettings(cts->commentsSettings())); - cts->setCommentsSettings(*settings); + oldSettings.reset(new TextEditor::CommentsSettings(CppToolsSettings::commentsSettings())); + CppToolsSettings::setCommentsSettings(*settings); } // We want to test documents that start with a comment. By default, the diff --git a/src/plugins/cppeditor/cppeditoroutline.cpp b/src/plugins/cppeditor/cppeditoroutline.cpp index 4c39851274b..dec97045639 100644 --- a/src/plugins/cppeditor/cppeditoroutline.cpp +++ b/src/plugins/cppeditor/cppeditoroutline.cpp @@ -79,7 +79,7 @@ CppEditorOutline::CppEditorOutline(CppEditorWidget *editorWidget) m_proxyModel->setSourceModel(m_model); // Set up proxy model - if (CppToolsSettings::instance()->sortedEditorDocumentOutline()) + if (CppToolsSettings::sortedEditorDocumentOutline()) m_proxyModel->sort(0, Qt::AscendingOrder); else m_proxyModel->sort(-1, Qt::AscendingOrder); // don't sort yet, but set column for sortedOutline() diff --git a/src/plugins/cppeditor/cppqtstyleindenter.cpp b/src/plugins/cppeditor/cppqtstyleindenter.cpp index cbcaad47a2f..b7bdfb69b55 100644 --- a/src/plugins/cppeditor/cppqtstyleindenter.cpp +++ b/src/plugins/cppeditor/cppqtstyleindenter.cpp @@ -19,7 +19,7 @@ CppQtStyleIndenter::CppQtStyleIndenter(QTextDocument *doc) { // Just for safety. setCodeStylePreferences should be called when the editor the // indenter belongs to gets initialized. - m_cppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle(); + m_cppCodeStylePreferences = CppToolsSettings::cppCodeStyle(); } CppQtStyleIndenter::~CppQtStyleIndenter() = default; diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index 09bc7d05d45..18da315a764 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -129,7 +129,7 @@ BaseQuickFixTestCase::BaseQuickFixTestCase(const QList &testDoc // Enforce the default cpp code style, so we are independent of config file settings. // This is needed by e.g. the GenerateGetterSetter quick fix. - m_cppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle(); + m_cppCodeStylePreferences = CppToolsSettings::cppCodeStyle(); QVERIFY(m_cppCodeStylePreferences); m_cppCodeStylePreferencesOriginalDelegateId = m_cppCodeStylePreferences->currentDelegateId(); m_cppCodeStylePreferences->setCurrentDelegate("qt"); @@ -3479,14 +3479,12 @@ void CppCodeStyleSettingsChanger::setSettings(const CppCodeStyleSettings &settin QVariant variant; variant.setValue(settings); - CppCodeStylePreferences *preferences = CppToolsSettings::instance()->cppCodeStyle(); - preferences->currentDelegate()->setValue(variant); + CppToolsSettings::cppCodeStyle()->currentDelegate()->setValue(variant); } CppCodeStyleSettings CppCodeStyleSettingsChanger::currentSettings() { - CppCodeStylePreferences *preferences = CppToolsSettings::instance()->cppCodeStyle(); - return preferences->currentDelegate()->value().value(); + return CppToolsSettings::cppCodeStyle()->currentDelegate()->value().value(); } void QuickfixTest::testGenerateGettersSetters_data() @@ -5392,7 +5390,7 @@ SpaceBeforeParens: Always CppTestDocument::create("file.cpp", origSource, expectedSource)}); InsertDefsFromDecls factory; factory.setMode(InsertDefsFromDecls::Mode::Impl); - CppCodeStylePreferences * const prefs = CppToolsSettings::instance()->cppCodeStyle(); + CppCodeStylePreferences * const prefs = CppToolsSettings::cppCodeStyle(); const CppCodeStyleSettings settings = prefs->codeStyleSettings(); CppCodeStyleSettings tempSettings = settings; tempSettings.forceFormatting = true; diff --git a/src/plugins/cppeditor/cpptoolssettings.cpp b/src/plugins/cppeditor/cpptoolssettings.cpp index 5dd22b6aae8..abc0558e069 100644 --- a/src/plugins/cppeditor/cpptoolssettings.cpp +++ b/src/plugins/cppeditor/cpptoolssettings.cpp @@ -29,21 +29,24 @@ using namespace TextEditor; namespace CppEditor { namespace Internal { + class CppToolsSettingsPrivate { public: CommentsSettings m_commentsSettings; CppCodeStylePreferences *m_globalCodeStyle = nullptr; }; -} // namespace Internal -CppToolsSettings *CppToolsSettings::m_instance = nullptr; +} // Internal + +CppToolsSettings *m_instance = nullptr; +Internal::CppToolsSettingsPrivate *d = nullptr; CppToolsSettings::CppToolsSettings() - : d(new Internal::CppToolsSettingsPrivate) { QTC_ASSERT(!m_instance, return); m_instance = this; + d = new Internal::CppToolsSettingsPrivate; qRegisterMetaType("CppEditor::CppCodeStyleSettings"); @@ -156,12 +159,12 @@ CppToolsSettings *CppToolsSettings::instance() return m_instance; } -CppCodeStylePreferences *CppToolsSettings::cppCodeStyle() const +CppCodeStylePreferences *CppToolsSettings::cppCodeStyle() { return d->m_globalCodeStyle; } -const CommentsSettings &CppToolsSettings::commentsSettings() const +const CommentsSettings &CppToolsSettings::commentsSettings() { return d->m_commentsSettings; } @@ -178,7 +181,7 @@ static QString sortEditorDocumentOutlineKey() + QLatin1String(Constants::CPPEDITOR_SORT_EDITOR_DOCUMENT_OUTLINE); } -bool CppToolsSettings::sortedEditorDocumentOutline() const +bool CppToolsSettings::sortedEditorDocumentOutline() { return ICore::settings() ->value(sortEditorDocumentOutlineKey(), kSortEditorDocumentOutlineDefault) @@ -190,7 +193,6 @@ void CppToolsSettings::setSortedEditorDocumentOutline(bool sorted) ICore::settings()->setValueWithDefault(sortEditorDocumentOutlineKey(), sorted, kSortEditorDocumentOutlineDefault); - emit editorDocumentOutlineSortingChanged(sorted); } } // namespace CppEditor diff --git a/src/plugins/cppeditor/cpptoolssettings.h b/src/plugins/cppeditor/cpptoolssettings.h index 32a48234145..b95b9b2569c 100644 --- a/src/plugins/cppeditor/cpptoolssettings.h +++ b/src/plugins/cppeditor/cpptoolssettings.h @@ -9,40 +9,27 @@ namespace TextEditor { class CommentsSettings; } -namespace CppEditor -{ +namespace CppEditor { + class CppCodeStylePreferences; -namespace Internal { class CppToolsSettingsPrivate; } +// This class is meant to go away. -/** - * This class provides a central place for cpp tools settings. - */ class CPPEDITOR_EXPORT CppToolsSettings : public QObject { - Q_OBJECT - public: CppToolsSettings(); ~CppToolsSettings() override; static CppToolsSettings *instance(); - CppCodeStylePreferences *cppCodeStyle() const; + static CppCodeStylePreferences *cppCodeStyle(); - const TextEditor::CommentsSettings &commentsSettings() const; - void setCommentsSettings(const TextEditor::CommentsSettings &commentsSettings); + static const TextEditor::CommentsSettings &commentsSettings(); + static void setCommentsSettings(const TextEditor::CommentsSettings &commentsSettings); - bool sortedEditorDocumentOutline() const; - void setSortedEditorDocumentOutline(bool sorted); - -signals: - void editorDocumentOutlineSortingChanged(bool isSorted); - -private: - Internal::CppToolsSettingsPrivate *d; - - static CppToolsSettings *m_instance; + static bool sortedEditorDocumentOutline(); + static void setSortedEditorDocumentOutline(bool sorted); }; } // namespace CppEditor diff --git a/src/plugins/glsleditor/glslindenter.cpp b/src/plugins/glsleditor/glslindenter.cpp index c914dbc36c4..7a8dcbbb289 100644 --- a/src/plugins/glsleditor/glslindenter.cpp +++ b/src/plugins/glsleditor/glslindenter.cpp @@ -34,8 +34,7 @@ void GlslIndenter::indentBlock(const QTextBlock &block, { // TODO: do something with it CppEditor::QtStyleCodeFormatter - codeFormatter(tabSettings, - CppEditor::CppToolsSettings::instance()->cppCodeStyle()->codeStyleSettings()); + codeFormatter(tabSettings, CppEditor::CppToolsSettings::cppCodeStyle()->codeStyleSettings()); codeFormatter.updateStateUntil(block); int indent; @@ -66,8 +65,7 @@ void GlslIndenter::indent(const QTextCursor &cursor, // TODO: do something with it CppEditor::QtStyleCodeFormatter codeFormatter(tabSettings, - CppEditor::CppToolsSettings::instance() - ->cppCodeStyle() + CppEditor::CppToolsSettings::cppCodeStyle() ->codeStyleSettings()); codeFormatter.updateStateUntil(block); @@ -92,8 +90,7 @@ int GlslIndenter::indentFor(const QTextBlock &block, int /*cursorPositionInEditor*/) { CppEditor::QtStyleCodeFormatter - codeFormatter(tabSettings, - CppEditor::CppToolsSettings::instance()->cppCodeStyle()->codeStyleSettings()); + codeFormatter(tabSettings, CppEditor::CppToolsSettings::cppCodeStyle()->codeStyleSettings()); codeFormatter.updateStateUntil(block); int indent; @@ -109,8 +106,7 @@ TextEditor::IndentationForBlock GlslIndenter::indentationForBlocks( int /*cursorPositionInEditor*/) { CppEditor::QtStyleCodeFormatter - codeFormatter(tabSettings, - CppEditor::CppToolsSettings::instance()->cppCodeStyle()->codeStyleSettings()); + codeFormatter(tabSettings, CppEditor::CppToolsSettings::cppCodeStyle()->codeStyleSettings()); codeFormatter.updateStateUntil(blocks.last());