diff --git a/Telegram/SourceFiles/data/data_media_types.cpp b/Telegram/SourceFiles/data/data_media_types.cpp index dcce02a3f..53488bf7d 100644 --- a/Telegram/SourceFiles/data/data_media_types.cpp +++ b/Telegram/SourceFiles/data/data_media_types.cpp @@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/image/image.h" #include "ui/text/format_song_document_name.h" #include "ui/text/format_values.h" +#include "ui/text/text_entity.h" #include "ui/text/text_options.h" #include "ui/text/text_utilities.h" #include "ui/toast/toast.h" @@ -246,12 +247,15 @@ TextForMimeData WithCaptionClipboardText( Invoice ComputeInvoiceData( not_null item, const MTPDmessageMediaInvoice &data) { + auto description = qs(data.vdescription()); return { .receiptMsgId = data.vreceipt_msg_id().value_or_empty(), .amount = data.vtotal_amount().v, .currency = qs(data.vcurrency()), .title = TextUtilities::SingleLine(qs(data.vtitle())), - .description = qs(data.vdescription()), + .description = TextUtilities::ParseEntities( + description, + TextParseLinks | TextParseMultiline), .photo = (data.vphoto() ? item->history()->owner().photoFromWeb( *data.vphoto(), diff --git a/Telegram/SourceFiles/data/data_media_types.h b/Telegram/SourceFiles/data/data_media_types.h index 36102f2b0..5a76fd0ae 100644 --- a/Telegram/SourceFiles/data/data_media_types.h +++ b/Telegram/SourceFiles/data/data_media_types.h @@ -63,7 +63,7 @@ struct Invoice { uint64 amount = 0; QString currency; QString title; - QString description; + TextWithEntities description; PhotoData *photo = nullptr; bool isTest = false; }; diff --git a/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp b/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp index 8a3395abb..cf9dd097b 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp @@ -68,13 +68,10 @@ void Invoice::fillFromData(not_null invoice) { _receiptMsgId = invoice->receiptMsgId; // init strings - if (!invoice->description.isEmpty()) { - auto marked = TextWithEntities { invoice->description }; - auto parseFlags = TextParseLinks | TextParseMultiline; - TextUtilities::ParseEntities(marked, parseFlags); + if (!invoice->description.empty()) { _description.setMarkedText( st::webPageDescriptionStyle, - marked, + invoice->description, Ui::WebpageTextDescriptionOptions()); } if (!invoice->title.isEmpty()) { diff --git a/Telegram/SourceFiles/payments/payments_form.cpp b/Telegram/SourceFiles/payments/payments_form.cpp index 0f1f518c8..5982a5f92 100644 --- a/Telegram/SourceFiles/payments/payments_form.cpp +++ b/Telegram/SourceFiles/payments/payments_form.cpp @@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "smartglocal/smartglocal_token.h" #include "storage/storage_account.h" #include "ui/image/image.h" +#include "ui/text/text_entity.h" #include "apiwrap.h" #include "core/core_cloud_password.h" #include "window/themes/window_theme.h" @@ -400,7 +401,9 @@ void Form::processDetails(const MTPDpayments_paymentForm &data) { .passwordMissing = data.is_password_missing(), }; _invoice.cover.title = qs(data.vtitle()); - _invoice.cover.description = qs(data.vdescription()); + _invoice.cover.description = TextUtilities::ParseEntities( + qs(data.vdescription()), + TextParseLinks | TextParseMultiline) if (_invoice.cover.thumbnail.isNull() && !_thumbnailLoadProcess) { if (const auto photo = data.vphoto()) { loadThumbnail( diff --git a/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp b/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp index 3ecfaf4b3..ff6ee7480 100644 --- a/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp +++ b/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp @@ -16,7 +16,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/wrap/fade_wrap.h" #include "ui/text/format_values.h" #include "ui/text/text_utilities.h" -#include "ui/text/text_entity.h" #include "countries/countries_instance.h" #include "lang/lang_keys.h" #include "base/unixtime.h" @@ -218,9 +217,7 @@ void FormSummary::setupCover(not_null layout) { st::paymentsTitle); state->description = CreateChild( cover, - rpl::single(TextUtilities::ParseEntities( - _invoice.cover.description, - TextParseLinks)), + rpl::single(_invoice.cover.description), st::paymentsDescription); state->seller = CreateChild( cover, diff --git a/Telegram/SourceFiles/payments/ui/payments_panel_data.h b/Telegram/SourceFiles/payments/ui/payments_panel_data.h index 3ad6eacc4..8a6716f11 100644 --- a/Telegram/SourceFiles/payments/ui/payments_panel_data.h +++ b/Telegram/SourceFiles/payments/ui/payments_panel_data.h @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +#include "ui/text/text_entity.h" + namespace Payments::Ui { struct LabeledPrice { @@ -16,7 +18,7 @@ struct LabeledPrice { struct Cover { QString title; - QString description; + TextWithEntities description; QString seller; QImage thumbnail; };