[Improvement] Allow to disable notification sound from tray

This commit is contained in:
Eric Kotato 2022-09-10 20:32:35 +03:00 committed by Eric Kotato
parent 79105297b3
commit c31c3e0108
3 changed files with 23 additions and 0 deletions

View file

@ -59,6 +59,8 @@
"ktg_settings_ffmpeg_multithread": "Multithread video decoding",
"ktg_settings_ffmpeg_multithread_about": "When enabled, CPU and RAM consumption is higher, video decodes faster. When disabled, CPU and RAM consumption is lower, video decodes slower. The more CPU cores you have, the more RAM consumption you have when this option is enabled. You can set exact number of threads in the JSON configuration file.",
"ktg_settings_adaptive_bubbles": "Adaptive bubbles",
"ktg_settings_disable_sound_from_tray": "Disable sound",
"ktg_settings_enable_sound_from_tray": "Enable sound",
"ktg_settings_recent_stickers_limit": {
"zero": "Recent stickers: show {count} stickers",
"one": "Recent stickers: show {count} sticker",

View file

@ -94,6 +94,17 @@ void Tray::rebuildMenu() {
_tray.addAction(
std::move(notificationsText),
[=] { toggleSoundNotifications(); });
auto soundText = _textUpdates.events(
) | rpl::map([=] {
return Core::App().settings().soundNotify()
? ktr("ktg_settings_disable_sound_from_tray")
: ktr("ktg_settings_enable_sound_from_tray");
});
_tray.addAction(
std::move(soundText),
[=] { toggleSound(); });
}
_tray.addAction(rktr("ktg_quit_from_tray"), [] { Core::Quit(); });
@ -139,6 +150,15 @@ rpl::producer<> Tray::hideToTrayRequests() const {
}
}
void Tray::toggleSound() {
auto &settings = Core::App().settings();
settings.setSoundNotify(!settings.soundNotify());
Core::App().saveSettingsDelayed();
using Change = Window::Notifications::ChangeType;
auto &notifications = Core::App().notifications();
notifications.notifySettingsChanged(Change::SoundEnabled);
}
void Tray::toggleSoundNotifications() {
auto soundNotifyChanged = false;
auto flashBounceNotifyChanged = false;

View file

@ -27,6 +27,7 @@ public:
private:
void rebuildMenu();
void toggleSound();
void toggleSoundNotifications();
Platform::Tray _tray;