|
|
|
@ -95,6 +95,8 @@ UserSettings::load(std::optional<QString> profile) |
|
|
|
|
font_ = settings.value("user/font_family", "default").toString(); |
|
|
|
|
avatarCircles_ = settings.value("user/avatar_circles", true).toBool(); |
|
|
|
|
decryptSidebar_ = settings.value("user/decrypt_sidebar", true).toBool(); |
|
|
|
|
privacyScreen_ = settings.value("user/privacy_screen", false).toBool(); |
|
|
|
|
privacyScreenTimeout_ = settings.value("user/privacy_screen_timeout", 0).toInt(); |
|
|
|
|
shareKeysWithTrustedUsers_ = |
|
|
|
|
settings.value("user/share_keys_with_trusted_users", true).toBool(); |
|
|
|
|
mobileMode_ = settings.value("user/mobile_mode", false).toBool(); |
|
|
|
@ -284,6 +286,28 @@ UserSettings::setDecryptSidebar(bool state) |
|
|
|
|
save(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
UserSettings::setPrivacyScreen(bool state) |
|
|
|
|
{ |
|
|
|
|
if (state == privacyScreen_) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
privacyScreen_ = state; |
|
|
|
|
emit privacyScreenChanged(state); |
|
|
|
|
save(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
UserSettings::setPrivacyScreenTimeout(int state) |
|
|
|
|
{ |
|
|
|
|
if (state == privacyScreenTimeout_) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
privacyScreenTimeout_ = state; |
|
|
|
|
emit privacyScreenTimeoutChanged(state); |
|
|
|
|
save(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
UserSettings::setFontSize(double size) |
|
|
|
|
{ |
|
|
|
@ -531,6 +555,8 @@ UserSettings::save() |
|
|
|
|
|
|
|
|
|
settings.setValue("avatar_circles", avatarCircles_); |
|
|
|
|
settings.setValue("decrypt_sidebar", decryptSidebar_); |
|
|
|
|
settings.setValue("privacy_screen", privacyScreen_); |
|
|
|
|
settings.setValue("privacy_screen_timeout", privacyScreenTimeout_); |
|
|
|
|
settings.setValue("share_keys_with_trusted_users", shareKeysWithTrustedUsers_); |
|
|
|
|
settings.setValue("mobile_mode", mobileMode_); |
|
|
|
|
settings.setValue("font_size", baseFontSize_); |
|
|
|
@ -619,6 +645,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge |
|
|
|
|
startInTrayToggle_ = new Toggle{this}; |
|
|
|
|
avatarCircles_ = new Toggle{this}; |
|
|
|
|
decryptSidebar_ = new Toggle(this); |
|
|
|
|
privacyScreen_ = new Toggle{this}; |
|
|
|
|
shareKeysWithTrustedUsers_ = new Toggle(this); |
|
|
|
|
groupViewToggle_ = new Toggle{this}; |
|
|
|
|
timelineButtonsToggle_ = new Toggle{this}; |
|
|
|
@ -642,11 +669,13 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge |
|
|
|
|
cameraResolutionCombo_ = new QComboBox{this}; |
|
|
|
|
cameraFrameRateCombo_ = new QComboBox{this}; |
|
|
|
|
timelineMaxWidthSpin_ = new QSpinBox{this}; |
|
|
|
|
privacyScreenTimeout_ = new QSpinBox{this}; |
|
|
|
|
|
|
|
|
|
trayToggle_->setChecked(settings_->tray()); |
|
|
|
|
startInTrayToggle_->setChecked(settings_->startInTray()); |
|
|
|
|
avatarCircles_->setChecked(settings_->avatarCircles()); |
|
|
|
|
decryptSidebar_->setChecked(settings_->decryptSidebar()); |
|
|
|
|
privacyScreen_->setChecked(settings_->privacyScreen()); |
|
|
|
|
shareKeysWithTrustedUsers_->setChecked(settings_->shareKeysWithTrustedUsers()); |
|
|
|
|
groupViewToggle_->setChecked(settings_->groupView()); |
|
|
|
|
timelineButtonsToggle_->setChecked(settings_->buttonsInTimeline()); |
|
|
|
@ -666,6 +695,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge |
|
|
|
|
startInTrayToggle_->setDisabled(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!settings_->privacyScreen()) { |
|
|
|
|
privacyScreenTimeout_->setDisabled(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
avatarCircles_->setFixedSize(64, 48); |
|
|
|
|
|
|
|
|
|
auto uiLabel_ = new QLabel{tr("INTERFACE"), this}; |
|
|
|
@ -706,6 +739,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge |
|
|
|
|
timelineMaxWidthSpin_->setMaximum(100'000'000); |
|
|
|
|
timelineMaxWidthSpin_->setSingleStep(10); |
|
|
|
|
|
|
|
|
|
privacyScreenTimeout_->setMinimum(0); |
|
|
|
|
privacyScreenTimeout_->setMaximum(3600); |
|
|
|
|
privacyScreenTimeout_->setSingleStep(10); |
|
|
|
|
|
|
|
|
|
auto callsLabel = new QLabel{tr("CALLS"), this}; |
|
|
|
|
callsLabel->setFixedHeight(callsLabel->minimumHeight() + LayoutTopMargin); |
|
|
|
|
callsLabel->setAlignment(Qt::AlignBottom); |
|
|
|
@ -799,6 +836,13 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge |
|
|
|
|
decryptSidebar_, |
|
|
|
|
tr("Decrypt the messages shown in the sidebar.\nOnly affects messages in " |
|
|
|
|
"encrypted chats.")); |
|
|
|
|
boxWrap(tr("Encrypted chat privacy screen"), |
|
|
|
|
privacyScreen_, |
|
|
|
|
tr("When the window loses focus, the timeline will\nbe blurred.")); |
|
|
|
|
boxWrap(tr("Privacy screen timeout"), |
|
|
|
|
privacyScreenTimeout_, |
|
|
|
|
tr("Set timeout for how long after window loses\nfocus before the screen" |
|
|
|
|
" will be blurred.\nSet to 0 to blur immediately after focus loss.")); |
|
|
|
|
boxWrap(tr("Show buttons in timeline"), |
|
|
|
|
timelineButtonsToggle_, |
|
|
|
|
tr("Show buttons to quickly reply, react or access additional options next to each " |
|
|
|
@ -1057,7 +1101,15 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge |
|
|
|
|
|
|
|
|
|
connect(decryptSidebar_, &Toggle::toggled, this, [this](bool enabled) { |
|
|
|
|
settings_->setDecryptSidebar(enabled); |
|
|
|
|
emit decryptSidebarChanged(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
connect(privacyScreen_, &Toggle::toggled, this, [this](bool enabled) { |
|
|
|
|
settings_->setPrivacyScreen(enabled); |
|
|
|
|
if (enabled) { |
|
|
|
|
privacyScreenTimeout_->setEnabled(true); |
|
|
|
|
} else { |
|
|
|
|
privacyScreenTimeout_->setDisabled(true); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
connect(shareKeysWithTrustedUsers_, &Toggle::toggled, this, [this](bool enabled) { |
|
|
|
@ -1113,6 +1165,13 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge |
|
|
|
|
this, |
|
|
|
|
[this](int newValue) { settings_->setTimelineMaxWidth(newValue); }); |
|
|
|
|
|
|
|
|
|
connect(privacyScreenTimeout_, |
|
|
|
|
qOverload<int>(&QSpinBox::valueChanged), |
|
|
|
|
this, |
|
|
|
|
[this](int newValue) { |
|
|
|
|
settings_->setPrivacyScreenTimeout(newValue); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
connect( |
|
|
|
|
sessionKeysImportBtn, &QPushButton::clicked, this, &UserSettingsPage::importSessionKeys); |
|
|
|
|
|
|
|
|
@ -1146,6 +1205,7 @@ UserSettingsPage::showEvent(QShowEvent *) |
|
|
|
|
startInTrayToggle_->setState(settings_->startInTray()); |
|
|
|
|
groupViewToggle_->setState(settings_->groupView()); |
|
|
|
|
decryptSidebar_->setState(settings_->decryptSidebar()); |
|
|
|
|
privacyScreen_->setState(settings_->privacyScreen()); |
|
|
|
|
shareKeysWithTrustedUsers_->setState(settings_->shareKeysWithTrustedUsers()); |
|
|
|
|
avatarCircles_->setState(settings_->avatarCircles()); |
|
|
|
|
typingNotifications_->setState(settings_->typingNotifications()); |
|
|
|
@ -1160,6 +1220,7 @@ UserSettingsPage::showEvent(QShowEvent *) |
|
|
|
|
enlargeEmojiOnlyMessages_->setState(settings_->enlargeEmojiOnlyMessages()); |
|
|
|
|
deviceIdValue_->setText(QString::fromStdString(http::client()->device_id())); |
|
|
|
|
timelineMaxWidthSpin_->setValue(settings_->timelineMaxWidth()); |
|
|
|
|
privacyScreenTimeout_->setValue(settings_->privacyScreenTimeout()); |
|
|
|
|
|
|
|
|
|
WebRTCSession::instance().refreshDevices(); |
|
|
|
|
auto mics = |
|
|
|
|