From 7fb0e3900fd82a4b028c2d9d84698eebbbdbcfae Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sat, 28 Feb 2026 17:28:33 +0300 Subject: [PATCH] Added ability to open full checked moderate box with pressed Ctrl. --- Telegram/SourceFiles/boxes/moderate_messages_box.cpp | 10 ++++++++++ Telegram/SourceFiles/boxes/moderate_messages_box.h | 2 ++ Telegram/SourceFiles/history/history_inner_widget.cpp | 2 +- Telegram/SourceFiles/history/history_widget.cpp | 3 ++- .../history/view/history_view_context_menu.cpp | 2 +- .../history/view/history_view_list_widget.cpp | 2 +- 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp index b01cff5045..b0b4fa0bde 100644 --- a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp +++ b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp @@ -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{}; +} diff --git a/Telegram/SourceFiles/boxes/moderate_messages_box.h b/Telegram/SourceFiles/boxes/moderate_messages_box.h index 4b3d120ad6..2d5f2cec1c 100644 --- a/Telegram/SourceFiles/boxes/moderate_messages_box.h +++ b/Telegram/SourceFiles/boxes/moderate_messages_box.h @@ -25,6 +25,8 @@ struct ModerateMessagesBoxOptions final { bool banUser = false; }; +[[nodiscard]] ModerateMessagesBoxOptions DefaultModerateMessagesBoxOptions(); + void CreateModerateMessagesBox( not_null box, const HistoryItemsList &items, diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 0b62173dcb..6a6c584ba4 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -4970,7 +4970,7 @@ void HistoryInner::deleteItem(not_null 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; diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 9d365e7c0a..10f1946401 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -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(&session(), std::move(ids)); box->setDeleteConfirmedCallback(crl::guard(this, [=] { diff --git a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp index 018ce5a1c7..6967d2b66c 100644 --- a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp +++ b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp @@ -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 { diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index 9a22de5626..eeb3667bd4 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -4437,7 +4437,7 @@ void ConfirmDeleteSelectedItems(not_null widget) { widget->cancelSelection(); }); if (CanCreateModerateMessagesBox(historyItems)) { - const auto opt = ModerateMessagesBoxOptions(); + const auto opt = DefaultModerateMessagesBoxOptions(); controller->show( Box(CreateModerateMessagesBox, historyItems, confirmed, opt)); } else {