diff --git a/Telegram/SourceFiles/core/kotato_settings.cpp b/Telegram/SourceFiles/core/kotato_settings.cpp index 706684c78..2a3df30d2 100644 --- a/Telegram/SourceFiles/core/kotato_settings.cpp +++ b/Telegram/SourceFiles/core/kotato_settings.cpp @@ -337,6 +337,10 @@ bool Manager::readCustomFile() { ReadIntOption(settings, "default_folder_id", [&](auto v) { cSetDefaultFilterId(v); }); + + ReadBoolOption(settings, "folder_counter_unmuted_only", [&](auto v) { + cSetUnmutedFilterCounterOnly(v); + }); return true; } @@ -382,6 +386,7 @@ void Manager::writeDefaultFile() { settings.insert(qsl("always_show_top_userpic"), cShowTopBarUserpic()); settings.insert(qsl("custom_app_icon"), cCustomAppIcon()); settings.insert(qsl("default_folder_id"), cDefaultFilterId()); + settings.insert(qsl("folder_counter_unmuted_only"), cUnmutedFilterCounterOnly()); auto settingsScales = QJsonArray(); settings.insert(qsl("scales"), settingsScales); @@ -448,6 +453,7 @@ void Manager::writeCurrentSettings() { settings.insert(qsl("always_show_top_userpic"), cShowTopBarUserpic()); settings.insert(qsl("custom_app_icon"), cCustomAppIcon()); settings.insert(qsl("default_folder_id"), cDefaultFilterId()); + settings.insert(qsl("folder_counter_unmuted_only"), cUnmutedFilterCounterOnly()); auto settingsScales = QJsonArray(); auto currentScales = cInterfaceScales(); diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index 1a508f3a2..f9da21840 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -321,4 +321,4 @@ bool gShowTopBarUserpic = false; int gCustomAppIcon = 0; int gDefaultFilterId = 0; - +bool gUnmutedFilterCounterOnly = false; diff --git a/Telegram/SourceFiles/settings.h b/Telegram/SourceFiles/settings.h index 8dccab5e1..954100a3a 100644 --- a/Telegram/SourceFiles/settings.h +++ b/Telegram/SourceFiles/settings.h @@ -251,3 +251,4 @@ DeclareSetting(bool, ShowTopBarUserpic); DeclareSetting(int, CustomAppIcon); DeclareSetting(int, DefaultFilterId); +DeclareSetting(bool, UnmutedFilterCounterOnly); diff --git a/Telegram/SourceFiles/window/window_filters_menu.cpp b/Telegram/SourceFiles/window/window_filters_menu.cpp index beca13eba..e94b839b5 100644 --- a/Telegram/SourceFiles/window/window_filters_menu.cpp +++ b/Telegram/SourceFiles/window/window_filters_menu.cpp @@ -213,12 +213,22 @@ base::unique_qptr FiltersMenu::prepareButton( ) | rpl::start_with_next([=](const Dialogs::UnreadState &state) { const auto count = (state.chats + state.marks); const auto muted = (state.chatsMuted + state.marksMuted); - const auto string = !count - ? QString() - : (count > 99) - ? "99+" - : QString::number(count); - raw->setBadge(string, count == muted); + if (cUnmutedFilterCounterOnly()) { + const auto unmuted = count - muted; + const auto string = !unmuted + ? QString() + : (unmuted > 99) + ? "99+" + : QString::number(unmuted); + raw->setBadge(string, false); + } else { + const auto string = !count + ? QString() + : (count > 99) + ? "99+" + : QString::number(count); + raw->setBadge(string, count == muted); + } }, raw->lifetime()); } raw->setActive(_session->activeChatsFilterCurrent() == id);