summary refs log tree commit diff
path: root/src/timeline/widgets/FileItem.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-07 21:23:57 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-07 21:23:57 +0200
commit39abf163b8ec42b27a3ece4bb861aad4d3cfe5f1 (patch)
tree8576b2915a81c392234b58d6ec383ff1b2e1252d /src/timeline/widgets/FileItem.cc
parentAdd a unique id for locally uploaded images (diff)
downloadnheko-39abf163b8ec42b27a3ece4bb861aad4d3cfe5f1.tar.xz
Crete a proxy for media to uniquely match signal to the caller
Diffstat (limited to 'src/timeline/widgets/FileItem.cc')
-rw-r--r--src/timeline/widgets/FileItem.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/timeline/widgets/FileItem.cc b/src/timeline/widgets/FileItem.cc

index 258536e7..d11ebe91 100644 --- a/src/timeline/widgets/FileItem.cc +++ b/src/timeline/widgets/FileItem.cc
@@ -57,8 +57,6 @@ FileItem::init() QString media_params = url_parts[1]; url_ = QString("%1/_matrix/media/r0/download/%2") .arg(client_.data()->getHomeServer().toString(), media_params); - - connect(client_.data(), &MatrixClient::fileDownloaded, this, &FileItem::fileDownloaded); } FileItem::FileItem(QSharedPointer<MatrixClient> client, @@ -122,18 +120,22 @@ FileItem::mousePressEvent(QMouseEvent *event) if (filenameToSave_.isEmpty()) return; - client_->downloadFile(QString::fromStdString(event_.event_id), url_); + auto proxy = client_->downloadFile(url_); + connect(proxy, + &DownloadMediaProxy::fileDownloaded, + this, + [proxy, this](const QByteArray &data) { + proxy->deleteLater(); + fileDownloaded(data); + }); } else { openUrl(); } } void -FileItem::fileDownloaded(const QString &event_id, const QByteArray &data) +FileItem::fileDownloaded(const QByteArray &data) { - if (event_id != QString::fromStdString(event_.event_id)) - return; - try { QFile file(filenameToSave_);