diff --git a/Telegram/SourceFiles/boxes/send_files_box.cpp b/Telegram/SourceFiles/boxes/send_files_box.cpp index 01ecb2b4d..809b6f09f 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.cpp +++ b/Telegram/SourceFiles/boxes/send_files_box.cpp @@ -343,6 +343,14 @@ rpl::producer SendFilesBox::Block::itemModifyRequest() const { } } +rpl::producer<> SendFilesBox::Block::orderUpdated() const { + if (_isAlbum) { + const auto album = static_cast(_preview.get()); + return album->orderUpdated(); + } + return rpl::never<>(); +} + void SendFilesBox::Block::setSendWay(Ui::SendFilesWay way) { if (!_isAlbum) { if (_isSingleMedia) { @@ -1123,6 +1131,13 @@ void SendFilesBox::pushBlock(int from, int till) { st::sendMediaPreviewSize, [=] { refreshAllAfterChanges(from); }); }, widget->lifetime()); + + block.orderUpdated() | rpl::start_with_next([=]{ + if (_priceTag) { + _priceTagBg = QImage(); + _priceTag->update(); + } + }, widget->lifetime()); } void SendFilesBox::refreshControls(bool initial) { diff --git a/Telegram/SourceFiles/boxes/send_files_box.h b/Telegram/SourceFiles/boxes/send_files_box.h index 7ba1a8070..8f3432ebd 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.h +++ b/Telegram/SourceFiles/boxes/send_files_box.h @@ -161,6 +161,7 @@ private: [[nodiscard]] rpl::producer itemDeleteRequest() const; [[nodiscard]] rpl::producer itemReplaceRequest() const; [[nodiscard]] rpl::producer itemModifyRequest() const; + [[nodiscard]] rpl::producer<> orderUpdated() const; void setSendWay(Ui::SendFilesWay way); void toggleSpoilers(bool enabled); diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.cpp b/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.cpp index 94d3b6286..b02409084 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.cpp +++ b/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.cpp @@ -279,6 +279,7 @@ void AlbumPreview::finishDrag() { _finishDragAnimation.start([=] { update(); }, 0., 1., kDragDuration); updateSizeAnimated(layout); + _orderUpdated.fire({}); } else { for (const auto &thumb : _thumbs) { thumb->resetLayoutAnimation(); @@ -297,7 +298,7 @@ int AlbumPreview::countLayoutHeight( } void AlbumPreview::updateSizeAnimated( - const std::vector &layout) { + const std::vector &layout) { const auto newHeight = countLayoutHeight(layout); if (newHeight != _thumbsHeight) { _thumbsHeightAnimation.start( @@ -649,7 +650,7 @@ QImage AlbumPreview::generatePriceTagBackground() const { p.translate(geometry.center()); p.scale(wscale, hscale); p.translate(-geometry.center()); - thumb->paintInAlbum(p, 0, 0, 0., 0.); + thumb->paintInAlbum(p, 0, 0, 1., 1.); p.restore(); } p.end(); diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.h b/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.h index 9a4b8bc05..9f1c9969d 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.h +++ b/Telegram/SourceFiles/ui/chat/attach/attach_album_preview.h @@ -51,6 +51,10 @@ public: return _thumbModified.events(); } + [[nodiscard]] rpl::producer<> orderUpdated() const { + return _orderUpdated.events(); + } + [[nodiscard]] QImage generatePriceTagBackground() const; protected: @@ -120,6 +124,7 @@ private: rpl::event_stream _thumbDeleted; rpl::event_stream _thumbChanged; rpl::event_stream _thumbModified; + rpl::event_stream<> _orderUpdated; base::unique_qptr _menu;