mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +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
|
@ -485,6 +485,8 @@ infoSharedMediaButtonIconPosition: point(20px, 3px);
|
||||||
infoGroupMembersIconPosition: point(20px, 10px);
|
infoGroupMembersIconPosition: point(20px, 10px);
|
||||||
infoChannelMembersIconPosition: point(20px, 4px);
|
infoChannelMembersIconPosition: point(20px, 4px);
|
||||||
infoChannelAdminsIconPosition: point(24px, 7px);
|
infoChannelAdminsIconPosition: point(24px, 7px);
|
||||||
|
infoEarnCreditsIconPosition: point(24px, 7px);
|
||||||
|
infoEarnCurrencyIconPosition: point(20px, 3px);
|
||||||
|
|
||||||
infoOpenApp: RoundButton(defaultActiveButton) {
|
infoOpenApp: RoundButton(defaultActiveButton) {
|
||||||
textTop: 11px;
|
textTop: 11px;
|
||||||
|
|
|
@ -790,7 +790,52 @@ rpl::producer<uint64> AddCurrencyAction(
|
||||||
tr::lng_manage_peer_bot_balance_currency(),
|
tr::lng_manage_peer_bot_balance_currency(),
|
||||||
state->balance.value() | rpl::map(rpl::mappers::_1 > 0),
|
state->balance.value() | rpl::map(rpl::mappers::_1 > 0),
|
||||||
[=] { parentController->showSection(Info::ChannelEarn::Make(user)); },
|
[=] { 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);
|
const auto balance = user->session().credits().balanceCurrency(user->id);
|
||||||
if (balance) {
|
if (balance) {
|
||||||
state->balance = balance;
|
state->balance = balance;
|
||||||
|
@ -865,7 +910,22 @@ rpl::producer<uint64> AddCreditsAction(
|
||||||
tr::lng_manage_peer_bot_balance_credits(),
|
tr::lng_manage_peer_bot_balance_credits(),
|
||||||
state->balance.value() | rpl::map(rpl::mappers::_1 > 0),
|
state->balance.value() | rpl::map(rpl::mappers::_1 > 0),
|
||||||
[=] { parentController->showSection(Info::BotEarn::Make(user)); },
|
[=] { 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)) {
|
if (const auto balance = user->session().credits().balance(user->id)) {
|
||||||
state->balance = balance;
|
state->balance = balance;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue