diff --git a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp index 67ee8075d..5605dfce2 100644 --- a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp +++ b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp @@ -70,20 +70,6 @@ void AddHeader( header->resizeToWidth(header->width()); } -[[nodiscard]] not_null CreateIconWidget( - not_null parent, - QImage image) { - const auto widget = Ui::CreateChild(parent); - widget->resize(image.size() / style::DevicePixelRatio()); - widget->paintRequest( - ) | rpl::start_with_next([=] { - auto p = QPainter(widget); - p.drawImage(0, 0, image); - }, widget->lifetime()); - widget->setAttribute(Qt::WA_TransparentForMouseEvents); - return widget; -} - } // namespace InnerWidget::InnerWidget( @@ -188,9 +174,9 @@ void InnerWidget::fill() { line, rpl::duplicate(value) | rpl::map(valueToString), st::channelEarnOverviewMajorLabel); - const auto icon = CreateIconWidget( + const auto icon = Ui::CreateSingleStarWidget( line, - Ui::GenerateStars(majorLabel->height(), 1)); + majorLabel->height()); const auto secondMinorLabel = Ui::CreateChild( line, std::move( @@ -260,9 +246,9 @@ void InnerWidget::fill() { labels, rpl::duplicate(availableBalanceValue) | rpl::map(valueToString), st::channelEarnBalanceMajorLabel); - const auto icon = CreateIconWidget( + const auto icon = Ui::CreateSingleStarWidget( labels, - Ui::GenerateStars(majorLabel->height(), 1)); + majorLabel->height()); majorLabel->setAttribute(Qt::WA_TransparentForMouseEvents); majorLabel->sizeValue( ) | rpl::start_with_next([=](const QSize &majorSize) { @@ -307,9 +293,9 @@ void InnerWidget::fill() { input->changeLimit(v); input->setText(QString::number(v)); }, input->lifetime()); - const auto icon = CreateIconWidget( + const auto icon = Ui::CreateSingleStarWidget( inputContainer, - Ui::GenerateStars(st.style.font->height, 1)); + st.style.font->height); inputContainer->sizeValue( ) | rpl::start_with_next([=](const QSize &size) { input->resize( diff --git a/Telegram/SourceFiles/ui/effects/credits_graphics.cpp b/Telegram/SourceFiles/ui/effects/credits_graphics.cpp index ce257b936..23b7503ea 100644 --- a/Telegram/SourceFiles/ui/effects/credits_graphics.cpp +++ b/Telegram/SourceFiles/ui/effects/credits_graphics.cpp @@ -90,6 +90,21 @@ QImage GenerateStars(int height, int count) { return frame; } +not_null CreateSingleStarWidget( + not_null parent, + int height) { + const auto widget = Ui::CreateChild(parent); + const auto image = GenerateStars(height, 1); + widget->resize(image.size() / style::DevicePixelRatio()); + widget->paintRequest( + ) | rpl::start_with_next([=] { + auto p = QPainter(widget); + p.drawImage(0, 0, image); + }, widget->lifetime()); + widget->setAttribute(Qt::WA_TransparentForMouseEvents); + return widget; +} + PaintRoundImageCallback GenerateCreditsPaintUserpicCallback( const Data::CreditsHistoryEntry &entry) { const auto bg = [&]() -> Ui::EmptyUserpic::BgColors { diff --git a/Telegram/SourceFiles/ui/effects/credits_graphics.h b/Telegram/SourceFiles/ui/effects/credits_graphics.h index a730cffec..eacc9148b 100644 --- a/Telegram/SourceFiles/ui/effects/credits_graphics.h +++ b/Telegram/SourceFiles/ui/effects/credits_graphics.h @@ -13,10 +13,18 @@ namespace Data { struct CreditsHistoryEntry; } // namespace Data +namespace Ui { +class RpWidget; +} // namespace Ui + namespace Ui { [[nodiscard]] QImage GenerateStars(int height, int count); +[[nodiscard]] not_null CreateSingleStarWidget( + not_null parent, + int height); + Fn GenerateCreditsPaintUserpicCallback( const Data::CreditsHistoryEntry &entry);