Option to show only unmuted counter on folders
This commit is contained in:
parent
d66325b45c
commit
20355dd456
4 changed files with 24 additions and 7 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -321,4 +321,4 @@ bool gShowTopBarUserpic = false;
|
|||
int gCustomAppIcon = 0;
|
||||
|
||||
int gDefaultFilterId = 0;
|
||||
|
||||
bool gUnmutedFilterCounterOnly = false;
|
||||
|
|
|
|||
|
|
@ -251,3 +251,4 @@ DeclareSetting(bool, ShowTopBarUserpic);
|
|||
DeclareSetting(int, CustomAppIcon);
|
||||
|
||||
DeclareSetting(int, DefaultFilterId);
|
||||
DeclareSetting(bool, UnmutedFilterCounterOnly);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue