From fc759ac6886f04e3a915d3ee8ff4f003a078d172 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 25 Aug 2022 05:14:33 +0300 Subject: [PATCH] Renamed GiftOption to SubscriptionOption. --- .../SourceFiles/boxes/gift_premium_box.cpp | 27 +++++++------------ .../data/data_subscription_option.h | 21 +++++++++++++++ .../ui/effects/premium_graphics.cpp | 5 ++-- .../SourceFiles/ui/effects/premium_graphics.h | 13 ++++----- Telegram/cmake/td_ui.cmake | 2 ++ 5 files changed, 40 insertions(+), 28 deletions(-) create mode 100644 Telegram/SourceFiles/data/data_subscription_option.h diff --git a/Telegram/SourceFiles/boxes/gift_premium_box.cpp b/Telegram/SourceFiles/boxes/gift_premium_box.cpp index 89a324466..90c52a56f 100644 --- a/Telegram/SourceFiles/boxes/gift_premium_box.cpp +++ b/Telegram/SourceFiles/boxes/gift_premium_box.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_changes.h" #include "data/data_peer_values.h" // Data::PeerPremiumValue. #include "data/data_session.h" +#include "data/data_subscription_option.h" #include "data/data_user.h" #include "lang/lang_keys.h" #include "main/main_session.h" @@ -39,11 +40,8 @@ namespace { constexpr auto kDiscountDivider = 5.; -struct GiftOption final { - QString url; - Ui::Premium::GiftInfo info; -}; -using GiftOptions = std::vector; +using GiftOption = Data::SubscriptionOption; +using GiftOptions = Data::SubscriptionOptions; GiftOptions GiftOptionFromTL(const MTPDuserFull &data) { auto result = GiftOptions(); @@ -72,7 +70,7 @@ GiftOptions GiftOptionFromTL(const MTPDuserFull &data) { return std::round(percent * 100. / kDiscountDivider) * kDiscountDivider; }(); - auto info = Ui::Premium::GiftInfo{ + result.push_back({ .duration = Ui::FormatTTL(months * 86400 * 31), .discount = discount ? QString::fromUtf8("\xe2\x88\x92%1%").arg(discount) @@ -84,8 +82,8 @@ GiftOptions GiftOptionFromTL(const MTPDuserFull &data) { amount / float64(months), currency)), .total = Ui::FillAmountAndCurrency(amount, currency), - }; - result.push_back({ .url = botUrl, .info = std::move(info) }); + .botUrl = botUrl, + }); } return result; } @@ -194,17 +192,10 @@ void GiftBox( auto text = tr::lng_premium_gift_button( tr::now, lt_cost, - options[value].info.total); + options[value].total); state->buttonText.fire(std::move(text)); }); - Ui::Premium::AddGiftOptions( - buttonsParent, - group, - ranges::views::all( - options - ) | ranges::views::transform([](const GiftOption &option) { - return option.info; - }) | ranges::to_vector); + Ui::Premium::AddGiftOptions(buttonsParent, group, options); // Footer. auto terms = object_ptr( @@ -244,7 +235,7 @@ void GiftBox( const auto value = group->value(); Assert(value < options.size() && value >= 0); - const auto local = Core::TryConvertUrlToLocal(options[value].url); + const auto local = Core::TryConvertUrlToLocal(options[value].botUrl); if (local.isEmpty()) { return; } diff --git a/Telegram/SourceFiles/data/data_subscription_option.h b/Telegram/SourceFiles/data/data_subscription_option.h new file mode 100644 index 000000000..dd325b11c --- /dev/null +++ b/Telegram/SourceFiles/data/data_subscription_option.h @@ -0,0 +1,21 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#pragma once + +namespace Data { + +struct SubscriptionOption { + QString duration; + QString discount; + QString perMonth; + QString total; + QString botUrl; +}; +using SubscriptionOptions = std::vector; + +} // namespace Data diff --git a/Telegram/SourceFiles/ui/effects/premium_graphics.cpp b/Telegram/SourceFiles/ui/effects/premium_graphics.cpp index b58d227a6..c06d83f8c 100644 --- a/Telegram/SourceFiles/ui/effects/premium_graphics.cpp +++ b/Telegram/SourceFiles/ui/effects/premium_graphics.cpp @@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/effects/premium_graphics.h" +#include "data/data_subscription_option.h" #include "lang/lang_keys.h" #include "ui/abstract_button.h" #include "ui/effects/animations.h" @@ -937,7 +938,7 @@ void ShowListBox( void AddGiftOptions( not_null parent, std::shared_ptr group, - std::vector gifts) { + std::vector gifts) { struct Edges { Ui::RpWidget *top = nullptr; @@ -952,7 +953,7 @@ void AddGiftOptions( const auto stops = GiftGradientStops(); - const auto addRow = [&](const GiftInfo &info, int index) { + const auto addRow = [&](const Data::SubscriptionOption &info, int index) { const auto row = parent->add( object_ptr(parent), st::premiumGiftRowPaddings); diff --git a/Telegram/SourceFiles/ui/effects/premium_graphics.h b/Telegram/SourceFiles/ui/effects/premium_graphics.h index 644daa202..12988c045 100644 --- a/Telegram/SourceFiles/ui/effects/premium_graphics.h +++ b/Telegram/SourceFiles/ui/effects/premium_graphics.h @@ -16,6 +16,10 @@ struct phrase; enum lngtag_count : int; +namespace Data { +struct SubscriptionOption; +} // namespace Data + namespace style { struct RoundImageCheckbox; struct TextStyle; @@ -29,13 +33,6 @@ class VerticalLayout; namespace Premium { -struct GiftInfo { - QString duration; - QString discount; - QString perMonth; - QString total; -}; - void AddBubbleRow( not_null parent, rpl::producer<> showFinishes, @@ -93,7 +90,7 @@ void ShowListBox( void AddGiftOptions( not_null parent, std::shared_ptr group, - std::vector gifts); + std::vector gifts); } // namespace Premium } // namespace Ui diff --git a/Telegram/cmake/td_ui.cmake b/Telegram/cmake/td_ui.cmake index 136b14cd5..ae84e0090 100644 --- a/Telegram/cmake/td_ui.cmake +++ b/Telegram/cmake/td_ui.cmake @@ -67,6 +67,8 @@ PRIVATE countries/countries_instance.cpp countries/countries_instance.h + data/data_subscription_option.h + editor/controllers/undo_controller.cpp editor/controllers/undo_controller.h editor/editor_crop.cpp