summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-22 00:00:48 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-22 00:00:48 +0200
commit33f534c6f85047f00254edbc341b3a7bc1420111 (patch)
treeb48bc936903a1d2274dbd6947270e0d8a42758ce /include
parentAdd rounded corners to inline images (diff)
downloadnheko-33f534c6f85047f00254edbc341b3a7bc1420111.tar.xz
Cache room avatars (#139)
fixes #107
Diffstat (limited to 'include')
-rw-r--r--include/Cache.h4
-rw-r--r--include/MatrixClient.h5
-rw-r--r--include/RoomList.h5
3 files changed, 13 insertions, 1 deletions
diff --git a/include/Cache.h b/include/Cache.h

index c141a42a..1f6c59f0 100644 --- a/include/Cache.h +++ b/include/Cache.h
@@ -48,6 +48,9 @@ public: bool isFormatValid(); void setCurrentFormat(); + QByteArray image(const QString &url) const; + void saveImage(const QString &url, const QByteArray &data); + private: void setNextBatchToken(lmdb::txn &txn, const QString &token); void insertRoomState(lmdb::txn &txn, const QString &roomid, const RoomState &state); @@ -56,6 +59,7 @@ private: lmdb::dbi stateDb_; lmdb::dbi roomDb_; lmdb::dbi invitesDb_; + lmdb::dbi imagesDb_; bool isMounted_; diff --git a/include/MatrixClient.h b/include/MatrixClient.h
index 2e76061f..2627f578 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h
@@ -98,7 +98,10 @@ signals: void fileUploaded(const QString &roomid, const QString &filename, const QString &url); void audioUploaded(const QString &roomid, const QString &filename, const QString &url); - void roomAvatarRetrieved(const QString &roomid, const QPixmap &img); + void roomAvatarRetrieved(const QString &roomid, + const QPixmap &img, + const QString &url, + const QByteArray &data); void userAvatarRetrieved(const QString &userId, const QImage &img); void ownAvatarRetrieved(const QPixmap &img); void imageDownloaded(const QString &event_id, const QPixmap &img); diff --git a/include/RoomList.h b/include/RoomList.h
index 8487df10..ed05e0be 100644 --- a/include/RoomList.h +++ b/include/RoomList.h
@@ -30,6 +30,7 @@ class LeaveRoomDialog; class MatrixClient; +class Cache; class OverlayModal; class RoomInfoListItem; class RoomSettings; @@ -45,6 +46,7 @@ public: RoomList(QSharedPointer<MatrixClient> client, QWidget *parent = 0); ~RoomList(); + void setCache(QSharedPointer<Cache> cache) { cache_ = cache; } void setInitialRooms(const QMap<QString, QSharedPointer<RoomSettings>> &settings, const QMap<QString, RoomState> &states); void sync(const QMap<QString, RoomState> &states, @@ -52,6 +54,7 @@ public: void syncInvites(const std::map<std::string, mtx::responses::InvitedRoom> &rooms); void clear(); + void updateAvatar(const QString &room_id, const QString &url); void addRoom(const QMap<QString, QSharedPointer<RoomSettings>> &settings, const RoomState &state, @@ -64,6 +67,7 @@ signals: void totalUnreadMessageCountUpdated(int count); void acceptInvite(const QString &room_id); void declineInvite(const QString &room_id); + void roomAvatarChanged(const QString &room_id, const QPixmap &img); public slots: void updateRoomAvatar(const QString &roomid, const QPixmap &img); @@ -96,4 +100,5 @@ private: QMap<QString, QSharedPointer<RoomInfoListItem>> rooms_; QSharedPointer<MatrixClient> client_; + QSharedPointer<Cache> cache_; };