summary refs log tree commit diff
path: root/src/UserSettingsPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/UserSettingsPage.cpp')
-rw-r--r--src/UserSettingsPage.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp

index ab6ac492..ab1e442c 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp
@@ -19,7 +19,6 @@ #include <QResizeEvent> #include <QScrollArea> #include <QScroller> -#include <QSettings> #include <QSpinBox> #include <QStandardPaths> #include <QString> @@ -63,7 +62,6 @@ UserSettings::initialize(std::optional<QString> profile) void UserSettings::load(std::optional<QString> profile) { - QSettings settings; tray_ = settings.value("user/window/tray", false).toBool(); startInTray_ = settings.value("user/window/start_in_tray", false).toBool(); @@ -126,6 +124,7 @@ UserSettings::load(std::optional<QString> profile) .toBool(); onlyShareKeysWithVerifiedUsers_ = settings.value(prefix + "user/only_share_keys_with_verified_users", false).toBool(); + useOnlineKeyBackup_ = settings.value(prefix + "user/online_key_backup", true).toBool(); disableCertificateValidation_ = settings.value("disable_certificate_validation", false).toBool(); @@ -428,6 +427,17 @@ UserSettings::setShareKeysWithTrustedUsers(bool shareKeys) } void +UserSettings::setUseOnlineKeyBackup(bool useBackup) +{ + if (useBackup == useOnlineKeyBackup_) + return; + + useOnlineKeyBackup_ = useBackup; + emit useOnlineKeyBackupChanged(useBackup); + save(); +} + +void UserSettings::setRingtone(QString ringtone) { if (ringtone == ringtone_) @@ -601,7 +611,6 @@ UserSettings::applyTheme() void UserSettings::save() { - QSettings settings; settings.beginGroup("user"); settings.beginGroup("window"); @@ -667,6 +676,7 @@ UserSettings::save() shareKeysWithTrustedUsers_); settings.setValue(prefix + "user/only_share_keys_with_verified_users", onlyShareKeysWithVerifiedUsers_); + settings.setValue(prefix + "user/online_key_backup", useOnlineKeyBackup_); settings.setValue("disable_certificate_validation", disableCertificateValidation_); @@ -728,6 +738,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge privacyScreen_ = new Toggle{this}; onlyShareKeysWithVerifiedUsers_ = new Toggle(this); shareKeysWithTrustedUsers_ = new Toggle(this); + useOnlineKeyBackup_ = new Toggle(this); groupViewToggle_ = new Toggle{this}; timelineButtonsToggle_ = new Toggle{this}; typingNotifications_ = new Toggle{this}; @@ -759,6 +770,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge privacyScreen_->setChecked(settings_->privacyScreen()); onlyShareKeysWithVerifiedUsers_->setChecked(settings_->onlyShareKeysWithVerifiedUsers()); shareKeysWithTrustedUsers_->setChecked(settings_->shareKeysWithTrustedUsers()); + useOnlineKeyBackup_->setChecked(settings_->useOnlineKeyBackup()); groupViewToggle_->setChecked(settings_->groupView()); timelineButtonsToggle_->setChecked(settings_->buttonsInTimeline()); typingNotifications_->setChecked(settings_->typingNotifications()); @@ -1036,6 +1048,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge shareKeysWithTrustedUsers_, tr("Automatically replies to key requests from other users, if they are verified, " "even if that device shouldn't have access to those keys otherwise.")); + boxWrap(tr("Online Key Backup"), + useOnlineKeyBackup_, + tr("Download message encryption keys from and upload to the encrypted online key " + "backup.")); formLayout_->addRow(new HorizontalLine{this}); formLayout_->addRow(sessionKeysLabel, sessionKeysLayout); formLayout_->addRow(crossSigningKeysLabel, crossSigningKeysLayout); @@ -1211,6 +1227,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge settings_->setShareKeysWithTrustedUsers(enabled); }); + connect(useOnlineKeyBackup_, &Toggle::toggled, this, [this](bool enabled) { + settings_->setUseOnlineKeyBackup(enabled); + }); + connect(avatarCircles_, &Toggle::toggled, this, [this](bool enabled) { settings_->setAvatarCircles(enabled); }); @@ -1301,6 +1321,7 @@ UserSettingsPage::showEvent(QShowEvent *) privacyScreen_->setState(settings_->privacyScreen()); onlyShareKeysWithVerifiedUsers_->setState(settings_->onlyShareKeysWithVerifiedUsers()); shareKeysWithTrustedUsers_->setState(settings_->shareKeysWithTrustedUsers()); + useOnlineKeyBackup_->setState(settings_->useOnlineKeyBackup()); avatarCircles_->setState(settings_->avatarCircles()); typingNotifications_->setState(settings_->typingNotifications()); sortByImportance_->setState(settings_->sortByImportance());