diff --git a/Telegram/Resources/icons/filters_bots.png b/Telegram/Resources/icons/filters_bots.png new file mode 100644 index 000000000..590b15279 Binary files /dev/null and b/Telegram/Resources/icons/filters_bots.png differ diff --git a/Telegram/Resources/icons/filters_bots@2x.png b/Telegram/Resources/icons/filters_bots@2x.png new file mode 100644 index 000000000..c152af138 Binary files /dev/null and b/Telegram/Resources/icons/filters_bots@2x.png differ diff --git a/Telegram/Resources/icons/filters_bots@3x.png b/Telegram/Resources/icons/filters_bots@3x.png new file mode 100644 index 000000000..867e63a7d Binary files /dev/null and b/Telegram/Resources/icons/filters_bots@3x.png differ diff --git a/Telegram/Resources/icons/filters_bots_active.png b/Telegram/Resources/icons/filters_bots_active.png new file mode 100644 index 000000000..3342d8671 Binary files /dev/null and b/Telegram/Resources/icons/filters_bots_active.png differ diff --git a/Telegram/Resources/icons/filters_bots_active@2x.png b/Telegram/Resources/icons/filters_bots_active@2x.png new file mode 100644 index 000000000..6788eb795 Binary files /dev/null and b/Telegram/Resources/icons/filters_bots_active@2x.png differ diff --git a/Telegram/Resources/icons/filters_bots_active@3x.png b/Telegram/Resources/icons/filters_bots_active@3x.png new file mode 100644 index 000000000..7bf3a689d Binary files /dev/null and b/Telegram/Resources/icons/filters_bots_active@3x.png differ diff --git a/Telegram/Resources/icons/filters_channels.png b/Telegram/Resources/icons/filters_channels.png new file mode 100644 index 000000000..1c0c0601d Binary files /dev/null and b/Telegram/Resources/icons/filters_channels.png differ diff --git a/Telegram/Resources/icons/filters_channels@2x.png b/Telegram/Resources/icons/filters_channels@2x.png new file mode 100644 index 000000000..290d47fed Binary files /dev/null and b/Telegram/Resources/icons/filters_channels@2x.png differ diff --git a/Telegram/Resources/icons/filters_channels@3x.png b/Telegram/Resources/icons/filters_channels@3x.png new file mode 100644 index 000000000..e896f45df Binary files /dev/null and b/Telegram/Resources/icons/filters_channels@3x.png differ diff --git a/Telegram/Resources/icons/filters_channels_active.png b/Telegram/Resources/icons/filters_channels_active.png new file mode 100644 index 000000000..c76a77f8b Binary files /dev/null and b/Telegram/Resources/icons/filters_channels_active.png differ diff --git a/Telegram/Resources/icons/filters_channels_active@2x.png b/Telegram/Resources/icons/filters_channels_active@2x.png new file mode 100644 index 000000000..87b26cd9d Binary files /dev/null and b/Telegram/Resources/icons/filters_channels_active@2x.png differ diff --git a/Telegram/Resources/icons/filters_channels_active@3x.png b/Telegram/Resources/icons/filters_channels_active@3x.png new file mode 100644 index 000000000..535124d2a Binary files /dev/null and b/Telegram/Resources/icons/filters_channels_active@3x.png differ diff --git a/Telegram/Resources/icons/filters_groups.png b/Telegram/Resources/icons/filters_groups.png new file mode 100644 index 000000000..24d62f890 Binary files /dev/null and b/Telegram/Resources/icons/filters_groups.png differ diff --git a/Telegram/Resources/icons/filters_groups@2x.png b/Telegram/Resources/icons/filters_groups@2x.png new file mode 100644 index 000000000..00e515474 Binary files /dev/null and b/Telegram/Resources/icons/filters_groups@2x.png differ diff --git a/Telegram/Resources/icons/filters_groups@3x.png b/Telegram/Resources/icons/filters_groups@3x.png new file mode 100644 index 000000000..9f3ff16e5 Binary files /dev/null and b/Telegram/Resources/icons/filters_groups@3x.png differ diff --git a/Telegram/Resources/icons/filters_groups_active.png b/Telegram/Resources/icons/filters_groups_active.png new file mode 100644 index 000000000..a5a143946 Binary files /dev/null and b/Telegram/Resources/icons/filters_groups_active.png differ diff --git a/Telegram/Resources/icons/filters_groups_active@2x.png b/Telegram/Resources/icons/filters_groups_active@2x.png new file mode 100644 index 000000000..6f87b49e4 Binary files /dev/null and b/Telegram/Resources/icons/filters_groups_active@2x.png differ diff --git a/Telegram/Resources/icons/filters_groups_active@3x.png b/Telegram/Resources/icons/filters_groups_active@3x.png new file mode 100644 index 000000000..342825ff2 Binary files /dev/null and b/Telegram/Resources/icons/filters_groups_active@3x.png differ diff --git a/Telegram/Resources/icons/filters_private.png b/Telegram/Resources/icons/filters_private.png new file mode 100644 index 000000000..68924026e Binary files /dev/null and b/Telegram/Resources/icons/filters_private.png differ diff --git a/Telegram/Resources/icons/filters_private@2x.png b/Telegram/Resources/icons/filters_private@2x.png new file mode 100644 index 000000000..c39dc8d74 Binary files /dev/null and b/Telegram/Resources/icons/filters_private@2x.png differ diff --git a/Telegram/Resources/icons/filters_private@3x.png b/Telegram/Resources/icons/filters_private@3x.png new file mode 100644 index 000000000..42ce50320 Binary files /dev/null and b/Telegram/Resources/icons/filters_private@3x.png differ diff --git a/Telegram/Resources/icons/filters_private_active.png b/Telegram/Resources/icons/filters_private_active.png new file mode 100644 index 000000000..912ea878d Binary files /dev/null and b/Telegram/Resources/icons/filters_private_active.png differ diff --git a/Telegram/Resources/icons/filters_private_active@2x.png b/Telegram/Resources/icons/filters_private_active@2x.png new file mode 100644 index 000000000..c83948ad4 Binary files /dev/null and b/Telegram/Resources/icons/filters_private_active@2x.png differ diff --git a/Telegram/Resources/icons/filters_private_active@3x.png b/Telegram/Resources/icons/filters_private_active@3x.png new file mode 100644 index 000000000..2bf50ef6e Binary files /dev/null and b/Telegram/Resources/icons/filters_private_active@3x.png differ diff --git a/Telegram/SourceFiles/window/window.style b/Telegram/SourceFiles/window/window.style index 58080fa88..bbbd6c1fd 100644 --- a/Telegram/SourceFiles/window/window.style +++ b/Telegram/SourceFiles/window/window.style @@ -276,6 +276,22 @@ windowFiltersUnmuted: SideBarButton(windowFiltersButton) { icon: icon {{ "filters_unmuted", sideBarIconFg }}; iconActive: icon {{ "filters_unmuted_active", sideBarIconFgActive }}; } +windowFiltersBots: SideBarButton(windowFiltersButton) { + icon: icon {{ "filters_bots", sideBarIconFg }}; + iconActive: icon {{ "filters_bots_active", sideBarIconFgActive }}; +} +windowFiltersChannels: SideBarButton(windowFiltersButton) { + icon: icon {{ "filters_channels", sideBarIconFg }}; + iconActive: icon {{ "filters_channels_active", sideBarIconFgActive }}; +} +windowFiltersGroups: SideBarButton(windowFiltersButton) { + icon: icon {{ "filters_groups", sideBarIconFg }}; + iconActive: icon {{ "filters_groups_active", sideBarIconFgActive }}; +} +windowFiltersPrivate: SideBarButton(windowFiltersButton) { + icon: icon {{ "filters_private", sideBarIconFg }}; + iconActive: icon {{ "filters_private_active", sideBarIconFgActive }}; +} windowFiltersCustom: SideBarButton(windowFiltersButton) { icon: icon {{ "filters_custom", sideBarIconFg }}; iconActive: icon {{ "filters_custom_active", sideBarIconFgActive }}; diff --git a/Telegram/SourceFiles/window/window_filters_menu.cpp b/Telegram/SourceFiles/window/window_filters_menu.cpp index 31a5abea6..844bb2604 100644 --- a/Telegram/SourceFiles/window/window_filters_menu.cpp +++ b/Telegram/SourceFiles/window/window_filters_menu.cpp @@ -24,6 +24,10 @@ namespace { enum class Type { Unread, Unmuted, + People, + Groups, + Channels, + Bots, Custom, }; @@ -35,12 +39,26 @@ enum class Type { | Flag::Groups | Flag::Broadcasts | Flag::Bots; + const auto removed = Flag::NoRead | Flag::NoMuted; + const auto people = Flag::Contacts | Flag::NonContacts; const auto allNoArchive = all | Flag::NoArchive; - if (!filter.always().empty() || !filter.never().empty()) { + if (!filter.always().empty() + || !filter.never().empty() + || !(filter.flags() & all)) { return Type::Custom; - } else if (filter.flags() == (all | Flag::NoRead)) { + } else if ((filter.flags() & all) == Flag::Contacts + || (filter.flags() & all) == Flag::NonContacts + || (filter.flags() & all) == people) { + return Type::People; + } else if ((filter.flags() & all) == Flag::Groups) { + return Type::Groups; + } else if ((filter.flags() & all) == Flag::Broadcasts) { + return Type::Channels; + } else if ((filter.flags() & all) == Flag::Bots) { + return Type::Bots; + } else if ((filter.flags() & removed) == Flag::NoRead) { return Type::Unread; - } else if (filter.flags() == (all | Flag::NoMuted)) { + } else if ((filter.flags() & removed) == Flag::NoMuted) { return Type::Unmuted; } return Type::Custom; @@ -50,6 +68,10 @@ enum class Type { switch (type) { case Type::Unread: return st::windowFiltersUnread; case Type::Unmuted: return st::windowFiltersUnmuted; + case Type::People: return st::windowFiltersPrivate; + case Type::Groups: return st::windowFiltersGroups; + case Type::Channels: return st::windowFiltersChannels; + case Type::Bots: return st::windowFiltersBots; case Type::Custom: return st::windowFiltersCustom; } Unexpected("Filter type in FiltersMenu::refresh.");