2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-08-31 06:26:18 +00:00

Fix crash in session destruction.

Also use rpl::event_stream for downloaderTaskFinished.
This commit is contained in:
John Preston
2020-07-01 12:03:34 +04:00
parent 0981335ca7
commit eb1845e33b
38 changed files with 129 additions and 78 deletions

View File

@@ -26,7 +26,7 @@ void CloudImageView::set(
not_null<Main::Session*> session,
QImage image) {
_image.emplace(std::move(image));
session->downloaderTaskFinished().notify();
session->notifyDownloaderTaskFinished();
}
CloudImage::CloudImage() = default;

View File

@@ -222,8 +222,7 @@ void CloudThemes::loadDocumentAndInvoke(
return;
}
if (!alreadyWaiting) {
base::ObservableViewer(
_session->downloaderTaskFinished()
_session->downloaderTaskFinished(
) | rpl::filter([=, &value] {
return value.documentMedia->loaded();
}) | rpl::start_with_next([=, &value] {

View File

@@ -168,7 +168,7 @@ void DocumentMedia::setGoodThumbnail(QImage thumbnail) {
return;
}
_goodThumbnail = std::make_unique<Image>(std::move(thumbnail));
_owner->session().downloaderTaskFinished().notify();
_owner->session().notifyDownloaderTaskFinished();
}
Image *DocumentMedia::thumbnailInline() const {
@@ -206,7 +206,7 @@ QSize DocumentMedia::thumbnailSize() const {
void DocumentMedia::setThumbnail(QImage thumbnail) {
_thumbnail = std::make_unique<Image>(std::move(thumbnail));
_owner->session().downloaderTaskFinished().notify();
_owner->session().notifyDownloaderTaskFinished();
}
QByteArray DocumentMedia::videoThumbnailContent() const {

View File

@@ -82,7 +82,7 @@ void PhotoMedia::set(PhotoSize size, QImage image) {
Qt::SmoothTransformation);
}
_images[index] = std::make_unique<Image>(std::move(image));
_owner->session().downloaderTaskFinished().notify();
_owner->session().notifyDownloaderTaskFinished();
}
bool PhotoMedia::loaded() const {

View File

@@ -34,7 +34,7 @@ void StickersSetThumbnailView::set(
} else {
_image = std::make_unique<Image>(std::move(image));
}
session->downloaderTaskFinished().notify();
session->notifyDownloaderTaskFinished();
}
Image *StickersSetThumbnailView::image() const {