diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-11-24 00:10:58 +0200 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-11-24 00:10:58 +0200 |
commit | 0f363b5f4424cc4cdf0e36d7aa5b62b8e8ea52bc (patch) | |
tree | b216baa489755bbb3343f350aa6c6d3e17725fba /include | |
parent | c6cf6c2b4148c30f5e1dd0ff744baf0293cfe1ff (diff) |
Send read receipts
Automatically dismiss unread notifications when the window regains
focus.
fixes #111
fixes #68
Diffstat (limited to 'include')
-rw-r--r-- | include/MatrixClient.h | 1 | ||||
-rw-r--r-- | include/RoomList.h | 1 | ||||
-rw-r--r-- | include/TimelineItem.h | 4 | ||||
-rw-r--r-- | include/TimelineView.h | 5 | ||||
-rw-r--r-- | include/TimelineViewManager.h | 1 |
5 files changed, 11 insertions, 1 deletions
diff --git a/include/MatrixClient.h b/include/MatrixClient.h index 422e4cfa..999fbe47 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h @@ -59,6 +59,7 @@ public: void leaveRoom(const QString &roomId); void sendTypingNotification(const QString &roomid, int timeoutInMillis = 20000); void removeTypingNotification(const QString &roomid); + void readEvent(const QString &room_id, const QString &event_id); QUrl getHomeServer() { return server_; }; int transactionId() { return txn_id_; }; diff --git a/include/RoomList.h b/include/RoomList.h index f1653a38..7a48f7bd 100644 --- a/include/RoomList.h +++ b/include/RoomList.h @@ -66,6 +66,7 @@ public slots: void closeJoinRoomDialog(bool isJoining, QString roomAlias); void openLeaveRoomDialog(const QString &room_id); void closeLeaveRoomDialog(bool leaving, const QString &room_id); + void clearRoomMessageCount(const QString &room_id); private: void calculateUnreadMessageCount(); diff --git a/include/TimelineItem.h b/include/TimelineItem.h index d90810d5..cd522308 100644 --- a/include/TimelineItem.h +++ b/include/TimelineItem.h @@ -66,7 +66,8 @@ public: QWidget *parent); void setUserAvatar(const QImage &pixmap); - DescInfo descriptionMessage() const { return descriptionMsg_; }; + DescInfo descriptionMessage() const { return descriptionMsg_; } + QString eventId() const { return event_id_; } ~TimelineItem(); @@ -85,6 +86,7 @@ private: void setupSimpleLayout(); QString replaceEmoji(const QString &body); + QString event_id_; DescInfo descriptionMsg_; diff --git a/include/TimelineView.h b/include/TimelineView.h index 78c31e8e..3f506002 100644 --- a/include/TimelineView.h +++ b/include/TimelineView.h @@ -121,15 +121,20 @@ private slots: signals: void updateLastTimelineMessage(const QString &user, const DescInfo &info); + void clearUnreadMessageCount(const QString &room_id); protected: void paintEvent(QPaintEvent *event) override; + void showEvent(QShowEvent *event) override; + bool event(QEvent *event) override; private: void init(); void addTimelineItem(TimelineItem *item, TimelineDirection direction); void updateLastSender(const QString &user_id, TimelineDirection direction); void notifyForLastEvent(); + void readLastEvent() const; + QString getLastEventId() const; // Used to determine whether or not we should prefix a message with the // sender's name. diff --git a/include/TimelineViewManager.h b/include/TimelineViewManager.h index 5bd3054f..d9fb730e 100644 --- a/include/TimelineViewManager.h +++ b/include/TimelineViewManager.h @@ -58,6 +58,7 @@ public: static QMap<QString, QString> DISPLAY_NAMES; signals: + void clearRoomMessageCount(QString roomid); void unreadMessages(QString roomid, int count); void updateRoomsLastMessage(const QString &user, const DescInfo &info); |