summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-07 20:42:32 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-07 20:42:32 +0200
commitea22bdce189ccd08155c5eeb7806fbeba6713d90 (patch)
tree0d674b6d67be019cd33a5a6f37fea54a407f3e17 /src
parentAdd missing header (diff)
downloadnheko-ea22bdce189ccd08155c5eeb7806fbeba6713d90.tar.xz
Add a unique id for locally uploaded images
The event_id will be an empty string because we haven't received yet
Diffstat (limited to 'src')
-rw-r--r--src/timeline/widgets/ImageItem.cc27
1 files changed, 13 insertions, 14 deletions
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 <QFileInfo> #include <QPainter> #include <QPixmap> +#include <QUuid> #include "Config.h" #include "Utils.h" @@ -55,9 +56,12 @@ ImageItem::ImageItem(QSharedPointer<MatrixClient> 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<MatrixClient> client, @@ -87,21 +91,16 @@ ImageItem::ImageItem(QSharedPointer<MatrixClient> 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