#include "settings.h" #include #include using namespace QMatrixClient; void Settings::setValue(const QString& key, const QVariant& value) { // qCDebug() << "Setting" << key << "to" << value; QSettings::setValue(key, value); } QVariant Settings::value(const QString& key, const QVariant& defaultValue) const { return QSettings::value(key, defaultValue); } void SettingsGroup::setValue(const QString& key, const QVariant& value) { Settings::setValue(groupPath + "/" + key, value); } bool SettingsGroup::contains(const QString& key) const { return Settings::contains(groupPath + "/" + key); } QVariant SettingsGroup::value(const QString& key, const QVariant& defaultValue) const { return Settings::value(groupPath + "/" + key, defaultValue); } QString SettingsGroup::group() const { return groupPath; } QStringList SettingsGroup::childGroups() const { const_cast(this)->beginGroup(groupPath); QStringList l { Settings::childGroups() }; const_cast(this)->endGroup(); return l; } void SettingsGroup::remove(const QString& key) { QString fullKey { groupPath }; if (!key.isEmpty()) fullKey += "/" + key; Settings::remove(fullKey); } bool AccountSettings::keepLoggedIn() const { return value("keep_logged_in", false).toBool(); } void AccountSettings::setKeepLoggedIn(bool newSetting) { setValue("keep_logged_in", newSetting); } QUrl AccountSettings::homeserver() const { return QUrl::fromUserInput(value("homeserver").toString()); } void AccountSettings::setHomeserver(const QUrl& url) { setValue("homeserver", url.toString()); } QString AccountSettings::userId() const { return group().section('/', -1); } QString AccountSettings::deviceId() const { return value("device_id").toString(); } void AccountSettings::setDeviceId(const QString& deviceId) { setValue("device_id", deviceId); } QString AccountSettings::deviceName() const { return value("device_name").toString(); } void AccountSettings::setDeviceName(const QString& deviceName) { setValue("device_name", deviceName); } QString AccountSettings::accessToken() const { return value("access_token").toString(); } void AccountSettings::setAccessToken(const QString& accessToken) { setValue("access_token", accessToken); } void AccountSettings::clearAccessToken() { remove("access_token"); }