From ea22bdce189ccd08155c5eeb7806fbeba6713d90 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Wed, 7 Mar 2018 20:42:32 +0200 Subject: Add a unique id for locally uploaded images The event_id will be an empty string because we haven't received yet --- src/timeline/widgets/ImageItem.cc | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/timeline/widgets/ImageItem.cc b/src/timeline/widgets/ImageItem.cc index 83ab96b1..a4f1ca57 100644 --- a/src/timeline/widgets/ImageItem.cc +++ b/src/timeline/widgets/ImageItem.cc @@ -21,6 +21,7 @@ #include #include #include +#include #include "Config.h" #include "Utils.h" @@ -55,9 +56,12 @@ ImageItem::ImageItem(QSharedPointer client, client_.data()->downloadImage(QString::fromStdString(event.event_id), url_); connect(client_.data(), - SIGNAL(imageDownloaded(const QString &, const QPixmap &)), + &MatrixClient::imageDownloaded, this, - SLOT(imageDownloaded(const QString &, const QPixmap &))); + [this](const QString &id, const QPixmap &img) { + if (id == QString::fromStdString(event_.event_id)) + setImage(img); + }); } ImageItem::ImageItem(QSharedPointer client, @@ -87,21 +91,16 @@ ImageItem::ImageItem(QSharedPointer client, url_ = QString("%1/_matrix/media/r0/download/%2") .arg(client_.data()->getHomeServer().toString(), media_params); - client_.data()->downloadImage(QString::fromStdString(event_.event_id), url_); + const auto request_id = QUuid::createUuid().toString(); + client_.data()->downloadImage(request_id, url_); connect(client_.data(), - SIGNAL(imageDownloaded(const QString &, const QPixmap &)), + &MatrixClient::imageDownloaded, this, - SLOT(imageDownloaded(const QString &, const QPixmap &))); -} - -void -ImageItem::imageDownloaded(const QString &event_id, const QPixmap &img) -{ - if (event_id != QString::fromStdString(event_.event_id)) - return; - - setImage(img); + [request_id, this](const QString &id, const QPixmap &img) { + if (id == request_id) + setImage(img); + }); } void -- cgit 1.5.1