Files
GenericQtClientCore/data/settingshandler.cpp

88 lines
2.0 KiB
C++
Raw Permalink Normal View History

2025-10-31 15:24:06 +01:00
#include "settingshandler.h"
#include <QSettings>
QVariantMap SettingsHandler::getSettings(QString group) {
QSettings settings;
QVariantMap result;
if (!group.isEmpty()) {
settings.beginGroup(group);
}
foreach (QString key, settings.allKeys()) {
result.insert(key, settings.value(key));
}
if (!group.isEmpty()) {
settings.endGroup();
}
return result;
}
void SettingsHandler::saveSettings(QVariantMap settingMap, QString group) {
qInfo() << "saving settings...";
QSettings settings;
if (!group.isEmpty()) {
settings.beginGroup(group);
}
foreach (QString key, settingMap.keys()) {
// qDebug() << "saving:" << key << "-" << settingMap.value(key);
settings.setValue(key, settingMap.value(key));
}
if (!group.isEmpty()) {
settings.endGroup();
}
settings.sync();
}
void SettingsHandler::deleteSettings(QStringList keys, QString group) {
qInfo() << "deleting settings...";
QSettings settings;
if (!group.isEmpty()) {
qDebug() << "starting group:" << group;
settings.beginGroup(group);
}
foreach (QString key, keys) {
qDebug() << "removing:" << key;
settings.remove(key);
}
if (!group.isEmpty()) {
settings.endGroup();
}
settings.sync();
}
QVariantMap SettingsHandler::getChangeset(QVariantMap newSettings, QString group) {
const QVariantMap oldSettings = getSettings(group);
QVariantMap result;
for (QVariantMap::const_iterator iter = newSettings.begin(); iter != newSettings.end(); ++iter) {
qDebug() << iter.key() << iter.value();
QString key = iter.key();
QVariant newValue = iter.value();
QVariant oldValue = oldSettings.value(key);
if (oldValue == newValue) {
qInfo() << "oldValue == newValue -> ignoring...";
} else {
const QString debugString =
QString("oldValue != newValue -> adding '%1' to changeset...").arg(key);
qInfo() << debugString;
result.insert(key, newValue);
}
}
return result;
}
2025-10-31 15:24:06 +01:00
SettingsHandler::SettingsHandler() {}