mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
Replaced with struct returned rpl data for requests of view repaint.
This commit is contained in:
@@ -335,8 +335,8 @@ PreviewWrap::PreviewWrap(
|
||||
|
||||
const auto session = &_history->session();
|
||||
session->data().viewRepaintRequest(
|
||||
) | rpl::on_next([=](not_null<const Element*> view) {
|
||||
if (view == _element.get()) {
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (data.view == _element.get()) {
|
||||
update();
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
@@ -594,8 +594,8 @@ PreviewWrap::PreviewWrap(
|
||||
|
||||
using namespace HistoryView;
|
||||
_history->owner().viewRepaintRequest(
|
||||
) | rpl::on_next([=](not_null<const Element*> view) {
|
||||
if (view == _item.get()) {
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (data.view == _item.get()) {
|
||||
update();
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
@@ -162,8 +162,8 @@ PreviewWrap::PreviewWrap(
|
||||
|
||||
const auto session = &_item->history()->session();
|
||||
session->data().viewRepaintRequest(
|
||||
) | rpl::on_next([=](not_null<const HistoryView::Element*> view) {
|
||||
if (view == _element.get()) {
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (data.view == _element.get()) {
|
||||
update(_elementGeometry);
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
@@ -1984,10 +1984,10 @@ rpl::producer<not_null<const HistoryItem*>> Session::itemRepaintRequest() const
|
||||
}
|
||||
|
||||
void Session::requestViewRepaint(not_null<const ViewElement*> view) {
|
||||
_viewRepaintRequest.fire_copy(view);
|
||||
_viewRepaintRequest.fire_copy({ view });
|
||||
}
|
||||
|
||||
rpl::producer<not_null<const ViewElement*>> Session::viewRepaintRequest() const {
|
||||
rpl::producer<RequestViewRepaint> Session::viewRepaintRequest() const {
|
||||
return _viewRepaintRequest.events();
|
||||
}
|
||||
|
||||
|
||||
@@ -140,6 +140,11 @@ struct RecentJoinChat {
|
||||
PeerId joinedPeerId = 0;
|
||||
};
|
||||
|
||||
struct RequestViewRepaint {
|
||||
not_null<const HistoryView::Element*> view;
|
||||
QRect rect;
|
||||
};
|
||||
|
||||
class Session final {
|
||||
public:
|
||||
using ViewElement = HistoryView::Element;
|
||||
@@ -371,7 +376,7 @@ public:
|
||||
void requestItemRepaint(not_null<const HistoryItem*> item);
|
||||
[[nodiscard]] rpl::producer<not_null<const HistoryItem*>> itemRepaintRequest() const;
|
||||
void requestViewRepaint(not_null<const ViewElement*> view);
|
||||
[[nodiscard]] rpl::producer<not_null<const ViewElement*>> viewRepaintRequest() const;
|
||||
[[nodiscard]] rpl::producer<RequestViewRepaint> viewRepaintRequest() const;
|
||||
void requestItemResize(not_null<const HistoryItem*> item);
|
||||
[[nodiscard]] rpl::producer<not_null<const HistoryItem*>> itemResizeRequest() const;
|
||||
void requestViewResize(not_null<ViewElement*> view);
|
||||
@@ -1103,7 +1108,7 @@ private:
|
||||
rpl::event_stream<GiftsUpdate> _giftsUpdates;
|
||||
rpl::event_stream<GiftAuctionGot> _giftAuctionGots;
|
||||
rpl::event_stream<not_null<const HistoryItem*>> _itemRepaintRequest;
|
||||
rpl::event_stream<not_null<const ViewElement*>> _viewRepaintRequest;
|
||||
rpl::event_stream<RequestViewRepaint> _viewRepaintRequest;
|
||||
rpl::event_stream<not_null<const HistoryItem*>> _itemResizeRequest;
|
||||
rpl::event_stream<not_null<ViewElement*>> _viewResizeRequest;
|
||||
rpl::event_stream<not_null<HistoryItem*>> _itemShowHighlightRequest;
|
||||
|
||||
@@ -274,9 +274,9 @@ InnerWidget::InnerWidget(
|
||||
setMouseTracking(true);
|
||||
_scrollDateHideTimer.setCallback([=] { scrollDateHideByTimer(); });
|
||||
session().data().viewRepaintRequest(
|
||||
) | rpl::on_next([=](auto view) {
|
||||
if (myView(view)) {
|
||||
repaintItem(view);
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (myView(data.view)) {
|
||||
repaintItem(data.view);
|
||||
}
|
||||
}, lifetime());
|
||||
session().data().viewResizeRequest(
|
||||
|
||||
@@ -403,8 +403,8 @@ HistoryInner::HistoryInner(
|
||||
mouseActionCancel();
|
||||
}, lifetime());
|
||||
session().data().viewRepaintRequest(
|
||||
) | rpl::on_next([this](not_null<const Element*> view) {
|
||||
repaintItem(view);
|
||||
) | rpl::on_next([this](Data::RequestViewRepaint data) {
|
||||
repaintItem(data.view);
|
||||
}, lifetime());
|
||||
session().data().viewLayoutChanged(
|
||||
) | rpl::filter([=](not_null<const Element*> view) {
|
||||
|
||||
@@ -205,8 +205,8 @@ PreviewWrap::PreviewWrap(
|
||||
|
||||
const auto session = &_history->session();
|
||||
session->data().viewRepaintRequest(
|
||||
) | rpl::on_next([=](not_null<const Element*> view) {
|
||||
if (_views.contains(view)) {
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (_views.contains(data.view)) {
|
||||
update();
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
@@ -416,9 +416,9 @@ ListWidget::ListWidget(
|
||||
setMouseTracking(true);
|
||||
_scrollDateHideTimer.setCallback([this] { scrollDateHideByTimer(); });
|
||||
_session->data().viewRepaintRequest(
|
||||
) | rpl::on_next([this](auto view) {
|
||||
if (view->delegate() == this) {
|
||||
repaintItem(view);
|
||||
) | rpl::on_next([this](Data::RequestViewRepaint data) {
|
||||
if (data.view->delegate() == this) {
|
||||
repaintItem(data.view);
|
||||
}
|
||||
}, lifetime());
|
||||
_session->data().viewResizeRequest(
|
||||
|
||||
@@ -109,8 +109,8 @@ PreviewWrap::PreviewWrap(
|
||||
|
||||
using namespace HistoryView;
|
||||
_history->owner().viewRepaintRequest(
|
||||
) | rpl::on_next([=](not_null<const Element*> view) {
|
||||
if (view == _item.get()) {
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (data.view == _item.get()) {
|
||||
update();
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
@@ -256,8 +256,8 @@ ReactionView::ReactionView(
|
||||
- st::msgMargin.bottom();
|
||||
|
||||
session->data().viewRepaintRequest(
|
||||
) | rpl::on_next([=](not_null<const Element*> element) {
|
||||
if (element == view) {
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (data.view == view) {
|
||||
update();
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
@@ -352,8 +352,8 @@ PreviewWrap::PreviewWrap(
|
||||
_style->apply(_theme.get());
|
||||
|
||||
session->data().viewRepaintRequest(
|
||||
) | rpl::on_next([=](not_null<const Element*> view) {
|
||||
if (view == _view->view()) {
|
||||
) | rpl::on_next([=](Data::RequestViewRepaint data) {
|
||||
if (data.view == _view->view()) {
|
||||
update();
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
Reference in New Issue
Block a user