mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
Fixed crash from feature to kick participants from common groups.
This commit is contained in:
@@ -352,7 +352,7 @@ void FillChooseFilterMenu(
|
||||
}, menu->lifetime());
|
||||
}
|
||||
|
||||
void FillChooseFilterWithAdminedGroupsMenu(
|
||||
bool FillChooseFilterWithAdminedGroupsMenu(
|
||||
not_null<Window::SessionController*> controller,
|
||||
not_null<Ui::PopupMenu*> menu,
|
||||
not_null<UserData*> 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;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ void FillChooseFilterMenu(
|
||||
not_null<Ui::PopupMenu*> menu,
|
||||
not_null<History*> history);
|
||||
|
||||
void FillChooseFilterWithAdminedGroupsMenu(
|
||||
bool FillChooseFilterWithAdminedGroupsMenu(
|
||||
not_null<Window::SessionController*> controller,
|
||||
not_null<Ui::PopupMenu*> menu,
|
||||
not_null<UserData*> user,
|
||||
|
||||
@@ -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<Ui::PopupMenu*> 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();
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user