diff --git a/Telegram/SourceFiles/boxes/send_files_box.cpp b/Telegram/SourceFiles/boxes/send_files_box.cpp index 3d96299190..3e8182692e 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.cpp +++ b/Telegram/SourceFiles/boxes/send_files_box.cpp @@ -482,7 +482,8 @@ SendFilesBox::SendFilesBox( const TextWithTags &caption, not_null toPeer, Api::SendType sendType, - SendMenu::Details sendMenuDetails) + SendMenu::Details sendMenuDetails, + Fn cancelled2) : SendFilesBox(nullptr, { .show = controller->uiShow(), .list = std::move(list), @@ -492,6 +493,7 @@ SendFilesBox::SendFilesBox( .check = DefaultCheckForPeer(controller, toPeer), .sendType = sendType, .sendMenuDetails = [=] { return sendMenuDetails; }, + .cancelled2 = cancelled2, }) { } @@ -510,6 +512,7 @@ SendFilesBox::SendFilesBox(QWidget*, SendFilesBoxDescriptor &&descriptor) , _check(std::move(descriptor.check)) , _confirmedCallback(std::move(descriptor.confirmed)) , _cancelledCallback(std::move(descriptor.cancelled)) +, _cancelled2Callback(std::move(descriptor.cancelled2)) , _caption(this, _st.files.caption, Ui::InputField::Mode::MultiLine) , _prefilledCaptionText(std::move(descriptor.caption)) , _scroll(this, st::boxScroll) @@ -631,6 +634,10 @@ void SendFilesBox::prepare() { if (!_confirmed && _cancelledCallback) { _cancelledCallback(); } + auto text = _caption->getTextWithAppliedMarkdown(); + if (!_confirmed && _cancelled2Callback && !text.empty()) { + _cancelled2Callback(std::move(text)); + } }, lifetime()); setupDragArea(); diff --git a/Telegram/SourceFiles/boxes/send_files_box.h b/Telegram/SourceFiles/boxes/send_files_box.h index 92ba0e3c31..580dd97968 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.h +++ b/Telegram/SourceFiles/boxes/send_files_box.h @@ -102,6 +102,7 @@ struct SendFilesBoxDescriptor { const style::ComposeControls *stOverride = nullptr; SendFilesConfirmed confirmed; Fn cancelled; + Fn cancelled2; }; class SendFilesBox : public Ui::BoxContent { @@ -117,7 +118,8 @@ public: const TextWithTags &caption, not_null toPeer, Api::SendType sendType, - SendMenu::Details sendMenuDetails); + SendMenu::Details sendMenuDetails, + Fn cancelled2 = nullptr); SendFilesBox(QWidget*, SendFilesBoxDescriptor &&descriptor); void setConfirmedCallback(SendFilesConfirmed callback) { @@ -272,6 +274,7 @@ private: SendFilesCheck _check; SendFilesConfirmed _confirmedCallback; Fn _cancelledCallback; + Fn _cancelled2Callback; rpl::variable _price = 0; std::unique_ptr _priceTag; QImage _priceTagBg; diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 46ed9bc479..b2113c07aa 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -6264,7 +6264,8 @@ bool HistoryWidget::confirmSendingFiles( text, _peer, Api::SendType::Normal, - sendMenuDetails()); + sendMenuDetails(), + [=](const TextWithTags &text) { _field->setTextWithTags(text); }); _field->setTextWithTags({}); box->setConfirmedCallback(crl::guard(this, [=]( Ui::PreparedList &&list, diff --git a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp index 01e0a0685b..8502aff92a 100644 --- a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp @@ -1085,7 +1085,8 @@ bool RepliesWidget::confirmSendingFiles( _composeControls->getTextWithAppliedMarkdown(), _history->peer, Api::SendType::Normal, - sendMenuDetails()); + sendMenuDetails(), + [=](const TextWithTags &text) { _composeControls->setText(text); }); box->setConfirmedCallback(crl::guard(this, [=]( Ui::PreparedList &&list, diff --git a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp index 47b6bb89d1..b5709fb505 100644 --- a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp @@ -572,7 +572,8 @@ bool ScheduledWidget::confirmSendingFiles( (CanScheduleUntilOnline(_history->peer) ? Api::SendType::ScheduledToUser : Api::SendType::Scheduled), - SendMenu::Details()); + SendMenu::Details(), + [=](const TextWithTags &text) { _composeControls->setText(text); }); box->setConfirmedCallback(crl::guard(this, [=]( Ui::PreparedList &&list, diff --git a/Telegram/SourceFiles/settings/business/settings_shortcut_messages.cpp b/Telegram/SourceFiles/settings/business/settings_shortcut_messages.cpp index db5a4d99ad..e2e23fe305 100644 --- a/Telegram/SourceFiles/settings/business/settings_shortcut_messages.cpp +++ b/Telegram/SourceFiles/settings/business/settings_shortcut_messages.cpp @@ -1353,7 +1353,8 @@ bool ShortcutMessages::confirmSendingFiles( _composeControls->getTextWithAppliedMarkdown(), _history->peer, Api::SendType::Normal, - SendMenu::Details()); + SendMenu::Details(), + [=](const TextWithTags &text) { _composeControls->setText(text); }); box->setConfirmedCallback(crl::guard(this, [=]( Ui::PreparedList &&list,