From 3218c309832430ed4fbf5647d14c215d64c747fb Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 16 Sep 2024 13:27:39 +0400 Subject: [PATCH] Add "Include muted chats in folder counters". --- Telegram/Resources/langs/lang.strings | 1 + Telegram/SourceFiles/core/core_settings.cpp | 14 +++++++--- Telegram/SourceFiles/core/core_settings.h | 7 +++++ .../settings/settings_notifications.cpp | 22 +++++++++++++++ .../window/window_filters_menu.cpp | 28 ++++++++++++++----- .../SourceFiles/window/window_filters_menu.h | 1 + 6 files changed, 62 insertions(+), 11 deletions(-) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 42cafa6f9a..e42ed74853 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -508,6 +508,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_settings_alert_linux" = "Draw attention to the window"; "lng_settings_badge_title" = "Badge counter"; "lng_settings_include_muted" = "Include muted chats in unread count"; +"lng_settings_include_muted_folders" = "Include muted chats in folder counters"; "lng_settings_count_unread" = "Count unread messages"; "lng_settings_events_title" = "Events"; "lng_settings_events_joined" = "Contact joined Telegram"; diff --git a/Telegram/SourceFiles/core/core_settings.cpp b/Telegram/SourceFiles/core/core_settings.cpp index f876ac3c42..5f304356dc 100644 --- a/Telegram/SourceFiles/core/core_settings.cpp +++ b/Telegram/SourceFiles/core/core_settings.cpp @@ -221,7 +221,8 @@ QByteArray Settings::serialize() const { + Serialize::stringSize(noWarningExtensions) + Serialize::stringSize(_customFontFamily) + sizeof(qint32) * 3 - + Serialize::bytearraySize(_tonsiteStorageToken); + + Serialize::bytearraySize(_tonsiteStorageToken) + + sizeof(qint32); auto result = QByteArray(); result.reserve(size); @@ -375,7 +376,8 @@ QByteArray Settings::serialize() const { 1000000)) << qint32(_systemUnlockEnabled ? 1 : 0) << qint32(!_weatherInCelsius ? 0 : *_weatherInCelsius ? 1 : 2) - << _tonsiteStorageToken; + << _tonsiteStorageToken + << qint32(_includeMutedCounterFolders ? 1 : 0); } Ensures(result.size() == size); @@ -423,6 +425,7 @@ void Settings::addFromSerialized(const QByteArray &serialized) { qint32 sendFilesWay = _sendFilesWay.serialize(); qint32 sendSubmitWay = static_cast(_sendSubmitWay.current()); qint32 includeMutedCounter = _includeMutedCounter ? 1 : 0; + qint32 includeMutedCounterFolders = _includeMutedCounterFolders ? 1 : 0; qint32 countUnreadMessages = _countUnreadMessages ? 1 : 0; std::optional noWarningExtensions; qint32 legacyExeLaunchWarning = 1; @@ -804,6 +807,9 @@ void Settings::addFromSerialized(const QByteArray &serialized) { if (!stream.atEnd()) { stream >> tonsiteStorageToken; } + if (!stream.atEnd()) { + stream >> includeMutedCounterFolders; + } if (stream.status() != QDataStream::Ok) { LOG(("App Error: " "Bad data for Core::Settings::constructFromSerialized()")); @@ -844,6 +850,7 @@ void Settings::addFromSerialized(const QByteArray &serialized) { case ScreenCorner::BottomLeft: _notificationsCorner = uncheckedNotificationsCorner; break; } _includeMutedCounter = (includeMutedCounter == 1); + _includeMutedCounterFolders = (includeMutedCounterFolders == 1); _countUnreadMessages = (countUnreadMessages == 1); _notifyAboutPinned = (notifyAboutPinned == 1); _autoLock = autoLock; @@ -864,8 +871,6 @@ void Settings::addFromSerialized(const QByteArray &serialized) { case Ui::InputSubmitSettings::Enter: case Ui::InputSubmitSettings::CtrlEnter: _sendSubmitWay = uncheckedSendSubmitWay; break; } - _includeMutedCounter = (includeMutedCounter == 1); - _countUnreadMessages = (countUnreadMessages == 1); if (noWarningExtensions) { const auto list = noWarningExtensions->mid(0, 10240) .split(' ', Qt::SkipEmptyParts) @@ -1345,6 +1350,7 @@ void Settings::resetOnLastLogout() { //_notificationsCount = 3; //_notificationsCorner = ScreenCorner::BottomRight; _includeMutedCounter = true; + _includeMutedCounterFolders = true; _countUnreadMessages = true; _notifyAboutPinned = true; //_autoLock = 3600; diff --git a/Telegram/SourceFiles/core/core_settings.h b/Telegram/SourceFiles/core/core_settings.h index 06f7475e59..ab5f999a65 100644 --- a/Telegram/SourceFiles/core/core_settings.h +++ b/Telegram/SourceFiles/core/core_settings.h @@ -238,6 +238,12 @@ public: void setIncludeMutedCounter(bool value) { _includeMutedCounter = value; } + [[nodiscard]] bool includeMutedCounterFolders() const { + return _includeMutedCounterFolders; + } + void setIncludeMutedCounterFolders(bool value) { + _includeMutedCounterFolders = value; + } [[nodiscard]] bool countUnreadMessages() const { return _countUnreadMessages; } @@ -951,6 +957,7 @@ private: int _notificationsCount = 3; ScreenCorner _notificationsCorner = ScreenCorner::BottomRight; bool _includeMutedCounter = true; + bool _includeMutedCounterFolders = true; bool _countUnreadMessages = true; rpl::variable _notifyAboutPinned = true; int _autoLock = 3600; diff --git a/Telegram/SourceFiles/settings/settings_notifications.cpp b/Telegram/SourceFiles/settings/settings_notifications.cpp index 1a04419be3..cf3c759afd 100644 --- a/Telegram/SourceFiles/settings/settings_notifications.cpp +++ b/Telegram/SourceFiles/settings/settings_notifications.cpp @@ -35,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_domain.h" #include "api/api_authorizations.h" #include "api/api_ringtones.h" +#include "data/data_chat_filters.h" #include "data/data_session.h" #include "data/data_document.h" #include "data/notify/data_notify_settings.h" @@ -1085,6 +1086,16 @@ void SetupNotificationsContent( tr::lng_settings_include_muted(), st::settingsButtonNoIcon)); muted->toggleOn(rpl::single(settings.includeMutedCounter())); + const auto mutedFolders = session->data().chatsFilters().has() + ? container->add(object_ptr