diff --git a/Telegram/Resources/icons/emoji/emoji_settings.png b/Telegram/Resources/icons/emoji/emoji_settings.png index ed8de446d6..fa77adf096 100644 Binary files a/Telegram/Resources/icons/emoji/emoji_settings.png and b/Telegram/Resources/icons/emoji/emoji_settings.png differ diff --git a/Telegram/Resources/icons/emoji/emoji_settings@2x.png b/Telegram/Resources/icons/emoji/emoji_settings@2x.png index ded23bc2ff..591d1164a3 100644 Binary files a/Telegram/Resources/icons/emoji/emoji_settings@2x.png and b/Telegram/Resources/icons/emoji/emoji_settings@2x.png differ diff --git a/Telegram/Resources/icons/emoji/emoji_settings@3x.png b/Telegram/Resources/icons/emoji/emoji_settings@3x.png index 7b16e6b5b9..70c9bfaa2b 100644 Binary files a/Telegram/Resources/icons/emoji/emoji_settings@3x.png and b/Telegram/Resources/icons/emoji/emoji_settings@3x.png differ diff --git a/Telegram/Resources/icons/emoji/stickers_premium.png b/Telegram/Resources/icons/emoji/stickers_premium.png new file mode 100644 index 0000000000..f2fc24545c Binary files /dev/null and b/Telegram/Resources/icons/emoji/stickers_premium.png differ diff --git a/Telegram/Resources/icons/emoji/stickers_premium@2x.png b/Telegram/Resources/icons/emoji/stickers_premium@2x.png new file mode 100644 index 0000000000..71b77efe22 Binary files /dev/null and b/Telegram/Resources/icons/emoji/stickers_premium@2x.png differ diff --git a/Telegram/Resources/icons/emoji/stickers_premium@3x.png b/Telegram/Resources/icons/emoji/stickers_premium@3x.png new file mode 100644 index 0000000000..9676bc9c55 Binary files /dev/null and b/Telegram/Resources/icons/emoji/stickers_premium@3x.png differ diff --git a/Telegram/Resources/icons/emoji/stickers_search.png b/Telegram/Resources/icons/emoji/stickers_search.png index 1c78d9ce49..9645d1c9b5 100644 Binary files a/Telegram/Resources/icons/emoji/stickers_search.png and b/Telegram/Resources/icons/emoji/stickers_search.png differ diff --git a/Telegram/Resources/icons/emoji/stickers_search@2x.png b/Telegram/Resources/icons/emoji/stickers_search@2x.png index 25bf885bfe..fedddd5a50 100644 Binary files a/Telegram/Resources/icons/emoji/stickers_search@2x.png and b/Telegram/Resources/icons/emoji/stickers_search@2x.png differ diff --git a/Telegram/Resources/icons/emoji/stickers_search@3x.png b/Telegram/Resources/icons/emoji/stickers_search@3x.png index 5ec974dacd..f3d5cef32e 100644 Binary files a/Telegram/Resources/icons/emoji/stickers_search@3x.png and b/Telegram/Resources/icons/emoji/stickers_search@3x.png differ diff --git a/Telegram/SourceFiles/chat_helpers/chat_helpers.style b/Telegram/SourceFiles/chat_helpers/chat_helpers.style index d5c19ccbae..98a78b0430 100644 --- a/Telegram/SourceFiles/chat_helpers/chat_helpers.style +++ b/Telegram/SourceFiles/chat_helpers/chat_helpers.style @@ -94,9 +94,9 @@ stickersTrendingUnread: icon { { "emoji/stickers_add_unread", emojiIconFg }, { "emoji/stickers_add_dot", dialogsUnreadBg } }; -stickersRecent: icon {{ "emoji/stickers_recent", emojiIconFg }}; +stickersRecent: icon {{ "emoji/emoji_recent", emojiIconFg }}; stickersSearch: icon {{ "emoji/stickers_search", emojiIconFg }}; -stickersPremium: icon {{ "emoji/stickers_search", emojiIconFg }}; +stickersPremium: icon {{ "emoji/stickers_premium", emojiIconFg }}; stickersSettingsUnreadSize: 6px; stickersSettingsUnreadPosition: point(6px, 10px); diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp index f260abc40c..9a1d5986be 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp @@ -184,6 +184,7 @@ private: bool paused) const; void paintSelectionBar(Painter &p) const; void paintLeftRightFading(Painter &p) const; + void validatePremiumIcon() const; void initSearch(); void toggleSearch(bool visible); @@ -204,6 +205,7 @@ private: bool _iconsDragging = false; Ui::Animations::Basic _iconsAnimation; QPoint _iconsMousePos, _iconsMouseDown; + mutable QImage _premiumIcon; int _iconsLeft = 0; int _iconsRight = 0; int _iconsTop = 0; @@ -327,6 +329,36 @@ StickersListWidget::Footer::Footer( ) | rpl::start_with_next([=] { update(); }, lifetime()); + + style::PaletteChanged( + ) | rpl::start_with_next([=] { + _premiumIcon = QImage(); + }, lifetime()); +} + +void StickersListWidget::Footer::validatePremiumIcon() const { + if (!_premiumIcon.isNull()) { + return; + } + const auto size = st::stickersPremium.size(); + const auto mask = st::stickersPremium.instance(Qt::white); + const auto factor = style::DevicePixelRatio(); + _premiumIcon = QImage( + size * factor, + QImage::Format_ARGB32_Premultiplied); + _premiumIcon.setDevicePixelRatio(factor); + + QPainter p(&_premiumIcon); + auto gradient = QLinearGradient( + QPoint(0, size.height()), + QPoint(size.width(), 0)); + gradient.setStops({ + { 0., st::stickerPanPremium1->c }, + { 1., st::stickerPanPremium2->c }, + }); + p.fillRect(QRect(QPoint(), size), gradient); + p.setCompositionMode(QPainter::CompositionMode_DestinationIn); + p.drawImage(QRect(QPoint(), size), mask); } void StickersListWidget::Footer::clearHeavyData() { @@ -1037,6 +1069,13 @@ void StickersListWidget::Footer::paintSetIcon( _iconsTop + (st::emojiFooterHeight - size) / 2, width(), st::stickerGroupCategorySize); + } else if (icon.setId == Data::Stickers::PremiumSetId) { + validatePremiumIcon(); + const auto size = st::stickersPremium.size(); + p.drawImage( + info.left + (st::stickerIconWidth - size.width()) / 2, + _iconsTop + (st::emojiFooterHeight - size.height()) / 2, + _premiumIcon); } else { const auto paintedIcon = [&] { if (icon.setId == Data::Stickers::FeaturedSetId) { @@ -1044,12 +1083,10 @@ void StickersListWidget::Footer::paintSetIcon( return session->data().stickers().featuredSetsUnreadCount() ? &st::stickersTrendingUnread : &st::stickersTrending; - } else if (icon.setId == Data::Stickers::PremiumSetId) { - return &st::stickersPremium; //} else if (setId == Stickers::FavedSetId) { // return &st::stickersFaved; } - return &st::stickersRecent; + return &st::emojiRecent; }(); paintedIcon->paint( p, diff --git a/Telegram/lib_ui b/Telegram/lib_ui index 21a7adc03c..9c09b1fad0 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit 21a7adc03c0bb256b1dac8281fe1ca76c4296aa7 +Subproject commit 9c09b1fad07d5048b55a1dfcb27c7d1a585bba55