From f2e69d2621a4f57e9c56d1aa1c3d69ec594d2dc0 Mon Sep 17 00:00:00 2001 From: John Preston <johnprestonmail@gmail.com> Date: Sat, 18 Feb 2017 14:29:19 +0300 Subject: [PATCH] Intro cover now shows palette changes in realtime. --- Telegram/SourceFiles/intro/introphone.h | 2 +- Telegram/SourceFiles/intro/introsignup.h | 2 +- Telegram/SourceFiles/intro/introwidget.cpp | 9 +++++++++ Telegram/SourceFiles/intro/introwidget.h | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/intro/introphone.h b/Telegram/SourceFiles/intro/introphone.h index 98743eeca..fd2c35857 100644 --- a/Telegram/SourceFiles/intro/introphone.h +++ b/Telegram/SourceFiles/intro/introphone.h @@ -32,7 +32,7 @@ class FlatLabel; namespace Intro { -class PhoneWidget : public Widget::Step, private base::Subscriber { +class PhoneWidget : public Widget::Step { Q_OBJECT public: diff --git a/Telegram/SourceFiles/intro/introsignup.h b/Telegram/SourceFiles/intro/introsignup.h index ab6561c5e..d5db7aca7 100644 --- a/Telegram/SourceFiles/intro/introsignup.h +++ b/Telegram/SourceFiles/intro/introsignup.h @@ -31,7 +31,7 @@ class NewAvatarButton; namespace Intro { -class SignupWidget : public Widget::Step, private base::Subscriber { +class SignupWidget : public Widget::Step { Q_OBJECT public: diff --git a/Telegram/SourceFiles/intro/introwidget.cpp b/Telegram/SourceFiles/intro/introwidget.cpp index 5edfa0e07..4ffe11ad5 100644 --- a/Telegram/SourceFiles/intro/introwidget.cpp +++ b/Telegram/SourceFiles/intro/introwidget.cpp @@ -43,6 +43,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "styles/style_boxes.h" #include "styles/style_intro.h" #include "styles/style_window.h" +#include "window/themes/window_theme.h" namespace Intro { @@ -663,6 +664,14 @@ Widget::Step::Step(QWidget *parent, Data *data, bool hasCover) : TWidget(parent) , _title(this, _hasCover ? st::introCoverTitle : st::introTitle) , _description(this, object_ptr<Ui::FlatLabel>(this, _hasCover ? st::introCoverDescription : st::introDescription), st::introErrorDuration) { hide(); + subscribe(Window::Theme::Background(), [this](const Window::Theme::BackgroundUpdate &update) { + if (update.paletteChanged()) { + if (!_coverMask.isNull()) { + _coverMask = QPixmap(); + prepareCoverMask(); + } + } + }); } void Widget::Step::prepareShowAnimated(Step *after) { diff --git a/Telegram/SourceFiles/intro/introwidget.h b/Telegram/SourceFiles/intro/introwidget.h index f8ac94786..05f61f88f 100644 --- a/Telegram/SourceFiles/intro/introwidget.h +++ b/Telegram/SourceFiles/intro/introwidget.h @@ -92,7 +92,7 @@ public: Forward, Replace, }; - class Step : public TWidget, public RPCSender { + class Step : public TWidget, public RPCSender, protected base::Subscriber { public: Step(QWidget *parent, Data *data, bool hasCover = false);