mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-06 00:05:02 -05:00
45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
#include <QCryptographicHash>
|
|
#include <QByteArray>
|
|
|
|
#include "o0settingsstore.h"
|
|
|
|
static quint64 getHash(const QString &encryptionKey) {
|
|
return QCryptographicHash::hash(encryptionKey.toLatin1(), QCryptographicHash::Sha1).toULongLong();
|
|
}
|
|
|
|
O0SettingsStore::O0SettingsStore(const QString &encryptionKey, QObject *parent):
|
|
O0AbstractStore(parent), crypt_(getHash(encryptionKey)) {
|
|
settings_ = new QSettings(this);
|
|
}
|
|
|
|
O0SettingsStore::O0SettingsStore(QSettings *settings, const QString &encryptionKey, QObject *parent):
|
|
O0AbstractStore(parent), crypt_(getHash(encryptionKey)) {
|
|
settings_ = settings;
|
|
settings_->setParent(this);
|
|
}
|
|
|
|
QString O0SettingsStore::groupKey() const {
|
|
return groupKey_;
|
|
}
|
|
|
|
void O0SettingsStore::setGroupKey(const QString &groupKey) {
|
|
if (groupKey_ == groupKey) {
|
|
return;
|
|
}
|
|
groupKey_ = groupKey;
|
|
Q_EMIT groupKeyChanged();
|
|
}
|
|
|
|
QString O0SettingsStore::value(const QString &key, const QString &defaultValue) {
|
|
QString fullKey = groupKey_.isEmpty() ? key : (groupKey_ + '/' + key);
|
|
if (!settings_->contains(fullKey)) {
|
|
return defaultValue;
|
|
}
|
|
return crypt_.decryptToString(settings_->value(fullKey).toString());
|
|
}
|
|
|
|
void O0SettingsStore::setValue(const QString &key, const QString &value) {
|
|
QString fullKey = groupKey_.isEmpty() ? key : (groupKey_ + '/' + key);
|
|
settings_->setValue(fullKey, crypt_.encryptToString(value));
|
|
}
|