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);
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;
};
[[nodiscard]] ModerateMessagesBoxOptions DefaultModerateMessagesBoxOptions();
void CreateModerateMessagesBox(
not_null<Ui::GenericBox*> box,
const HistoryItemsList &items,
@@ -4970,7 +4970,7 @@ void HistoryInner::deleteItem(not_null<HistoryItem*> item) {
}
const auto list = HistoryItemsList{ item };
if (CanCreateModerateMessagesBox(list)) {
const auto opt = ModerateMessagesBoxOptions();
const auto opt = DefaultModerateMessagesBoxOptions();
_controller->show(Box(CreateModerateMessagesBox, list, nullptr, opt));
} else {
const auto suggestModerate = false;
@@ -9288,11 +9288,12 @@ void HistoryWidget::confirmDeleteSelected() {
}
const auto items = session().data().idsToItems(ids);
if (CanCreateModerateMessagesBox(items)) {
const auto opt = DefaultModerateMessagesBoxOptions();
controller()->show(Box(
CreateModerateMessagesBox,
items,
crl::guard(this, [=] { clearSelected(); }),
ModerateMessagesBoxOptions{}));
opt));
} else {
auto box = Box<DeleteMessagesBox>(&session(), std::move(ids));
box->setDeleteConfirmedCallback(crl::guard(this, [=] {
@@ -893,7 +893,7 @@ bool AddDeleteMessageAction(
}
const auto list = HistoryItemsList{ item };
if (CanCreateModerateMessagesBox(list)) {
const auto opt = ModerateMessagesBoxOptions();
const auto opt = DefaultModerateMessagesBoxOptions();
controller->show(
Box(CreateModerateMessagesBox, list, nullptr, opt));
} else {
@@ -4437,7 +4437,7 @@ void ConfirmDeleteSelectedItems(not_null<ListWidget*> widget) {
widget->cancelSelection();
});
if (CanCreateModerateMessagesBox(historyItems)) {
const auto opt = ModerateMessagesBoxOptions();
const auto opt = DefaultModerateMessagesBoxOptions();
controller->show(
Box(CreateModerateMessagesBox, historyItems, confirmed, opt));
} else {