summary refs log tree commit diff
path: root/src/MatrixClient.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/MatrixClient.cc')
-rw-r--r--src/MatrixClient.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/MatrixClient.cc b/src/MatrixClient.cc

index 5471e410..1e7a5339 100644 --- a/src/MatrixClient.cc +++ b/src/MatrixClient.cc
@@ -738,13 +738,14 @@ MatrixClient::fetchUserAvatar(const QUrl &avatarUrl, }); } -void -MatrixClient::downloadImage(const QString &event_id, const QUrl &url) +DownloadMediaProxy * +MatrixClient::downloadImage(const QUrl &url) { QNetworkRequest image_request(url); auto reply = get(image_request); - connect(reply, &QNetworkReply::finished, this, [this, reply, event_id]() { + auto proxy = new DownloadMediaProxy; + connect(reply, &QNetworkReply::finished, this, [this, reply, proxy]() { reply->deleteLater(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); @@ -762,17 +763,20 @@ MatrixClient::downloadImage(const QString &event_id, const QUrl &url) QPixmap pixmap; pixmap.loadFromData(img); - emit imageDownloaded(event_id, pixmap); + emit proxy->imageDownloaded(pixmap); }); + + return proxy; } -void -MatrixClient::downloadFile(const QString &event_id, const QUrl &url) +DownloadMediaProxy * +MatrixClient::downloadFile(const QUrl &url) { QNetworkRequest fileRequest(url); auto reply = get(fileRequest); - connect(reply, &QNetworkReply::finished, this, [this, reply, event_id]() { + auto proxy = new DownloadMediaProxy; + connect(reply, &QNetworkReply::finished, this, [this, reply, proxy]() { reply->deleteLater(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); @@ -788,8 +792,10 @@ MatrixClient::downloadFile(const QString &event_id, const QUrl &url) if (data.size() == 0) return; - emit fileDownloaded(event_id, data); + emit proxy->fileDownloaded(data); }); + + return proxy; } void