Add premium sticker packs icon.
Before Width: | Height: | Size: 765 B After Width: | Height: | Size: 700 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
Telegram/Resources/icons/emoji/stickers_premium.png
Normal file
After Width: | Height: | Size: 599 B |
BIN
Telegram/Resources/icons/emoji/stickers_premium@2x.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Telegram/Resources/icons/emoji/stickers_premium@3x.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 481 B After Width: | Height: | Size: 643 B |
Before Width: | Height: | Size: 936 B After Width: | Height: | Size: 983 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 21a7adc03c0bb256b1dac8281fe1ca76c4296aa7
|
||||
Subproject commit 9c09b1fad07d5048b55a1dfcb27c7d1a585bba55
|