From 443d40906d87280d29eb3544be56a23d1493aa1c Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 29 May 2022 02:13:24 +0300 Subject: [PATCH] Added fade effect to ministars from custom top bar in premium settings. --- .../SourceFiles/settings/settings_premium.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index ec5466d5d..c92aacb1a 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -321,19 +321,25 @@ void MiniStars::paint(Painter &p, const QRectF &rect) { const auto alphaProgress = 1. - (std::clamp(progress - _disappearProgressAfter, 0., 1.) / (1. - _disappearProgressAfter)); - p.setOpacity(ministar.alpha * alphaProgress * appearProgress); + p.setOpacity(ministar.alpha + * alphaProgress + * appearProgress + * opacity); const auto distanceProgress = _distanceProgressStart + progress; - const auto starSize = ministar.size * appearProgress; + const auto starSide = ministar.size * appearProgress; + const auto widthFade = (std::abs(rcos) >= std::abs(rsin)); + const auto starWidth = starSide * (widthFade ? alphaProgress : 1.); + const auto starHeight = starSide * (!widthFade ? alphaProgress : 1.); _sprite.render(&p, QRectF( center.x() + anim::interpolateF(0, end.x(), distanceProgress) - - starSize / 2., + - starWidth / 2., center.y() + anim::interpolateF(0, end.y(), distanceProgress) - - starSize / 2., - starSize, - starSize)); + - starHeight / 2., + starWidth, + starHeight)); } p.setOpacity(opacity); }