Added ability to choose filters for channel from its profile.

This commit is contained in:
23rd 2024-11-23 08:02:44 +03:00
parent 85267a921e
commit 23e22650f9

View file

@ -276,7 +276,7 @@ private:
void addInfo(); void addInfo();
void addStoryArchive(); void addStoryArchive();
void addNewWindow(); void addNewWindow();
void addToggleFolder(); void addToggleFolder(bool onlyForChannels);
void addToggleUnreadMark(); void addToggleUnreadMark();
void addToggleArchive(); void addToggleArchive();
void addClearHistory(); void addClearHistory();
@ -615,12 +615,16 @@ void Filler::addStoryArchive() {
}, &st::menuIconStoriesArchiveSection); }, &st::menuIconStoriesArchiveSection);
} }
void Filler::addToggleFolder() { void Filler::addToggleFolder(bool onlyForChannels) {
const auto controller = _controller; const auto controller = _controller;
const auto history = _request.key.history(); const auto history = _request.key.history();
if (_topic || !history || !history->owner().chatsFilters().has()) { if (_topic || !history || !history->owner().chatsFilters().has()) {
return; return;
} }
if (onlyForChannels
&& (!history->peer->isChannel() || !history->inChatList())) {
return;
}
_addAction(PeerMenuCallback::Args{ _addAction(PeerMenuCallback::Args{
.text = tr::lng_filters_menu_add(tr::now), .text = tr::lng_filters_menu_add(tr::now),
.handler = nullptr, .handler = nullptr,
@ -1404,7 +1408,7 @@ void Filler::fillContextMenuActions() {
addToggleMuteSubmenu(false); addToggleMuteSubmenu(false);
addToggleUnreadMark(); addToggleUnreadMark();
addToggleTopicClosed(); addToggleTopicClosed();
addToggleFolder(); addToggleFolder(false);
if (const auto user = _peer->asUser()) { if (const auto user = _peer->asUser()) {
if (!user->isContact()) { if (!user->isContact()) {
addBlockUser(); addBlockUser();
@ -1452,6 +1456,7 @@ void Filler::fillProfileActions() {
addToggleTopicClosed(); addToggleTopicClosed();
addViewDiscussion(); addViewDiscussion();
addExportChat(); addExportChat();
addToggleFolder(true);
addBlockUser(); addBlockUser();
addReport(); addReport();
addLeaveChat(); addLeaveChat();