diff options
Diffstat (limited to 'src/libs/utils/store.cpp')
-rw-r--r-- | src/libs/utils/store.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libs/utils/store.cpp b/src/libs/utils/store.cpp index 37f939f5a8..fa8d4232c0 100644 --- a/src/libs/utils/store.cpp +++ b/src/libs/utils/store.cpp @@ -190,4 +190,20 @@ void storeToSettings(const Key &groupKey, QtcSettings *s, const Store &store) s->endGroup(); } +void storeToSettingsWithDefault(const Key &groupKey, + QtcSettings *s, + const Store &store, + const Store &defaultStore) +{ + QTC_ASSERT(store.size() == defaultStore.size(), storeToSettings(groupKey, s, store); return); + + s->beginGroup(groupKey); + for (auto it = store.begin(), defaultIt = defaultStore.begin(), end = store.end(); it != end; + ++it, ++defaultIt) + s->setValueWithDefault(it.key(), + mapEntryFromStoreEntry(it.value()), + mapEntryFromStoreEntry(defaultIt.value())); + s->endGroup(); +} + } // Utils |