#include "settingshandler.h" #include 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; } SettingsHandler::SettingsHandler() {}