@@ -298,7 +298,7 @@ void GiftButton::setDescriptor(const GiftDescriptor &descriptor, Mode mode) {
298298 _stars->setColorOverride (
299299 Ui::Premium::CreditsIconGradientStops ());
300300 }
301- _lockedUntilDate = data.info .lockedUntilDate ;
301+ _lockedUntilDate = data.resale ? 0 : data. info .lockedUntilDate ;
302302 });
303303
304304 refreshLocked ();
@@ -632,16 +632,20 @@ void GiftButton::cacheUniqueBackground(
632632
633633void GiftButton::paintEvent (QPaintEvent *e) {
634634 auto p = QPainter (this );
635- const auto unique = v::is<GiftTypeStars>(_descriptor)
636- ? v::get<GiftTypeStars>(_descriptor).info .unique .get ()
637- : nullptr ;
635+ const auto stargift = std::get_if<GiftTypeStars>(&_descriptor);
636+ const auto unique = stargift ? stargift->info .unique .get () : nullptr ;
638637 const auto onsale = unique && unique->starsForResale && small ();
639- const auto requirePremium = v::is<GiftTypeStars>(_descriptor)
640- && !v::get<GiftTypeStars>(_descriptor).userpic
641- && !v::get<GiftTypeStars>(_descriptor).info .unique
642- && v::get<GiftTypeStars>(_descriptor).info .requirePremium ;
643- const auto hidden = v::is<GiftTypeStars>(_descriptor)
644- && v::get<GiftTypeStars>(_descriptor).hidden ;
638+ const auto requirePremium = stargift
639+ && !stargift->userpic
640+ && !stargift->info .unique
641+ && stargift->info .requirePremium ;
642+ const auto hidden = stargift && stargift->hidden ;
643+ const auto soldOut = stargift
644+ && !(stargift->pinned || stargift->pinnedSelection )
645+ && !unique
646+ && !stargift->userpic
647+ && stargift->info .limitedCount
648+ && !stargift->info .limitedLeft ;
645649 const auto extend = currentExtend ();
646650 const auto position = QPoint (extend.left (), extend.top ());
647651 const auto background = _delegate->background ();
@@ -683,7 +687,7 @@ void GiftButton::paintEvent(QPaintEvent *e) {
683687 progress * (thickness * 2 + st::giftBoxUserpicSkip)));
684688 }
685689 }
686- if (_locked) {
690+ if (_locked && !soldOut ) {
687691 st::giftBoxLockIcon.paint (
688692 p,
689693 position + st::giftBoxLockIconPosition,
@@ -780,10 +784,6 @@ void GiftButton::paintEvent(QPaintEvent *e) {
780784 const auto count = data.info .limitedCount ;
781785 const auto pinned = data.pinned || data.pinnedSelection ;
782786 if (count || pinned) {
783- const auto soldOut = !pinned
784- && !unique
785- && !data.userpic
786- && !data.info .limitedLeft ;
787787 const auto yourLeft = data.info .perUserTotal
788788 ? (data.info .perUserRemains
789789 ? tr::lng_gift_stars_your_left (
0 commit comments