From 8e3100acdd907abb7ba393b982fe49ad54faced6 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 10 Jun 2025 00:11:53 +0300 Subject: [PATCH] Added ability to provide max width to about label in premium top bar. --- Telegram/SourceFiles/ui/effects/premium.style | 2 ++ Telegram/SourceFiles/ui/effects/premium_top_bar.cpp | 8 ++++++-- Telegram/SourceFiles/ui/effects/premium_top_bar.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/ui/effects/premium.style b/Telegram/SourceFiles/ui/effects/premium.style index 55e83334b6..4abbea6f14 100644 --- a/Telegram/SourceFiles/ui/effects/premium.style +++ b/Telegram/SourceFiles/ui/effects/premium.style @@ -33,6 +33,7 @@ PremiumCover { titlePadding: margins; titleFont: font; about: FlatLabel; + aboutMaxWidth: pixels; additionalShadowForDarkThemes: bool; } ComposePremiumRequired { @@ -64,6 +65,7 @@ defaultPremiumCover: PremiumCover { textFg: premiumButtonFg; minWidth: 190px; } + aboutMaxWidth: 0px; additionalShadowForDarkThemes: true; } userPremiumCoverAbout: FlatLabel(boxDividerLabel) { diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp index 4d538ce374..0bdc792d79 100644 --- a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp +++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp @@ -107,6 +107,7 @@ TopBar::TopBar( , _logo(descriptor.logo) , _titleFont(st.titleFont) , _titlePadding(st.titlePadding) +, _aboutMaxWidth(st.aboutMaxWidth) , _about(this, std::move(descriptor.about), st.about) , _ministars(this, descriptor.optimizeMinistars, MiniStars::Type::BiStars) { std::move( @@ -212,8 +213,11 @@ void TopBar::resizeEvent(QResizeEvent *e) { const auto aboutTop = titleTop + titlePathRect.height() + _titlePadding.bottom(); - _about->resizeToWidth(availableWidth); - _about->moveToLeft(padding.left(), aboutTop); + _about->resizeToWidth(_aboutMaxWidth ? _aboutMaxWidth : availableWidth); + _about->moveToLeft( + padding.left() + + (_aboutMaxWidth ? (availableWidth - _about->width()) / 2 : 0), + aboutTop); _about->setOpacity(_progress.body); RpWidget::resizeEvent(e); diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.h b/Telegram/SourceFiles/ui/effects/premium_top_bar.h index 1945270252..d58b0c1ef5 100644 --- a/Telegram/SourceFiles/ui/effects/premium_top_bar.h +++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.h @@ -92,6 +92,7 @@ private: const QString _logo; const style::font &_titleFont; const style::margins &_titlePadding; + const int _aboutMaxWidth = 0; object_ptr _about; ColoredMiniStars _ministars; QSvgRenderer _star;