Files
AyuGramDesktop/Telegram/SourceFiles/settings/sections/settings_information.h
T
John Preston 7e5b85c4b3 Upgrade settings_information to full builder pattern
- Move Information class to anonymous namespace in .cpp
- Export only Type InformationId() from header
- Keep exported helpers: SetupAccounts, UpdatePhotoLocally, Badge::*
- Use custom buildMethod with HighlightRegistry for all profile widgets
- Update all references to use InformationId() instead of Information::Id()

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 11:55:20 +04:00

63 lines
1.4 KiB
C++

/*
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
#include "settings/settings_type.h"
class UserData;
namespace Ui {
class RpWidget;
class SettingsButton;
class VerticalLayout;
struct UnreadBadgeStyle;
} // namespace Ui
namespace Main {
class Account;
} // namespace Main
namespace Window {
class SessionController;
} // namespace Window
namespace Settings {
[[nodiscard]] Type InformationId();
struct AccountsEvents {
rpl::producer<> closeRequests;
QPointer<Ui::RpWidget> addAccountButton;
};
AccountsEvents SetupAccounts(
not_null<Ui::VerticalLayout*> container,
not_null<Window::SessionController*> controller);
void UpdatePhotoLocally(not_null<UserData*> user, const QImage &image);
namespace Badge {
[[nodiscard]] Ui::UnreadBadgeStyle Style();
struct UnreadBadge {
int count = 0;
bool muted = false;
};
[[nodiscard]] not_null<Ui::RpWidget*> AddRight(
not_null<Ui::SettingsButton*> button,
int rightPadding = 0);
[[nodiscard]] not_null<Ui::RpWidget*> CreateUnread(
not_null<Ui::RpWidget*> container,
rpl::producer<UnreadBadge> value);
void AddUnread(
not_null<Ui::SettingsButton*> button,
rpl::producer<UnreadBadge> value);
} // namespace Badge
} // namespace Settings