From abdd2fa99b17822410eb0033e14c1aac5e10005f Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 22 Jul 2021 19:12:30 +0300 Subject: [PATCH] Added ability to force open media viewer from overview layout. --- .../SourceFiles/info/media/info_media_list_widget.cpp | 8 ++++++-- Telegram/SourceFiles/info/media/info_media_list_widget.h | 3 ++- Telegram/SourceFiles/overview/overview_layout.cpp | 5 +++-- Telegram/SourceFiles/overview/overview_layout.h | 4 +++- Telegram/SourceFiles/overview/overview_layout_delegate.h | 3 ++- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp index ab4a914ae..93e1fb405 100644 --- a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp +++ b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp @@ -887,8 +887,12 @@ void ListWidget::openPhoto(not_null photo, FullMsgId id) { void ListWidget::openDocument( not_null document, - FullMsgId id) { - _controller->parentController()->openDocument(document, id); + FullMsgId id, + bool showInMediaView) { + _controller->parentController()->openDocument( + document, + id, + showInMediaView); } SparseIdsMergedSlice::Key ListWidget::sliceKey( diff --git a/Telegram/SourceFiles/info/media/info_media_list_widget.h b/Telegram/SourceFiles/info/media/info_media_list_widget.h index 1c5ce745a..2a9a678ad 100644 --- a/Telegram/SourceFiles/info/media/info_media_list_widget.h +++ b/Telegram/SourceFiles/info/media/info_media_list_widget.h @@ -84,7 +84,8 @@ public: void openPhoto(not_null photo, FullMsgId id) override; void openDocument( not_null document, - FullMsgId id) override; + FullMsgId id, + bool showInMediaView = false) override; private: struct Context; diff --git a/Telegram/SourceFiles/overview/overview_layout.cpp b/Telegram/SourceFiles/overview/overview_layout.cpp index 81ceba525..bad2a68b4 100644 --- a/Telegram/SourceFiles/overview/overview_layout.cpp +++ b/Telegram/SourceFiles/overview/overview_layout.cpp @@ -191,13 +191,14 @@ void ItemBase::ensureCheckboxCreated() { } void RadialProgressItem::setDocumentLinks( - not_null document) { + not_null document, + bool forceOpen) { const auto context = parent()->fullId(); setLinks( std::make_shared( document, crl::guard(this, [=](FullMsgId id) { - delegate()->openDocument(document, id); + delegate()->openDocument(document, id, forceOpen); }), context), std::make_shared(document, context), diff --git a/Telegram/SourceFiles/overview/overview_layout.h b/Telegram/SourceFiles/overview/overview_layout.h index 175f84c1e..65682f38e 100644 --- a/Telegram/SourceFiles/overview/overview_layout.h +++ b/Telegram/SourceFiles/overview/overview_layout.h @@ -117,7 +117,9 @@ protected: ClickHandlerPtr &&openl, ClickHandlerPtr &&savel, ClickHandlerPtr &&cancell); - void setDocumentLinks(not_null document); + void setDocumentLinks( + not_null document, + bool forceOpen = false); void radialAnimationCallback(crl::time now) const; diff --git a/Telegram/SourceFiles/overview/overview_layout_delegate.h b/Telegram/SourceFiles/overview/overview_layout_delegate.h index 179603c32..a1dcfe5e5 100644 --- a/Telegram/SourceFiles/overview/overview_layout_delegate.h +++ b/Telegram/SourceFiles/overview/overview_layout_delegate.h @@ -21,7 +21,8 @@ public: virtual void openPhoto(not_null photo, FullMsgId id) = 0; virtual void openDocument( not_null document, - FullMsgId id) = 0; + FullMsgId id, + bool showInMediaView = false) = 0; };