Added ability to open full checked moderate box with pressed Ctrl.

This commit is contained in:
23rd
2026-02-28 17:28:33 +03:00
committed by John Preston
parent 9b483c390d
commit 7fb0e3900f
6 changed files with 17 additions and 4 deletions
@@ -1170,3 +1170,13 @@ void DeleteSublistBox(
}, st::attentionBoxButton); }, st::attentionBoxButton);
box->addButton(tr::lng_cancel(), close); box->addButton(tr::lng_cancel(), close);
} }
ModerateMessagesBoxOptions DefaultModerateMessagesBoxOptions() {
return base::IsCtrlPressed()
? ModerateMessagesBoxOptions{
.reportSpam = true,
.deleteAll = true,
.banUser = true,
}
: ModerateMessagesBoxOptions{};
}
@@ -25,6 +25,8 @@ struct ModerateMessagesBoxOptions final {
bool banUser = false; bool banUser = false;
}; };
[[nodiscard]] ModerateMessagesBoxOptions DefaultModerateMessagesBoxOptions();
void CreateModerateMessagesBox( void CreateModerateMessagesBox(
not_null<Ui::GenericBox*> box, not_null<Ui::GenericBox*> box,
const HistoryItemsList &items, const HistoryItemsList &items,
@@ -4970,7 +4970,7 @@ void HistoryInner::deleteItem(not_null<HistoryItem*> item) {
} }
const auto list = HistoryItemsList{ item }; const auto list = HistoryItemsList{ item };
if (CanCreateModerateMessagesBox(list)) { if (CanCreateModerateMessagesBox(list)) {
const auto opt = ModerateMessagesBoxOptions(); const auto opt = DefaultModerateMessagesBoxOptions();
_controller->show(Box(CreateModerateMessagesBox, list, nullptr, opt)); _controller->show(Box(CreateModerateMessagesBox, list, nullptr, opt));
} else { } else {
const auto suggestModerate = false; const auto suggestModerate = false;
@@ -9288,11 +9288,12 @@ void HistoryWidget::confirmDeleteSelected() {
} }
const auto items = session().data().idsToItems(ids); const auto items = session().data().idsToItems(ids);
if (CanCreateModerateMessagesBox(items)) { if (CanCreateModerateMessagesBox(items)) {
const auto opt = DefaultModerateMessagesBoxOptions();
controller()->show(Box( controller()->show(Box(
CreateModerateMessagesBox, CreateModerateMessagesBox,
items, items,
crl::guard(this, [=] { clearSelected(); }), crl::guard(this, [=] { clearSelected(); }),
ModerateMessagesBoxOptions{})); opt));
} else { } else {
auto box = Box<DeleteMessagesBox>(&session(), std::move(ids)); auto box = Box<DeleteMessagesBox>(&session(), std::move(ids));
box->setDeleteConfirmedCallback(crl::guard(this, [=] { box->setDeleteConfirmedCallback(crl::guard(this, [=] {
@@ -893,7 +893,7 @@ bool AddDeleteMessageAction(
} }
const auto list = HistoryItemsList{ item }; const auto list = HistoryItemsList{ item };
if (CanCreateModerateMessagesBox(list)) { if (CanCreateModerateMessagesBox(list)) {
const auto opt = ModerateMessagesBoxOptions(); const auto opt = DefaultModerateMessagesBoxOptions();
controller->show( controller->show(
Box(CreateModerateMessagesBox, list, nullptr, opt)); Box(CreateModerateMessagesBox, list, nullptr, opt));
} else { } else {
@@ -4437,7 +4437,7 @@ void ConfirmDeleteSelectedItems(not_null<ListWidget*> widget) {
widget->cancelSelection(); widget->cancelSelection();
}); });
if (CanCreateModerateMessagesBox(historyItems)) { if (CanCreateModerateMessagesBox(historyItems)) {
const auto opt = ModerateMessagesBoxOptions(); const auto opt = DefaultModerateMessagesBoxOptions();
controller->show( controller->show(
Box(CreateModerateMessagesBox, historyItems, confirmed, opt)); Box(CreateModerateMessagesBox, historyItems, confirmed, opt));
} else { } else {