Option to show only unmuted counter on folders

This commit is contained in:
Eric Kotato 2020-03-30 09:00:15 +03:00
parent d66325b45c
commit 20355dd456
4 changed files with 24 additions and 7 deletions

View file

@ -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();

View file

@ -321,4 +321,4 @@ bool gShowTopBarUserpic = false;
int gCustomAppIcon = 0;
int gDefaultFilterId = 0;
bool gUnmutedFilterCounterOnly = false;

View file

@ -251,3 +251,4 @@ DeclareSetting(bool, ShowTopBarUserpic);
DeclareSetting(int, CustomAppIcon);
DeclareSetting(int, DefaultFilterId);
DeclareSetting(bool, UnmutedFilterCounterOnly);

View file

@ -213,12 +213,22 @@ base::unique_qptr<Ui::SideBarButton> 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);