From d6dba7dc9f05d91697d103fc3520e4b8037d20d6 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 11 Sep 2023 15:30:07 +0200 Subject: [PATCH] Utils: Merge settingsutils.h into Store setup Change-Id: I4f87400d3ff50869798a363f0d15aa77af0edf5c Reviewed-by: Marcus Tillmanns Reviewed-by: David Schulz --- src/libs/utils/CMakeLists.txt | 1 - src/libs/utils/settingsutils.h | 47 ------------------- src/libs/utils/store.cpp | 20 ++++++++ src/libs/utils/store.h | 7 +++ src/libs/utils/utils.qbs | 1 - .../cppeditor/cppcodemodelsettings.cpp | 6 +-- .../cppeditor/cppcodestylesettings.cpp | 1 - src/plugins/cppeditor/cpptoolssettings.cpp | 7 ++- .../qmljstools/qmljscodestylesettings.cpp | 1 - src/plugins/qmljstools/qmljstoolssettings.cpp | 6 +-- src/plugins/texteditor/behaviorsettings.cpp | 6 +-- .../texteditor/extraencodingsettings.cpp | 7 +-- .../texteditor/icodestylepreferences.cpp | 6 +-- src/plugins/texteditor/storagesettings.cpp | 5 +- src/plugins/texteditor/tabsettings.cpp | 6 +-- src/plugins/texteditor/typingsettings.cpp | 6 +-- 16 files changed, 47 insertions(+), 86 deletions(-) delete mode 100644 src/libs/utils/settingsutils.h diff --git a/src/libs/utils/CMakeLists.txt b/src/libs/utils/CMakeLists.txt index 9f1569b73b2..79f2bc323ae 100644 --- a/src/libs/utils/CMakeLists.txt +++ b/src/libs/utils/CMakeLists.txt @@ -147,7 +147,6 @@ add_qtc_library(Utils set_algorithm.h settingsaccessor.cpp settingsaccessor.h settingsselector.cpp settingsselector.h - settingsutils.h singleton.cpp singleton.h sizedarray.h smallstring.h diff --git a/src/libs/utils/settingsutils.h b/src/libs/utils/settingsutils.h deleted file mode 100644 index 5806ca44868..00000000000 --- a/src/libs/utils/settingsutils.h +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "store.h" -#include "qtcsettings.h" - -#include -#include -#include - -namespace Utils { - -template -void fromSettings(const Key &postFix, - const Key &category, - QtcSettings *s, - SettingsClassT *obj) -{ - Store map; - s->beginGroup(category + postFix); - const KeyList keys = keysFromStrings(s->allKeys()); - for (const Key &key : keys) - map.insert(key, s->value(key)); - s->endGroup(); - obj->fromMap(map); -} - -template -void toSettings(const Key &postFix, - const Key &category, - QtcSettings *s, - const SettingsClassT *obj) -{ - Key group = postFix; - if (!category.isEmpty()) - group.insert(0, category); - const Store map = obj->toMap(); - - s->beginGroup(group); - for (auto it = map.constBegin(), end = map.constEnd(); it != end; ++it) - s->setValue(it.key(), it.value()); - s->endGroup(); -} - -} // Utils diff --git a/src/libs/utils/store.cpp b/src/libs/utils/store.cpp index 42a14d6f1a9..4047aced9fe 100644 --- a/src/libs/utils/store.cpp +++ b/src/libs/utils/store.cpp @@ -5,6 +5,7 @@ #include "algorithm.h" #include "qtcassert.h" +#include "qtcsettings.h" #include #include @@ -133,4 +134,23 @@ QByteArray jsonFromStore(const Store &store) return doc.toJson(); } +Store storeFromSettings(const Key &groupKey, QtcSettings *s) +{ + Store store; + s->beginGroup(groupKey); + const KeyList keys = keysFromStrings(s->allKeys()); + for (const Key &key : keys) + store.insert(key, s->value(key)); + s->endGroup(); + return store; +} + +void storeToSettings(const Key &groupKey, QtcSettings *s, const Store &store) +{ + s->beginGroup(groupKey); + for (auto it = store.constBegin(), end = store.constEnd(); it != end; ++it) + s->setValue(it.key(), it.value()); + s->endGroup(); +} + } // Utils diff --git a/src/libs/utils/store.h b/src/libs/utils/store.h index f09b98f3306..196f9777e44 100644 --- a/src/libs/utils/store.h +++ b/src/libs/utils/store.h @@ -11,6 +11,8 @@ namespace Utils { +class QtcSettings; + using KeyList = QList; using Store = QMap; @@ -31,6 +33,11 @@ QTCREATOR_UTILS_EXPORT Key numberedKey(const Key &key, int number); QTCREATOR_UTILS_EXPORT expected_str storeFromJson(const QByteArray &json); QTCREATOR_UTILS_EXPORT QByteArray jsonFromStore(const Store &store); + +// Don't use in new code. +QTCREATOR_UTILS_EXPORT Store storeFromSettings(const Key &groupKey, QtcSettings *s); +QTCREATOR_UTILS_EXPORT void storeToSettings(const Key &groupKey, QtcSettings *s, const Store &store); + } // Utils Q_DECLARE_METATYPE(Utils::Store) diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index 1110ad11c73..ba5665ab8f4 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -279,7 +279,6 @@ Project { "settingsaccessor.h", "settingsselector.cpp", "settingsselector.h", - "settingsutils.h", "singleton.cpp", "singleton.h", "sizedarray.h", diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp index d08551b13da..02b22e3a545 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -400,7 +399,8 @@ FilePath ClangdSettings::clangdUserConfigFilePath() void ClangdSettings::loadSettings() { const auto settings = Core::ICore::settings(); - Utils::fromSettings(clangdSettingsKey(), {}, settings, &m_data); + + m_data.fromMap(Utils::storeFromSettings(clangdSettingsKey(), settings)); settings->beginGroup(QLatin1String(Constants::CPPEDITOR_SETTINGSGROUP)); m_data.customDiagnosticConfigs = diagnosticConfigsFromSettings(settings); @@ -419,7 +419,7 @@ void ClangdSettings::loadSettings() void ClangdSettings::saveSettings() { const auto settings = Core::ICore::settings(); - Utils::toSettings(clangdSettingsKey(), {}, settings, &m_data); + Utils::storeToSettings(clangdSettingsKey(), settings, m_data.toMap()); settings->beginGroup(QLatin1String(Constants::CPPEDITOR_SETTINGSGROUP)); diagnosticConfigsToSettings(settings, m_data.customDiagnosticConfigs); settings->endGroup(); diff --git a/src/plugins/cppeditor/cppcodestylesettings.cpp b/src/plugins/cppeditor/cppcodestylesettings.cpp index 557940f7660..733f066eaca 100644 --- a/src/plugins/cppeditor/cppcodestylesettings.cpp +++ b/src/plugins/cppeditor/cppcodestylesettings.cpp @@ -16,7 +16,6 @@ #include #include -#include static const char indentBlockBracesKey[] = "IndentBlockBraces"; static const char indentBlockBodyKey[] = "IndentBlockBody"; diff --git a/src/plugins/cppeditor/cpptoolssettings.cpp b/src/plugins/cppeditor/cpptoolssettings.cpp index 49ceb0c963b..ad3dfd18388 100644 --- a/src/plugins/cppeditor/cpptoolssettings.cpp +++ b/src/plugins/cppeditor/cpptoolssettings.cpp @@ -9,16 +9,15 @@ #include "cppcodestylepreferencesfactory.h" #include + +#include + #include #include #include #include -#include #include -#include - -#include static const char idKey[] = "CppGlobal"; const bool kSortEditorDocumentOutlineDefault = true; diff --git a/src/plugins/qmljstools/qmljscodestylesettings.cpp b/src/plugins/qmljstools/qmljscodestylesettings.cpp index e08575af66a..c03501ac016 100644 --- a/src/plugins/qmljstools/qmljscodestylesettings.cpp +++ b/src/plugins/qmljstools/qmljscodestylesettings.cpp @@ -15,7 +15,6 @@ #include #include -#include static const char lineLengthKey[] = "LineLength"; diff --git a/src/plugins/qmljstools/qmljstoolssettings.cpp b/src/plugins/qmljstools/qmljstoolssettings.cpp index bb4c813ce05..b5cdac7e200 100644 --- a/src/plugins/qmljstools/qmljstoolssettings.cpp +++ b/src/plugins/qmljstools/qmljstoolssettings.cpp @@ -7,15 +7,13 @@ #include "qmljstoolssettings.h" #include "qmljstoolstr.h" +#include + #include #include #include -#include #include -#include - -#include using namespace TextEditor; diff --git a/src/plugins/texteditor/behaviorsettings.cpp b/src/plugins/texteditor/behaviorsettings.cpp index 0a638867165..955b7d6709d 100644 --- a/src/plugins/texteditor/behaviorsettings.cpp +++ b/src/plugins/texteditor/behaviorsettings.cpp @@ -5,8 +5,6 @@ #include -#include - #include static const char mouseHidingKey[] = "MouseHiding"; @@ -35,13 +33,13 @@ BehaviorSettings::BehaviorSettings() : void BehaviorSettings::toSettings(const Key &category) const { - Utils::toSettings(groupPostfix, category, Core::ICore::settings(), this); + Utils::storeToSettings(category + groupPostfix, Core::ICore::settings(), toMap()); } void BehaviorSettings::fromSettings(const Key &category) { *this = BehaviorSettings(); - Utils::fromSettings(groupPostfix, category, Core::ICore::settings(), this); + fromMap(Utils::storeFromSettings(category + groupPostfix, Core::ICore::settings())); } Store BehaviorSettings::toMap() const diff --git a/src/plugins/texteditor/extraencodingsettings.cpp b/src/plugins/texteditor/extraencodingsettings.cpp index dd724488ad8..e95e37b7e2e 100644 --- a/src/plugins/texteditor/extraencodingsettings.cpp +++ b/src/plugins/texteditor/extraencodingsettings.cpp @@ -3,13 +3,10 @@ #include "extraencodingsettings.h" -#include "behaviorsettingswidget.h" #include "texteditortr.h" #include -#include - // Keep this for compatibility reasons. static const char kGroupPostfix[] = "EditorManager"; static const char kUtf8BomBehaviorKey[] = "Utf8BomBehavior"; @@ -27,7 +24,7 @@ void ExtraEncodingSettings::toSettings(const Key &category) const { Q_UNUSED(category) - Utils::toSettings(kGroupPostfix, Key(), Core::ICore::settings(), this); + Utils::storeToSettings(kGroupPostfix, Core::ICore::settings(), toMap()); } void ExtraEncodingSettings::fromSettings(const Key &category) @@ -35,7 +32,7 @@ void ExtraEncodingSettings::fromSettings(const Key &category) Q_UNUSED(category) *this = ExtraEncodingSettings(); - Utils::fromSettings(kGroupPostfix, Key(), Core::ICore::settings(), this); + fromMap(Utils::storeFromSettings(kGroupPostfix, Core::ICore::settings())); } Store ExtraEncodingSettings::toMap() const diff --git a/src/plugins/texteditor/icodestylepreferences.cpp b/src/plugins/texteditor/icodestylepreferences.cpp index 3fffa8401a3..864c3a777ea 100644 --- a/src/plugins/texteditor/icodestylepreferences.cpp +++ b/src/plugins/texteditor/icodestylepreferences.cpp @@ -7,8 +7,6 @@ #include -#include - using namespace Utils; static const char currentPreferencesKey[] = "CurrentPreferences"; @@ -214,12 +212,12 @@ void ICodeStylePreferences::setSettingsSuffix(const Key &suffix) void ICodeStylePreferences::toSettings(const Key &category) const { - Utils::toSettings(d->m_settingsSuffix, category, Core::ICore::settings(), this); + Utils::storeToSettings(category + d->m_settingsSuffix, Core::ICore::settings(), toMap()); } void ICodeStylePreferences::fromSettings(const Key &category) { - Utils::fromSettings(d->m_settingsSuffix, category, Core::ICore::settings(), this); + fromMap(Utils::storeFromSettings(category + d->m_settingsSuffix, Core::ICore::settings())); } Store ICodeStylePreferences::toMap() const diff --git a/src/plugins/texteditor/storagesettings.cpp b/src/plugins/texteditor/storagesettings.cpp index 6352bf3e566..c0ee52bae12 100644 --- a/src/plugins/texteditor/storagesettings.cpp +++ b/src/plugins/texteditor/storagesettings.cpp @@ -6,7 +6,6 @@ #include #include -#include #include @@ -35,13 +34,13 @@ StorageSettings::StorageSettings() void StorageSettings::toSettings(const Key &category) const { - Utils::toSettings(groupPostfix, category, Core::ICore::settings(), this); + Utils::storeToSettings(category + groupPostfix, Core::ICore::settings(), toMap()); } void StorageSettings::fromSettings(const Key &category) { *this = StorageSettings(); - Utils::fromSettings(groupPostfix, category, Core::ICore::settings(), this); + fromMap(Utils::storeFromSettings(category + groupPostfix, Core::ICore::settings())); } Store StorageSettings::toMap() const diff --git a/src/plugins/texteditor/tabsettings.cpp b/src/plugins/texteditor/tabsettings.cpp index ff5e9b729e5..a723c4ab4b1 100644 --- a/src/plugins/texteditor/tabsettings.cpp +++ b/src/plugins/texteditor/tabsettings.cpp @@ -3,8 +3,6 @@ #include "tabsettings.h" -#include - #include #include #include @@ -35,13 +33,13 @@ TabSettings::TabSettings(TabSettings::TabPolicy tabPolicy, void TabSettings::toSettings(const Key &category, QtcSettings *s) const { - Utils::toSettings(groupPostfix, category, s, this); + Utils::storeToSettings(category + groupPostfix, s, toMap()); } void TabSettings::fromSettings(const Key &category, QtcSettings *s) { *this = TabSettings(); // Assign defaults - Utils::fromSettings(groupPostfix, category, s, this); + fromMap(Utils::storeFromSettings(category + groupPostfix, s)); } Store TabSettings::toMap() const diff --git a/src/plugins/texteditor/typingsettings.cpp b/src/plugins/texteditor/typingsettings.cpp index 402d472848c..e80a1fc4d8b 100644 --- a/src/plugins/texteditor/typingsettings.cpp +++ b/src/plugins/texteditor/typingsettings.cpp @@ -5,8 +5,6 @@ #include -#include - #include #include @@ -30,13 +28,13 @@ TypingSettings::TypingSettings(): void TypingSettings::toSettings(const Key &category) const { - Utils::toSettings(groupPostfix, category, Core::ICore::settings(), this); + Utils::storeToSettings(category + groupPostfix, Core::ICore::settings(), toMap()); } void TypingSettings::fromSettings(const Key &category) { *this = TypingSettings(); // Assign defaults - Utils::fromSettings(groupPostfix, category, Core::ICore::settings(), this); + fromMap(Utils::storeFromSettings(category + groupPostfix, Core::ICore::settings())); } Store TypingSettings::toMap() const