diff --git a/Telegram/SourceFiles/boxes/sticker_set_box.cpp b/Telegram/SourceFiles/boxes/sticker_set_box.cpp index 5324b3e61a..1b16d850dc 100644 --- a/Telegram/SourceFiles/boxes/sticker_set_box.cpp +++ b/Telegram/SourceFiles/boxes/sticker_set_box.cpp @@ -411,9 +411,11 @@ void StickerSetBox::Inner::mouseMoveEvent(QMouseEvent *e) { int index = stickerFromGlobalPos(e->globalPos()); if (index >= 0 && index < _pack.size() && index != _previewShown) { _previewShown = index; - Ui::showMediaPreview( - Data::FileOriginStickerSet(_setId, _setAccess), - _pack[_previewShown]); + if (const auto w = App::wnd()) { + w->showMediaPreview( + Data::FileOriginStickerSet(_setId, _setAccess), + _pack[_previewShown]); + } } } } @@ -472,9 +474,11 @@ void StickerSetBox::Inner::showPreview() { int index = stickerFromGlobalPos(QCursor::pos()); if (index >= 0 && index < _pack.size()) { _previewShown = index; - Ui::showMediaPreview( - Data::FileOriginStickerSet(_setId, _setAccess), - _pack[_previewShown]); + if (const auto w = App::wnd()) { + w->showMediaPreview( + Data::FileOriginStickerSet(_setId, _setAccess), + _pack[_previewShown]); + } } } diff --git a/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp b/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp index ad91949ab5..7798a9b07f 100644 --- a/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp +++ b/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp @@ -1030,9 +1030,11 @@ void FieldAutocompleteInner::selectByMouse(QPoint globalPosition) { if (_down >= 0 && _sel >= 0 && _down != _sel) { _down = _sel; if (_down >= 0 && _down < _srows->size()) { - Ui::showMediaPreview( - (*_srows)[_down].document->stickerSetOrigin(), - (*_srows)[_down].document); + if (const auto w = App::wnd()) { + w->showMediaPreview( + (*_srows)[_down].document->stickerSetOrigin(), + (*_srows)[_down].document); + } } } } @@ -1050,10 +1052,12 @@ void FieldAutocompleteInner::onParentGeometryChanged() { void FieldAutocompleteInner::showPreview() { if (_down >= 0 && _down < _srows->size()) { - Ui::showMediaPreview( - (*_srows)[_down].document->stickerSetOrigin(), - (*_srows)[_down].document); - _previewShown = true; + if (const auto w = App::wnd()) { + w->showMediaPreview( + (*_srows)[_down].document->stickerSetOrigin(), + (*_srows)[_down].document); + _previewShown = true; + } } } diff --git a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp index 207614c371..f286d79e8c 100644 --- a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp @@ -985,14 +985,16 @@ void GifsListWidget::updateSelected() { _pressed = _selected; if (row >= 0 && col >= 0) { auto layout = _rows[row].items[col]; - if (const auto previewDocument = layout->getPreviewDocument()) { - Ui::showMediaPreview( - Data::FileOriginSavedGifs(), - previewDocument); - } else if (const auto previewPhoto = layout->getPreviewPhoto()) { - Ui::showMediaPreview( - Data::FileOrigin(), - previewPhoto); + if (const auto w = App::wnd()) { + if (const auto previewDocument = layout->getPreviewDocument()) { + w->showMediaPreview( + Data::FileOriginSavedGifs(), + previewDocument); + } else if (const auto previewPhoto = layout->getPreviewPhoto()) { + w->showMediaPreview( + Data::FileOrigin(), + previewPhoto); + } } } } @@ -1009,16 +1011,18 @@ void GifsListWidget::showPreview() { int row = _pressed / MatrixRowShift, col = _pressed % MatrixRowShift; if (row < _rows.size() && col < _rows[row].items.size()) { auto layout = _rows[row].items[col]; - if (const auto previewDocument = layout->getPreviewDocument()) { - Ui::showMediaPreview( - Data::FileOriginSavedGifs(), - previewDocument); - _previewShown = true; - } else if (const auto previewPhoto = layout->getPreviewPhoto()) { - Ui::showMediaPreview( - Data::FileOrigin(), - previewPhoto); - _previewShown = true; + if (const auto w = App::wnd()) { + if (const auto previewDocument = layout->getPreviewDocument()) { + w->showMediaPreview( + Data::FileOriginSavedGifs(), + previewDocument); + _previewShown = true; + } else if (const auto previewPhoto = layout->getPreviewPhoto()) { + w->showMediaPreview( + Data::FileOrigin(), + previewPhoto); + _previewShown = true; + } } } } diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp index b344ace351..b8784d8273 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp @@ -2617,7 +2617,9 @@ void StickersListWidget::setSelected(OverState newSelected) { const auto &set = sets[sticker->section]; Assert(sticker->index >= 0 && sticker->index < set.stickers.size()); const auto document = set.stickers[sticker->index].document; - Ui::showMediaPreview(document->stickerSetOrigin(), document); + if (const auto w = App::wnd()) { + w->showMediaPreview(document->stickerSetOrigin(), document); + } } } } @@ -2630,8 +2632,10 @@ void StickersListWidget::showPreview() { const auto &set = sets[sticker->section]; Assert(sticker->index >= 0 && sticker->index < set.stickers.size()); const auto document = set.stickers[sticker->index].document; - Ui::showMediaPreview(document->stickerSetOrigin(), document); - _previewShown = true; + if (const auto w = App::wnd()) { + w->showMediaPreview(document->stickerSetOrigin(), document); + _previewShown = true; + } } } diff --git a/Telegram/SourceFiles/facades.cpp b/Telegram/SourceFiles/facades.cpp index ffe98386a5..79019b3e5c 100644 --- a/Telegram/SourceFiles/facades.cpp +++ b/Telegram/SourceFiles/facades.cpp @@ -192,20 +192,6 @@ void showBox( } // namespace internal -void showMediaPreview( - Data::FileOrigin origin, - not_null document) { - if (auto w = App::wnd()) { - w->ui_showMediaPreview(origin, document); - } -} - -void showMediaPreview(Data::FileOrigin origin, not_null photo) { - if (auto w = App::wnd()) { - w->ui_showMediaPreview(origin, photo); - } -} - void hideLayer(anim::type animated) { if (auto w = App::wnd()) { w->ui_showBox( diff --git a/Telegram/SourceFiles/facades.h b/Telegram/SourceFiles/facades.h index 63503e766a..7a4cc5c3a1 100644 --- a/Telegram/SourceFiles/facades.h +++ b/Telegram/SourceFiles/facades.h @@ -97,11 +97,6 @@ void showBox( } // namespace internal -void showMediaPreview( - Data::FileOrigin origin, - not_null document); -void showMediaPreview(Data::FileOrigin origin, not_null photo); - template QPointer show( object_ptr content, diff --git a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp index 8ae19c3707..d6c72b9040 100644 --- a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp @@ -683,12 +683,14 @@ void Inner::updateSelected() { _pressed = _selected; if (row >= 0 && col >= 0) { auto layout = _rows.at(row).items.at(col); - if (const auto previewDocument = layout->getPreviewDocument()) { - Ui::showMediaPreview( - Data::FileOrigin(), - previewDocument); - } else if (auto previewPhoto = layout->getPreviewPhoto()) { - Ui::showMediaPreview(Data::FileOrigin(), previewPhoto); + if (const auto w = App::wnd()) { + if (const auto previewDocument = layout->getPreviewDocument()) { + w->showMediaPreview( + Data::FileOrigin(), + previewDocument); + } else if (auto previewPhoto = layout->getPreviewPhoto()) { + w->showMediaPreview(Data::FileOrigin(), previewPhoto); + } } } } @@ -708,12 +710,14 @@ void Inner::showPreview() { int row = _pressed / MatrixRowShift, col = _pressed % MatrixRowShift; if (row < _rows.size() && col < _rows.at(row).items.size()) { auto layout = _rows.at(row).items.at(col); - if (const auto previewDocument = layout->getPreviewDocument()) { - Ui::showMediaPreview(Data::FileOrigin(), previewDocument); - _previewShown = true; - } else if (const auto previewPhoto = layout->getPreviewPhoto()) { - Ui::showMediaPreview(Data::FileOrigin(), previewPhoto); - _previewShown = true; + if (const auto w = App::wnd()) { + if (const auto previewDocument = layout->getPreviewDocument()) { + w->showMediaPreview(Data::FileOrigin(), previewDocument); + _previewShown = true; + } else if (const auto previewPhoto = layout->getPreviewPhoto()) { + w->showMediaPreview(Data::FileOrigin(), previewPhoto); + _previewShown = true; + } } } } diff --git a/Telegram/SourceFiles/mainwindow.cpp b/Telegram/SourceFiles/mainwindow.cpp index d4cdba90fe..481a7912f3 100644 --- a/Telegram/SourceFiles/mainwindow.cpp +++ b/Telegram/SourceFiles/mainwindow.cpp @@ -382,7 +382,7 @@ bool MainWindow::ui_isLayerShown() { return _layer != nullptr; } -void MainWindow::ui_showMediaPreview( +void MainWindow::showMediaPreview( Data::FileOrigin origin, not_null document) { if (!document || ((!document->isAnimation() || !document->loaded()) && !document->sticker())) { @@ -398,7 +398,7 @@ void MainWindow::ui_showMediaPreview( _mediaPreview->showPreview(origin, document); } -void MainWindow::ui_showMediaPreview( +void MainWindow::showMediaPreview( Data::FileOrigin origin, not_null photo) { if (!photo) { diff --git a/Telegram/SourceFiles/mainwindow.h b/Telegram/SourceFiles/mainwindow.h index 620de804b6..1e9ada82d8 100644 --- a/Telegram/SourceFiles/mainwindow.h +++ b/Telegram/SourceFiles/mainwindow.h @@ -109,12 +109,13 @@ public: void ui_hideSettingsAndLayer(anim::type animated); void ui_removeLayerBlackout(); bool ui_isLayerShown(); - void ui_showMediaPreview( + void showMediaPreview( Data::FileOrigin origin, not_null document); - void ui_showMediaPreview( + void showMediaPreview( Data::FileOrigin origin, not_null photo); + void hideMediaPreview(); protected: bool eventFilter(QObject *o, QEvent *e) override; @@ -152,7 +153,6 @@ private: void handleTrayIconActication( QSystemTrayIcon::ActivationReason reason) override; - void hideMediaPreview(); void ensureLayerCreated(); void destroyLayer();