summary refs log tree commit diff
path: root/include
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 /include
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 'include')
-rw-r--r--include/MatrixClient.h15
-rw-r--r--include/timeline/widgets/AudioItem.h4
-rw-r--r--include/timeline/widgets/FileItem.h4
3 files changed, 13 insertions, 10 deletions
diff --git a/include/MatrixClient.h b/include/MatrixClient.h

index a433b095..46d946c7 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h
@@ -22,6 +22,15 @@ #include <QUrl> #include <mtx.hpp> +class DownloadMediaProxy : public QObject +{ + Q_OBJECT + +signals: + void imageDownloaded(const QPixmap &data); + void fileDownloaded(const QByteArray &data); +}; + /* * MatrixClient provides the high level API to communicate with * a Matrix homeserver. All the responses are returned through signals. @@ -55,8 +64,8 @@ public: void fetchCommunityAvatar(const QString &communityId, const QUrl &avatarUrl); void fetchCommunityProfile(const QString &communityId); void fetchCommunityRooms(const QString &communityId); - void downloadImage(const QString &event_id, const QUrl &url); - void downloadFile(const QString &event_id, const QUrl &url); + DownloadMediaProxy *downloadImage(const QUrl &url); + DownloadMediaProxy *downloadFile(const QUrl &url); void messages(const QString &room_id, const QString &from_token, int limit = 30) noexcept; void uploadImage(const QString &roomid, const QString &filename, @@ -140,8 +149,6 @@ signals: void communityAvatarRetrieved(const QString &communityId, const QPixmap &img); void communityProfileRetrieved(const QString &communityId, const QJsonObject &profile); void communityRoomsRetrieved(const QString &communityId, const QJsonObject &rooms); - void imageDownloaded(const QString &event_id, const QPixmap &img); - void fileDownloaded(const QString &event_id, const QByteArray &data); // Returned profile data for the user's account. void getOwnProfileResponse(const QUrl &avatar_url, const QString &display_name); diff --git a/include/timeline/widgets/AudioItem.h b/include/timeline/widgets/AudioItem.h
index 88e84d0c..b1d47dd5 100644 --- a/include/timeline/widgets/AudioItem.h +++ b/include/timeline/widgets/AudioItem.h
@@ -72,11 +72,9 @@ protected: void paintEvent(QPaintEvent *event) override; void mousePressEvent(QMouseEvent *event) override; -private slots: - void fileDownloaded(const QString &event_id, const QByteArray &data); - private: void init(); + void fileDownloaded(const QByteArray &data); enum class AudioState { diff --git a/include/timeline/widgets/FileItem.h b/include/timeline/widgets/FileItem.h
index cc6cd2ee..bc75913d 100644 --- a/include/timeline/widgets/FileItem.h +++ b/include/timeline/widgets/FileItem.h
@@ -60,12 +60,10 @@ protected: void paintEvent(QPaintEvent *event) override; void mousePressEvent(QMouseEvent *event) override; -private slots: - void fileDownloaded(const QString &event_id, const QByteArray &data); - private: void openUrl(); void init(); + void fileDownloaded(const QByteArray &data); QUrl url_; QString text_;