mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
Rewrite settings_credits to new builder pattern
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1560,8 +1560,8 @@ PRIVATE
|
||||
settings/settings_codes.h
|
||||
settings/settings_common_session.cpp
|
||||
settings/settings_common_session.h
|
||||
settings/settings_credits.cpp
|
||||
settings/settings_credits.h
|
||||
settings/sections/settings_credits.cpp
|
||||
settings/sections/settings_credits.h
|
||||
settings/settings_credits_graphics.cpp
|
||||
settings/settings_credits_graphics.h
|
||||
settings/settings_experimental.cpp
|
||||
|
||||
@@ -74,7 +74,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "payments/payments_form.h"
|
||||
#include "payments/payments_checkout_process.h"
|
||||
#include "payments/payments_non_panel_process.h"
|
||||
#include "settings/settings_credits.h"
|
||||
#include "settings/sections/settings_credits.h"
|
||||
#include "settings/settings_credits_graphics.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "ui/boxes/about_cocoon_box.h" // Ui::AddUniqueCloseButton
|
||||
|
||||
@@ -47,7 +47,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "settings/settings_passkeys.h"
|
||||
#include "data/components/passkeys.h"
|
||||
#include "calls/calls_box_controller.h"
|
||||
#include "settings/settings_credits.h"
|
||||
#include "settings/sections/settings_credits.h"
|
||||
#include "settings/settings_folders.h"
|
||||
#include "settings/sections/settings_global_ttl.h"
|
||||
#include "settings/settings_information.h"
|
||||
|
||||
@@ -56,7 +56,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "payments/payments_checkout_process.h"
|
||||
#include "settings/cloud_password/settings_cloud_password_login_email.h"
|
||||
#include "settings/sections/settings_active_sessions.h"
|
||||
#include "settings/settings_credits.h"
|
||||
#include "settings/sections/settings_credits.h"
|
||||
#include "settings/settings_credits_graphics.h"
|
||||
#include "settings/settings_information.h"
|
||||
#include "settings/sections/settings_global_ttl.h"
|
||||
|
||||
@@ -37,7 +37,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "lang/lang_keys.h"
|
||||
#include "main/main_session.h"
|
||||
#include "settings/business/settings_chat_intro.h"
|
||||
#include "settings/settings_credits.h" // BuyStarsHandler
|
||||
#include "settings/sections/settings_credits.h" // BuyStarsHandler
|
||||
#include "settings/settings_premium.h"
|
||||
#include "ui/chat/chat_style.h"
|
||||
#include "ui/text/custom_emoji_instance.h"
|
||||
|
||||
@@ -26,7 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "history/view/history_view_element.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "main/main_session.h"
|
||||
#include "settings/settings_credits.h" // Settings::CreditsId
|
||||
#include "settings/sections/settings_credits.h" // Settings::CreditsId
|
||||
#include "settings/settings_credits_graphics.h" // GiftedCreditsBox
|
||||
#include "settings/settings_premium.h" // Settings::ShowGiftPremium
|
||||
#include "ui/chat/chat_style.h"
|
||||
|
||||
+50
-7
@@ -5,7 +5,7 @@ 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
|
||||
*/
|
||||
#include "settings/settings_credits.h"
|
||||
#include "settings/sections/settings_credits.h"
|
||||
|
||||
#include "api/api_credits.h"
|
||||
#include "api/api_earn.h"
|
||||
@@ -24,20 +24,24 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "info/bot/earn/info_bot_earn_widget.h"
|
||||
#include "info/bot/starref/info_bot_starref_common.h"
|
||||
#include "info/bot/starref/info_bot_starref_join_widget.h"
|
||||
#include "info/channel_statistics/boosts/giveaway/boost_badge.h" // InfiniteRadialAnimationWidget.
|
||||
#include "info/channel_statistics/boosts/giveaway/boost_badge.h"
|
||||
#include "info/channel_statistics/earn/earn_format.h"
|
||||
#include "info/channel_statistics/earn/earn_icons.h"
|
||||
#include "info/channel_statistics/earn/info_channel_earn_list.h"
|
||||
#include "info/info_memento.h"
|
||||
#include "info/settings/info_settings_widget.h" // SectionCustomTopBarData.
|
||||
#include "info/settings/info_settings_widget.h"
|
||||
#include "info/statistics/info_statistics_list_controllers.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "main/main_session.h"
|
||||
#include "settings/sections/settings_main.h"
|
||||
#include "settings/settings_builder.h"
|
||||
#include "settings/settings_common.h"
|
||||
#include "settings/settings_common_session.h"
|
||||
#include "settings/settings_credits_graphics.h"
|
||||
#include "statistics/widgets/chart_header_widget.h"
|
||||
#include "ui/boxes/boost_box.h" // Ui::StartFireworks.
|
||||
#include "ui/boxes/boost_box.h"
|
||||
#include "ui/controls/swipe_handler.h"
|
||||
#include "ui/controls/swipe_handler_data.h"
|
||||
#include "ui/effects/animation_value_f.h"
|
||||
#include "ui/effects/credits_graphics.h"
|
||||
#include "ui/effects/premium_graphics.h"
|
||||
@@ -54,8 +58,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "ui/wrap/fade_wrap.h"
|
||||
#include "ui/wrap/slide_wrap.h"
|
||||
#include "ui/wrap/vertical_layout.h"
|
||||
#include "ui/controls/swipe_handler.h"
|
||||
#include "ui/controls/swipe_handler_data.h"
|
||||
#include "window/window_session_controller.h"
|
||||
#include "styles/style_chat.h"
|
||||
#include "styles/style_chat_helpers.h"
|
||||
@@ -68,11 +70,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "styles/style_statistics.h"
|
||||
#include "styles/style_menu_icons.h"
|
||||
#include "styles/style_channel_earn.h"
|
||||
#include "styles/style_chat.h"
|
||||
|
||||
namespace Settings {
|
||||
namespace {
|
||||
|
||||
using namespace Builder;
|
||||
|
||||
class Credits : public Section<Credits> {
|
||||
public:
|
||||
Credits(
|
||||
@@ -918,6 +921,41 @@ void Credits::showFinished() {
|
||||
class Currency {
|
||||
};
|
||||
|
||||
void BuildCreditsButtons(SectionBuilder &builder) {
|
||||
builder.add(nullptr, [] {
|
||||
return SearchEntry{
|
||||
.id = u"stars/stats"_q,
|
||||
.title = tr::lng_credits_stats_button(tr::now),
|
||||
.keywords = { u"statistics"_q },
|
||||
};
|
||||
});
|
||||
|
||||
builder.add(nullptr, [] {
|
||||
return SearchEntry{
|
||||
.id = u"stars/gift"_q,
|
||||
.title = tr::lng_credits_gift_button(tr::now),
|
||||
.keywords = { u"send"_q, u"stars"_q },
|
||||
};
|
||||
});
|
||||
|
||||
builder.add(nullptr, [] {
|
||||
return SearchEntry{
|
||||
.id = u"stars/earn"_q,
|
||||
.title = tr::lng_credits_earn_button(tr::now),
|
||||
.keywords = { u"affiliate"_q, u"referral"_q },
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const auto kCreditsBuilderMeta = BuildHelper({
|
||||
.id = Credits::Id(),
|
||||
.parentId = Main::Id(),
|
||||
.title = &tr::lng_credits_summary_title,
|
||||
.icon = &st::menuIconPremium,
|
||||
}, [](SectionBuilder &builder) {
|
||||
BuildCreditsButtons(builder);
|
||||
});
|
||||
|
||||
} // namespace
|
||||
|
||||
template <>
|
||||
@@ -1023,4 +1061,9 @@ rpl::producer<bool> BuyStarsHandler::loadingValue() const {
|
||||
return _loading.value();
|
||||
}
|
||||
|
||||
namespace Builder {
|
||||
|
||||
SectionBuildMethod CreditsSection = kCreditsBuilderMeta.build;
|
||||
|
||||
} // namespace Builder
|
||||
} // namespace Settings
|
||||
+6
-1
@@ -7,7 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "settings/settings_type.h"
|
||||
#include "settings/settings_common.h"
|
||||
|
||||
namespace Api {
|
||||
class CreditsTopupOptions;
|
||||
@@ -39,4 +39,9 @@ private:
|
||||
|
||||
};
|
||||
|
||||
namespace Builder {
|
||||
|
||||
extern SectionBuildMethod CreditsSection;
|
||||
|
||||
} // namespace Builder
|
||||
} // namespace Settings
|
||||
@@ -46,7 +46,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "settings/sections/settings_calls.h"
|
||||
#include "settings/sections/settings_chat.h"
|
||||
#include "settings/settings_codes.h"
|
||||
#include "settings/settings_credits.h"
|
||||
#include "settings/sections/settings_credits.h"
|
||||
#include "settings/settings_folders.h"
|
||||
#include "settings/settings_information.h"
|
||||
#include "settings/sections/settings_notifications.h"
|
||||
|
||||
@@ -62,7 +62,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "payments/payments_form.h"
|
||||
#include "payments/payments_non_panel_process.h"
|
||||
#include "settings/settings_common_session.h"
|
||||
#include "settings/settings_credits.h"
|
||||
#include "settings/sections/settings_credits.h"
|
||||
#include "statistics/widgets/chart_header_widget.h"
|
||||
#include "ui/boxes/confirm_box.h"
|
||||
#include "ui/controls/button_labels.h"
|
||||
|
||||
@@ -66,12 +66,12 @@ struct SubscriptionRightLabel {
|
||||
QSize size;
|
||||
};
|
||||
SubscriptionRightLabel PaintSubscriptionRightLabelCallback(
|
||||
not_null<Main::Session*> session,
|
||||
not_null<::Main::Session*> session,
|
||||
const style::PeerListItem &st,
|
||||
int amount);
|
||||
|
||||
void FillCreditOptions(
|
||||
std::shared_ptr<Main::SessionShow> show,
|
||||
std::shared_ptr<::Main::SessionShow> show,
|
||||
not_null<Ui::VerticalLayout*> container,
|
||||
not_null<PeerData*> peer,
|
||||
CreditsAmount minCredits,
|
||||
@@ -83,7 +83,7 @@ void FillCreditOptions(
|
||||
|
||||
[[nodiscard]] not_null<Ui::RpWidget*> AddBalanceWidget(
|
||||
not_null<Ui::RpWidget*> parent,
|
||||
not_null<Main::Session*> session,
|
||||
not_null<::Main::Session*> session,
|
||||
rpl::producer<CreditsAmount> balanceValue,
|
||||
bool rightAlign,
|
||||
rpl::producer<float64> opacityValue = nullptr,
|
||||
@@ -200,7 +200,7 @@ void GlobalStarGiftBox(
|
||||
not_null<PeerData*> owner,
|
||||
const Data::SavedStarGift &data);
|
||||
[[nodiscard]] Data::SavedStarGiftId EntryToSavedStarGiftId(
|
||||
not_null<Main::Session*> session,
|
||||
not_null<::Main::Session*> session,
|
||||
const Data::CreditsHistoryEntry &entry);
|
||||
void ShowSavedStarGiftBox(
|
||||
not_null<Window::SessionController*> controller,
|
||||
@@ -292,7 +292,7 @@ struct SmallBalanceSource : std::variant<
|
||||
|
||||
void SmallBalanceBox(
|
||||
not_null<Ui::GenericBox*> box,
|
||||
std::shared_ptr<Main::SessionShow> show,
|
||||
std::shared_ptr<::Main::SessionShow> show,
|
||||
uint64 wholeCredits,
|
||||
SmallBalanceSource source,
|
||||
Fn<void()> paid);
|
||||
@@ -305,7 +305,7 @@ enum class SmallBalanceResult {
|
||||
};
|
||||
|
||||
void MaybeRequestBalanceIncrease(
|
||||
std::shared_ptr<Main::SessionShow> show,
|
||||
std::shared_ptr<::Main::SessionShow> show,
|
||||
uint64 credits,
|
||||
SmallBalanceSource source,
|
||||
Fn<void(SmallBalanceResult)> done);
|
||||
|
||||
Reference in New Issue
Block a user