aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/settingsutils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/utils/settingsutils.h')
-rw-r--r--src/libs/utils/settingsutils.h20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/libs/utils/settingsutils.h b/src/libs/utils/settingsutils.h
index 13a03c41de..38fec4c317 100644
--- a/src/libs/utils/settingsutils.h
+++ b/src/libs/utils/settingsutils.h
@@ -35,19 +35,16 @@ namespace Utils {
template <class SettingsClassT>
void fromSettings(const QString &postFix,
const QString &category,
- const QSettings *s,
+ QSettings *s,
SettingsClassT *obj)
{
QVariantMap map;
+ s->beginGroup(category + postFix);
const QStringList keys = s->allKeys();
for (const QString &key : keys)
map.insert(key, s->value(key));
-
- QString group = postFix;
- if (!category.isEmpty())
- group.insert(0, category);
- group += QLatin1Char('/');
- obj->fromMap(group, map);
+ s->endGroup();
+ obj->fromMap(map);
}
template <class SettingsClassT>
@@ -59,13 +56,12 @@ void toSettings(const QString &postFix,
QString group = postFix;
if (!category.isEmpty())
group.insert(0, category);
- group += QLatin1Char('/');
+ const QVariantMap map = obj->toMap();
- QVariantMap map;
- obj->toMap(group, &map);
- QVariantMap::const_iterator it = map.constBegin();
- for (; it != map.constEnd(); ++it)
+ s->beginGroup(group);
+ for (auto it = map.constBegin(), end = map.constEnd(); it != end; ++it)
s->setValue(it.key(), it.value());
+ s->endGroup();
}
} // Utils