aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/settingsaccessor.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-08-28 10:55:31 +0200
committerhjk <hjk@qt.io>2023-08-28 11:16:40 +0000
commit23149b27ab36d30a5f7b6e0f23f29a9318582020 (patch)
tree1b7735b89a6034197f2f7f896fe093965196a221 /src/libs/utils/settingsaccessor.cpp
parentbb59dfd636cea3986b0f6a764871d0c2732d4739 (diff)
Utils: Introduce variantFromStore and storeFromVariant
These are functional replacements for QVariant::fromValue(QVariantMap) (or QVariant::fromValue(Store)) and QVariant::toMap() (or QVariant::toValue<Store>()) We will have a few code paths in the end that need to explicitly operarate on both QVariantMap and Store (e.g. actual reading/writing to keep format compatibility etc), so these can't in the end be simple to/fromValue(OneType) but need an internal 'if' or such. Change-Id: I954f3cb24fa8fe123162b72bbd25d891dd19b768 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Diffstat (limited to 'src/libs/utils/settingsaccessor.cpp')
-rw-r--r--src/libs/utils/settingsaccessor.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/libs/utils/settingsaccessor.cpp b/src/libs/utils/settingsaccessor.cpp
index 06dd1354c3..3bd6f227e3 100644
--- a/src/libs/utils/settingsaccessor.cpp
+++ b/src/libs/utils/settingsaccessor.cpp
@@ -388,7 +388,7 @@ Store VersionUpgrader::renameKeys(const QList<Change> &changes, Store map) const
while (i != map.end()) {
QVariant v = i.value();
if (v.type() == QVariant::Map)
- i.value() = QVariant::fromValue(renameKeys(changes, v.value<Store>()));
+ i.value() = variantFromStore(renameKeys(changes, storeFromVariant(v)));
++i;
}
@@ -639,7 +639,7 @@ MergingSettingsAccessor::mergeSettings(const SettingsAccessor::RestoreData &main
= [this](const SettingsMergeData &global, const SettingsMergeData &local) {
return merge(global, local);
};
- const Store result = mergeQVariantMaps(main.data, secondary.data, mergeFunction).value<Store>();
+ const Store result = storeFromVariant(mergeQVariantMaps(main.data, secondary.data, mergeFunction));
// Update from the base version to Creator's version.
return RestoreData(main.path, postprocessMerge(main.data, secondary.data, result));
@@ -720,15 +720,15 @@ static QVariant mergeQVariantMapsRecursion(const Store &mainTree, const Store &s
if (kv.second.type() == QVariant::Map) {
const Key newKeyPrefix = keyPrefix + kv.first + '/';
kv.second = mergeQVariantMapsRecursion(mainTree, secondaryTree, newKeyPrefix,
- kv.second.value<Store>(),
- secondarySubtree.value(kv.first).value<Store>(),
+ storeFromVariant(kv.second),
+ storeFromVariant(secondarySubtree.value(kv.first)),
merge);
}
if (!kv.second.isNull())
result.insert(kv.first, kv.second);
}
- return QVariant::fromValue(result);
+ return variantFromStore(result);
}
QVariant mergeQVariantMaps(const Store &mainTree, const Store &secondaryTree,