From 2a6fd2cb752f8b3caca9b3589b2e89d28b36f00d Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 24 Jul 2026 18:53:45 +0400 Subject: [PATCH] Enable upload caption edits in forum topics Task: 2026/07/24/edit-uploading-captions-in-forum-topics --- .../history/view/history_view_context_menu.cpp | 10 ++++++++++ .../history/view/history_view_list_widget.cpp | 11 ++++++++++- .../history/view/history_view_list_widget.h | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp index 19916e74e9..a149eaeac8 100644 --- a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp +++ b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp @@ -951,6 +951,16 @@ bool AddDeleteMessageAction( } }); if (item->isUploading()) { + if (item->media() && item->media()->allowsEditCaption()) { + menu->addAction( + tr::lng_context_upload_edit_caption(tr::now), + crl::guard(controller, [=] { + if (const auto item = owner->message(itemId)) { + list->showEditCaptionUploadLayer(item); + } + }), + &st::menuIconEdit); + } menu->addAction( tr::lng_context_cancel_upload(tr::now), callback, diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index 13e752c488..b6dd2fe454 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -72,10 +72,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/screen_reader_mode.h" #include "ui/ui_utility.h" #include "lang/lang_keys.h" +#include "boxes/peers/edit_participant_box.h" #include "boxes/delete_messages_box.h" #include "boxes/moderate_messages_box.h" #include "boxes/premium_preview_box.h" -#include "boxes/peers/edit_participant_box.h" +#include "boxes/send_gif_with_caption_box.h" #include "core/crash_reports.h" #include "data/components/sponsored_messages.h" #include "data/data_session.h" @@ -1680,6 +1681,14 @@ void ListWidget::selectItemAsGroup(not_null item) { } } +void ListWidget::showEditCaptionUploadLayer(not_null item) { + if (const auto view = viewForItem(item)) { + if (item->isUploading()) { + controller()->show(Box(Ui::EditCaptionBox, view)); + } + } +} + void ListWidget::clearSelected() { if (_selected.empty()) { return; diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.h b/Telegram/SourceFiles/history/view/history_view_list_widget.h index 607c65c486..d1a25a86b6 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.h +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.h @@ -353,6 +353,7 @@ public: void cancelSelection(); void selectItem(not_null item); void selectItemAsGroup(not_null item); + void showEditCaptionUploadLayer(not_null item); void touchScrollUpdated(const QPoint &screenPos); [[nodiscard]] rpl::producer touchMaybeSelectingValue() const;