mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 07:07:08 +02:00
Added icons to earn buttons in profile sections of owned bots.
This commit is contained in:
parent
9e0c731b32
commit
7a2562e5bb
2 changed files with 64 additions and 2 deletions
Telegram/SourceFiles/info
|
@ -485,6 +485,8 @@ infoSharedMediaButtonIconPosition: point(20px, 3px);
|
|||
infoGroupMembersIconPosition: point(20px, 10px);
|
||||
infoChannelMembersIconPosition: point(20px, 4px);
|
||||
infoChannelAdminsIconPosition: point(24px, 7px);
|
||||
infoEarnCreditsIconPosition: point(24px, 7px);
|
||||
infoEarnCurrencyIconPosition: point(20px, 3px);
|
||||
|
||||
infoOpenApp: RoundButton(defaultActiveButton) {
|
||||
textTop: 11px;
|
||||
|
|
|
@ -790,7 +790,52 @@ rpl::producer<uint64> AddCurrencyAction(
|
|||
tr::lng_manage_peer_bot_balance_currency(),
|
||||
state->balance.value() | rpl::map(rpl::mappers::_1 > 0),
|
||||
[=] { parentController->showSection(Info::ChannelEarn::Make(user)); },
|
||||
&st::infoIconBotBalance);
|
||||
nullptr);
|
||||
{
|
||||
const auto button = wrapButton->entity();
|
||||
const auto icon = Ui::CreateChild<Ui::RpWidget>(button);
|
||||
icon->resize(st::infoIconReport.size());
|
||||
const auto image = [&] {
|
||||
auto image = QImage(
|
||||
icon->size() * style::DevicePixelRatio(),
|
||||
QImage::Format_ARGB32_Premultiplied);
|
||||
image.setDevicePixelRatio(style::DevicePixelRatio());
|
||||
image.fill(Qt::transparent);
|
||||
auto p = QPainter(&image);
|
||||
st::infoIconReport.paintInCenter(
|
||||
p,
|
||||
icon->rect(),
|
||||
st::infoIconFg->c);
|
||||
p.setCompositionMode(QPainter::CompositionMode_Clear);
|
||||
const auto w = st::lineWidth * 6;
|
||||
p.fillRect(
|
||||
QRect(
|
||||
rect::center(icon->rect()).x() - w / 2,
|
||||
rect::center(icon->rect()).y() - w,
|
||||
w,
|
||||
w * 2),
|
||||
Qt::white);
|
||||
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
|
||||
const auto i = Ui::Earn::IconCurrencyColored(
|
||||
st::inviteLinkSubscribeBoxTerms.style.font,
|
||||
st::infoIconFg->c);
|
||||
p.drawImage(
|
||||
(icon->width() - i.width() / style::DevicePixelRatio()) / 2,
|
||||
(icon->height() - i.height() / style::DevicePixelRatio()) / 2,
|
||||
i);
|
||||
return image;
|
||||
}();
|
||||
icon->paintRequest() | rpl::start_with_next([=] {
|
||||
auto p = QPainter(icon);
|
||||
auto hq = PainterHighQualityEnabler(p);
|
||||
p.drawImage(0, 0, image);
|
||||
}, icon->lifetime());
|
||||
|
||||
button->sizeValue(
|
||||
) | rpl::start_with_next([=](const QSize &size) {
|
||||
icon->move(st::infoEarnCurrencyIconPosition);
|
||||
}, icon->lifetime());
|
||||
}
|
||||
const auto balance = user->session().credits().balanceCurrency(user->id);
|
||||
if (balance) {
|
||||
state->balance = balance;
|
||||
|
@ -865,7 +910,22 @@ rpl::producer<uint64> AddCreditsAction(
|
|||
tr::lng_manage_peer_bot_balance_credits(),
|
||||
state->balance.value() | rpl::map(rpl::mappers::_1 > 0),
|
||||
[=] { parentController->showSection(Info::BotEarn::Make(user)); },
|
||||
&st::infoIconBotBalance);
|
||||
nullptr);
|
||||
{
|
||||
const auto button = wrapButton->entity();
|
||||
const auto icon = Ui::CreateChild<Ui::RpWidget>(button);
|
||||
const auto image = Ui::Earn::MenuIconCredits();
|
||||
icon->resize(image.size() / style::DevicePixelRatio());
|
||||
icon->paintRequest() | rpl::start_with_next([=] {
|
||||
auto p = QPainter(icon);
|
||||
p.drawImage(0, 0, image);
|
||||
}, icon->lifetime());
|
||||
|
||||
button->sizeValue(
|
||||
) | rpl::start_with_next([=](const QSize &size) {
|
||||
icon->move(st::infoEarnCreditsIconPosition);
|
||||
}, icon->lifetime());
|
||||
}
|
||||
if (const auto balance = user->session().credits().balance(user->id)) {
|
||||
state->balance = balance;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue