From fa6b4f9b52b47c3ef05dad56d367b246b9e9feae Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 1 Sep 2022 23:28:25 +0300 Subject: [PATCH] Slightly improved style of Premium Settings. --- .../icons/settings/premium/arrow.png | Bin 0 -> 268 bytes .../icons/settings/premium/arrow@2x.png | Bin 0 -> 470 bytes .../icons/settings/premium/arrow@3x.png | Bin 0 -> 610 bytes .../history/view/history_view_bottom_info.cpp | 1 - Telegram/SourceFiles/settings/settings.style | 6 +- .../SourceFiles/settings/settings_premium.cpp | 64 +++++++++++++----- 6 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 Telegram/Resources/icons/settings/premium/arrow.png create mode 100644 Telegram/Resources/icons/settings/premium/arrow@2x.png create mode 100644 Telegram/Resources/icons/settings/premium/arrow@3x.png diff --git a/Telegram/Resources/icons/settings/premium/arrow.png b/Telegram/Resources/icons/settings/premium/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6433a6ec0a3a8437f95c5b38cb71b6e1c54c70 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K$e$~;{hLo`H} zUNRJ75aeOKF!iC1-?9*`9?7NJFQ!<{eVrJr^|?G$k44ofy`glX(f`xTHpSruq6Z zXaU(A42G$TlC0TWzSVF5FO4N|zKE$K5*nS-Z`V~7Xu z)3AkItqvl!>y(r@nhqwI|B}zzB$?~B`eK#|7hA5`?2{=*kveRD`2;WCO=Rcc{@(ig z-Uc1(hi%5s=NTJYeLwg3<8^la+=j;%#|wQf$4p~=w5MhFy5B!-KiSlKa(JnoUe2bH z7Rh$;gN5ayO*;AgCcYn|0@TibE{(k}=Q+v2$3~CC>9WaocbVfAx*EYEN4MqX_iJ=1 zsL4%NS^0X`ZDk(kJz`TdPZ!<)e&zA5bqX9nnQ)O*3AR^-^OnE=4bl^OwNPf|@j{t- z&mDbi)@9x@@x79Kzr5%n(4J-MUVpX;?$5ogbGm6p#T|p5(%6;mfg=7bcJt2sy(My6 z`PavZo)>GMyWRY^EJt7JcF@6XH#X{C&ynW4J&XQ_Ynu-~_$P7rp}|xy z!OaRL{%1d1%Jr*yE;8X%NU-di?4zdXyZ9mpJLj_rE?yIKPG5c*V(_)f)+^X*?!2>U zO)GD|4Voq58mS}JbaGp+SFqaTNWJMzD=)tcn6>HVo2;!uK5xrrUs|&2Rn^{O%Wl8D zmbF#GcW2DG(%76`aqG{fO}?}wbJp|98znnqqGdp-Ls z+ibt(!F%JDn;cBrem8I9%Lw~%gIB_PNq0!vXW@$YWg1;|^@mh!JC6yQ$7wb%vXkLkpK_3; zYgd5A5n=8^(YX1x>+Rj*qS@D<{rdLfVFR9x`yN$3FLkJ{ZrQ4%JujkT^#`jbpLel+ z+@bm{c, + st::premiumButtonFg->c); + _isDark = (contrast > kMinAcceptableContrast); +} + class EmojiStatusTopBar final { public: EmojiStatusTopBar( @@ -611,6 +635,13 @@ TopBarUser::TopBarUser( }) { _starRect = TopBarAbstract::starRect(1., 1.); + rpl::single() | rpl::then( + style::PaletteChanged() + ) | rpl::start_with_next([=] { + TopBarAbstract::computeIsDark(); + update(); + }, lifetime()); + auto documentValue = Info::Profile::EmojiStatusIdValue( peer ) | rpl::map([=](DocumentId id) -> DocumentData* { @@ -749,7 +780,7 @@ TopBarUser::TopBarUser( Painter p(_smallTop.widget); p.setOpacity(_smallTop.animation.value(_smallTop.shown ? 1. : 0.)); - paintEdges(p, st::boxBg); + TopBarAbstract::paintEdges(p); p.setPen(st::boxTitleFg); _smallTop.text.drawLeft( @@ -859,7 +890,7 @@ void TopBarUser::setTextPosition(int x, int y) { void TopBarUser::paintEvent(QPaintEvent *e) { Painter p(this); - TopBarAbstract::paintEdges(p, st::boxBg); + TopBarAbstract::paintEdges(p); } void TopBarUser::resizeEvent(QResizeEvent *e) { @@ -901,8 +932,6 @@ private: float64 scaleTitle = 0.; } _progress; - bool _isDark = false; - QRectF _starRect; QPoint _titlePosition; @@ -944,12 +973,9 @@ TopBar::TopBar( rpl::single() | rpl::then( style::PaletteChanged() ) | rpl::start_with_next([=] { - const auto contrast = Ui::CountContrast( - st::boxBg->c, - st::premiumButtonFg->c); - _isDark = (contrast > kMinAcceptableContrast); + TopBarAbstract::computeIsDark(); - if (!_isDark) { + if (!TopBarAbstract::isDark()) { _star.load(Svg()); _ministars.setColorOverride(st::premiumButtonFg->c); } else { @@ -1008,7 +1034,7 @@ void TopBar::paintEvent(QPaintEvent *e) { const auto r = rect(); - if (!_isDark) { + if (!TopBarAbstract::isDark()) { const auto gradientPointTop = r.height() / 3. * 2.; auto gradient = QLinearGradient( QPointF(0, gradientPointTop), @@ -1017,9 +1043,7 @@ void TopBar::paintEvent(QPaintEvent *e) { TopBarAbstract::paintEdges(p, gradient); } else { - TopBarAbstract::paintEdges(p, st::boxBg); - TopBarAbstract::paintEdges(p, st::shadowFg); - TopBarAbstract::paintEdges(p, st::shadowFg); + TopBarAbstract::paintEdges(p); } p.setOpacity(_progress.body); @@ -1099,7 +1123,7 @@ private: rpl::event_stream<> _showBack; rpl::event_stream<> _showFinished; - rpl::event_stream _buttonText; + rpl::variable _buttonText; }; @@ -1560,14 +1584,15 @@ QPointer Premium::createPinnedToBottom( if (const auto peer = data.peer(emojiStatusData.peerId)) { return Info::Profile::EmojiStatusIdValue( peer - ) | rpl::map([](DocumentId id) { + ) | rpl::map([=](DocumentId id) { return id ? tr::lng_premium_emoji_status_button() - : tr::lng_premium_summary_user_button(); + : _buttonText.value(); + // : tr::lng_premium_summary_user_button(); }) | rpl::flatten_latest(); } } - return _buttonText.events(); + return _buttonText.value(); }(); _subscribe = CreateSubscribeButton({ @@ -1583,6 +1608,7 @@ QPointer Premium::createPinnedToBottom( : QString(); }, }); +#if 0 if (emojiStatusData) { // "Learn More" should open the general Premium Settings // so we override the button callback. @@ -1595,6 +1621,8 @@ QPointer Premium::createPinnedToBottom( controller->setPremiumRef(ref); }); } else { +#endif + { _radioGroup->setChangedCallback([=](int value) { const auto options = _controller->session().api().premium().subscriptionOptions(); @@ -1603,7 +1631,7 @@ QPointer Premium::createPinnedToBottom( tr::now, lt_cost, options[value].costPerMonth); - _buttonText.fire(std::move(text)); + _buttonText = std::move(text); }); _radioGroup->setValue(0); }