diff --git a/Telegram/SourceFiles/intro/intro_password_check.cpp b/Telegram/SourceFiles/intro/intro_password_check.cpp index cd73d9867..3555c95ef 100644 --- a/Telegram/SourceFiles/intro/intro_password_check.cpp +++ b/Telegram/SourceFiles/intro/intro_password_check.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/passcode_box.h" #include "lang/lang_keys.h" #include "intro/intro_signup.h" +#include "ui/text/text_utilities.h" #include "ui/widgets/buttons.h" #include "ui/widgets/fields/input_field.h" #include "ui/widgets/fields/password_input.h" @@ -350,8 +351,11 @@ void PasswordCheckWidget::updateDescriptionText() { auto pwdHidden = _pwdField->isHidden(); auto emailPattern = _emailPattern; setDescriptionText(pwdHidden - ? tr::lng_signin_recover_desc(lt_email, rpl::single(emailPattern)) - : tr::lng_signin_desc()); + ? tr::lng_signin_recover_desc( + lt_email, + rpl::single(Ui::Text::WrapEmailPattern(emailPattern)), + Ui::Text::WithEntities) + : tr::lng_signin_desc(Ui::Text::WithEntities)); } void PasswordCheckWidget::submit() { diff --git a/Telegram/SourceFiles/intro/intro_step.cpp b/Telegram/SourceFiles/intro/intro_step.cpp index e019da124..78f7b6f48 100644 --- a/Telegram/SourceFiles/intro/intro_step.cpp +++ b/Telegram/SourceFiles/intro/intro_step.cpp @@ -99,7 +99,19 @@ Step::Step( _descriptionText.value( ) | rpl::start_with_next([=](const TextWithEntities &text) { - _description->entity()->setMarkedText(text); + const auto label = _description->entity(); + const auto hasSpoiler = ranges::contains( + text.entities, + EntityType::Spoiler, + &EntityInText::type); + if (hasSpoiler) { + label->setMarkedText( + text, + CommonTextContext{ [=] { label->update(); } }); + } else { + label->setMarkedText(text); + } + label->setAttribute(Qt::WA_TransparentForMouseEvents, hasSpoiler); updateLabelsPosition(); }, lifetime()); } diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp index 0b6273379..3c1f5e376 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp @@ -118,7 +118,7 @@ void SetupHeader( const QString &lottie, rpl::producer<> &&showFinished, rpl::producer &&subtitle, - rpl::producer &&about) { + v::text::data &&about) { if (!lottie.isEmpty()) { const auto &size = st::settingsCloudPasswordIconSize; auto icon = CreateLottieIcon( @@ -148,8 +148,16 @@ void SetupHeader( const auto wrap = content->add( object_ptr>( content, - object_ptr(content, std::move(about), st)), + object_ptr( + content, + v::text::take_marked(std::move(about)), + st, + st::defaultPopupMenu, + [=](Fn update) { + return CommonTextContext{ std::move(update) }; + })), st::changePhoneDescriptionPadding); + wrap->setAttribute(Qt::WA_TransparentForMouseEvents); wrap->resize( wrap->width(), st::settingLocalPasscodeDescriptionHeight); diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.h b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.h index 95d8cca5d..836728b48 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.h +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.h @@ -50,7 +50,7 @@ void SetupHeader( const QString &lottie, rpl::producer<> &&showFinished, rpl::producer &&subtitle, - rpl::producer &&about); + v::text::data &&about); [[nodiscard]] not_null AddPasswordField( not_null content, diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp index b1879387e..7bf21c9d5 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/vertical_list.h" #include "ui/boxes/confirm_box.h" #include "ui/text/format_values.h" +#include "ui/text/text_utilities.h" #include "ui/widgets/menu/menu_add_action_callback.h" #include "ui/widgets/buttons.h" #include "ui/widgets/sent_code_field.h" @@ -138,13 +139,14 @@ void EmailConfirm::setupContent() { state->unconfirmedPattern.isEmpty() ? tr::lng_settings_cloud_password_email_recovery_subtitle() : tr::lng_cloud_password_confirm(), - rpl::single( - tr::lng_cloud_password_waiting_code( - tr::now, - lt_email, - state->unconfirmedPattern.isEmpty() - ? recoverEmailPattern - : state->unconfirmedPattern))); + tr::lng_cloud_password_waiting_code( + lt_email, + rpl::single( + Ui::Text::WrapEmailPattern( + state->unconfirmedPattern.isEmpty() + ? recoverEmailPattern + : state->unconfirmedPattern)), + TextWithEntities::Simple)); Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp index fc16b8179..b25659f3f 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp @@ -183,7 +183,9 @@ void Input::setupContent() { : hasPassword ? tr::lng_settings_cloud_password_manage_password_change() : tr::lng_settings_cloud_password_password_subtitle(), - tr::lng_cloud_password_about()); + isCheck + ? tr::lng_settings_cloud_password_manage_about1() + : tr::lng_cloud_password_about()); Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); diff --git a/Telegram/lib_ui b/Telegram/lib_ui index d54a4bb51..517be4551 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit d54a4bb510a730d519f6085f81ca021c610402ee +Subproject commit 517be45510ffde54ccb928788d700f93cfba3b65