Notification sound tray menu option

This commit is contained in:
Eric Kotato 2020-02-23 02:41:19 +03:00
parent c06486d2ce
commit 6116188e8b
5 changed files with 35 additions and 1 deletions

View file

@ -2391,4 +2391,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"ktg_settings_adaptive_bubbles" = "Adaptive bubbles";
"ktg_settings_disable_sound_from_tray" = "Disable sound";
"ktg_settings_enable_sound_from_tray" = "Enable sound";
// Keys finished

View file

@ -88,5 +88,7 @@
"ktg_settings_call_confirm": "Подтверждение перед звонком",
"ktg_call_sure": "Вы уверены, что хотите позвонить этому пользователю?",
"ktg_call_button": "Позвонить",
"ktg_settings_adaptive_bubbles": "Адаптивные пузырьки сообщений"
"ktg_settings_adaptive_bubbles": "Адаптивные пузырьки сообщений",
"ktg_settings_disable_sound_from_tray": "Отключить звук",
"ktg_settings_enable_sound_from_tray": "Включить звук"
}

View file

@ -142,11 +142,16 @@ void MainWindow::createTrayIconMenu() {
? tr::lng_disable_notifications_from_tray(tr::now)
: tr::lng_enable_notifications_from_tray(tr::now);
auto soundActionText = Global::SoundNotify()
? tr::ktg_settings_disable_sound_from_tray(tr::now)
: tr::ktg_settings_enable_sound_from_tray(tr::now);
if (Platform::IsLinux()) {
trayIconMenu->addAction(tr::ktg_open_from_tray(tr::now), this, SLOT(showFromTray()));
}
trayIconMenu->addAction(tr::lng_minimize_to_tray(tr::now), this, SLOT(minimizeToTray()));
trayIconMenu->addAction(notificationActionText, this, SLOT(toggleDisplayNotifyFromTray()));
trayIconMenu->addAction(soundActionText, this, SLOT(toggleSoundNotifyFromTray()));
trayIconMenu->addAction(tr::ktg_quit_from_tray(tr::now), this, SLOT(quitFromTray()));
initTrayMenuHook();
@ -613,6 +618,12 @@ void MainWindow::updateTrayMenu(bool force) {
: tr::lng_enable_notifications_from_tray(tr::now);
notificationAction->setText(notificationActionText);
auto soundAction = actions.at(Platform::IsLinux() ? 3 : 2);
auto soundActionText = Global::SoundNotify()
? tr::ktg_settings_disable_sound_from_tray(tr::now)
: tr::ktg_settings_enable_sound_from_tray(tr::now);
soundAction->setText(soundActionText);
psTrayMenuUpdated();
}
@ -782,6 +793,22 @@ void MainWindow::toggleDisplayNotifyFromTray() {
}
}
void MainWindow::toggleSoundNotifyFromTray() {
if (Core::App().locked()) {
if (!isActive()) showFromTray();
Ui::show(Box<InformBox>(tr::lng_passcode_need_unblock(tr::now)));
return;
}
if (!account().sessionExists()) {
return;
}
Global::SetSoundNotify(!Global::SoundNotify());
Local::writeUserSettings();
account().session().notifications().settingsChanged().notify(
Window::Notifications::ChangeType::SoundEnabled);
}
void MainWindow::closeEvent(QCloseEvent *e) {
if (Core::Sandbox::Instance().isSavingSession()) {
e->accept();

View file

@ -135,6 +135,7 @@ public slots:
void quitFromTray();
void showFromTray(QSystemTrayIcon::ActivationReason reason = QSystemTrayIcon::Unknown);
void toggleDisplayNotifyFromTray();
void toggleSoundNotifyFromTray();
void onClearFinished(int task, void *manager);
void onClearFailed(int task, void *manager);

View file

@ -1113,6 +1113,7 @@ bool _readSetting(quint32 blockId, QDataStream &stream, int version, ReadSetting
if (!_checkStreamStatus(stream)) return false;
Global::SetSoundNotify(v == 1);
if (App::wnd()) App::wnd()->updateTrayMenu();
} break;
case dbiAutoDownloadOld: {