diff --git a/Telegram/SourceFiles/boxes/choose_filter_box.cpp b/Telegram/SourceFiles/boxes/choose_filter_box.cpp index 93230d4857..da0be24a9a 100644 --- a/Telegram/SourceFiles/boxes/choose_filter_box.cpp +++ b/Telegram/SourceFiles/boxes/choose_filter_box.cpp @@ -352,7 +352,7 @@ void FillChooseFilterMenu( }, menu->lifetime()); } -void FillChooseFilterWithAdminedGroupsMenu( +bool FillChooseFilterWithAdminedGroupsMenu( not_null controller, not_null menu, not_null user, @@ -363,6 +363,7 @@ void FillChooseFilterWithAdminedGroupsMenu( const auto session = &controller->session(); const auto &list = session->data().chatsFilters().list(); const auto showColors = session->data().chatsFilters().tagsEnabled(); + auto added = 0; for (const auto &filter : list) { const auto id = filter.id(); if (!id) { @@ -446,10 +447,14 @@ void FillChooseFilterWithAdminedGroupsMenu( })); item->setIcon(Icon(showColors ? filter : filter.withColorIndex({}))); + menu->addAction(std::move(item)); + added++; } session->data().chatsFilters().changed( ) | rpl::on_next([=] { menu->hideMenu(); }, menu->lifetime()); + + return added; } diff --git a/Telegram/SourceFiles/boxes/choose_filter_box.h b/Telegram/SourceFiles/boxes/choose_filter_box.h index ff29b3c259..84417d6ec7 100644 --- a/Telegram/SourceFiles/boxes/choose_filter_box.h +++ b/Telegram/SourceFiles/boxes/choose_filter_box.h @@ -44,7 +44,7 @@ void FillChooseFilterMenu( not_null menu, not_null history); -void FillChooseFilterWithAdminedGroupsMenu( +bool FillChooseFilterWithAdminedGroupsMenu( not_null controller, not_null menu, not_null user, diff --git a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp index f44787862d..f0ad87172e 100644 --- a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp +++ b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp @@ -254,12 +254,13 @@ void FillMenuModerateCommonGroups( } menu->addSeparator(); if (const auto window = Core::App().findWindow(menu->parentWidget())) { + auto hasActions = false; Ui::Menu::CreateAddActionCallback(menu)(Ui::Menu::MenuCallback::Args{ .text = tr::lng_restrict_users_kick_from_common_group(tr::now), .handler = nullptr, .icon = &st::menuIconAddToFolder, .fillSubmenu = [&](not_null menu) { - FillChooseFilterWithAdminedGroupsMenu( + hasActions = FillChooseFilterWithAdminedGroupsMenu( window->sessionController(), menu, user, @@ -269,6 +270,10 @@ void FillMenuModerateCommonGroups( }, .submenuSt = &st::foldersMenu, }); + if (!hasActions) { + menu->removeAction(menu->actions().size() - 1); + menu->removeAction(menu->actions().size() - 1); // Separator. + } } menu->addSeparator(); {