From e5b91d2f3dfe35783e83ebbe7a7be737aeae9cde Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 26 Apr 2024 11:16:33 +0300 Subject: [PATCH] Added entry points for moderation box. --- .../history/history_inner_widget.cpp | 10 ++++++-- .../SourceFiles/history/history_widget.cpp | 23 +++++++++++++------ .../view/history_view_context_menu.cpp | 13 ++++++++--- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 27b54f79d..ae28620d5 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history_item_helpers.h" #include "history/view/controls/history_view_forward_panel.h" #include "history/view/controls/history_view_draft_options.h" +#include "boxes/moderate_messages_box.h" #include "history/view/media/history_view_sticker.h" #include "history/view/media/history_view_web_page.h" #include "history/view/reactions/history_view_reactions_button.h" @@ -4269,8 +4270,13 @@ void HistoryInner::deleteItem(not_null item) { _controller->cancelUploadLayer(item); return; } - const auto suggestModerateActions = true; - _controller->show(Box(item, suggestModerateActions)); + const auto list = HistoryItemsList{ item }; + if (CanCreateModerateMessagesBox(list)) { + _controller->show(Box(CreateModerateMessagesBox, list, nullptr)); + } else { + const auto suggestModerate = false; + _controller->show(Box(item, suggestModerate)); + } } bool HistoryInner::hasPendingResizedItems() const { diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 427d7dc37..fdd4935a0 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/send_files_box.h" #include "boxes/share_box.h" #include "boxes/edit_caption_box.h" +#include "boxes/moderate_messages_box.h" #include "boxes/premium_limits_box.h" #include "boxes/premium_preview_box.h" #include "boxes/peers/edit_peer_permissions_box.h" // ShowAboutGigagroup. @@ -7953,15 +7954,23 @@ void HistoryWidget::forwardSelected() { void HistoryWidget::confirmDeleteSelected() { if (!_list) return; - auto items = _list->getSelectedItems(); - if (items.empty()) { + auto ids = _list->getSelectedItems(); + if (ids.empty()) { return; } - auto box = Box(&session(), std::move(items)); - box->setDeleteConfirmedCallback(crl::guard(this, [=] { - clearSelected(); - })); - controller()->show(std::move(box)); + const auto items = session().data().idsToItems(ids); + if (CanCreateModerateMessagesBox(items)) { + controller()->show(Box( + CreateModerateMessagesBox, + items, + crl::guard(this, [=] { clearSelected(); }))); + } else { + auto box = Box(&session(), std::move(ids)); + box->setDeleteConfirmedCallback(crl::guard(this, [=] { + clearSelected(); + })); + controller()->show(std::move(box)); + } } void HistoryWidget::escape() { diff --git a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp index 22d3292a3..94e34092d 100644 --- a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp +++ b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp @@ -47,6 +47,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/fields/input_field.h" #include "ui/power_saving.h" #include "boxes/delete_messages_box.h" +#include "boxes/moderate_messages_box.h" #include "boxes/report_messages_box.h" #include "boxes/sticker_set_box.h" #include "boxes/stickers_box.h" @@ -828,9 +829,15 @@ bool AddDeleteMessageAction( controller->cancelUploadLayer(item); return; } - const auto suggestModerateActions = true; - controller->show( - Box(item, suggestModerateActions)); + const auto list = HistoryItemsList{ item }; + if (CanCreateModerateMessagesBox(list)) { + controller->show( + Box(CreateModerateMessagesBox, list, nullptr)); + } else { + const auto suggestModerateActions = false; + controller->show( + Box(item, suggestModerateActions)); + } } }); if (item->isUploading()) {