CppEditor: Apply 'static pattern' to CppToolsSettings

Change-Id: I1632787e1a1ebf60427c92b302b25a1a2550853f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2023-07-26 13:31:30 +02:00
parent a140a93067
commit 75d9dc2d31
10 changed files with 36 additions and 56 deletions

View File

@@ -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)

View File

@@ -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();

View File

@@ -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));

View File

@@ -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

View File

@@ -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()

View File

@@ -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;

View File

@@ -129,7 +129,7 @@ BaseQuickFixTestCase::BaseQuickFixTestCase(const QList<TestDocumentPtr> &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<CppCodeStyleSettings>();
return CppToolsSettings::cppCodeStyle()->currentDelegate()->value().value<CppCodeStyleSettings>();
}
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;

View File

@@ -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<CppCodeStyleSettings>("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

View File

@@ -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

View File

@@ -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());