From 3301173ed41b925e0dda09c9ba19bd3d4e027962 Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Tue, 18 Apr 2017 04:15:25 +0900 Subject: Added markAllMessagesAsRead() --- room.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'room.cpp') diff --git a/room.cpp b/room.cpp index 632e79df..47a1de04 100644 --- a/room.cpp +++ b/room.cpp @@ -243,11 +243,10 @@ Room::Private::promoteReadMarker(User* u, Room::rev_iter_t newMarker) return { prevMarker, newMarker }; } -void Room::markMessagesAsRead(QString uptoEventId) +void Room::markMessagesAsRead(Room::rev_iter_t upToMarker) { User* localUser = connection()->user(); - Private::rev_iter_pair_t markers = - d->promoteReadMarker(localUser, findInTimeline(uptoEventId)); + Private::rev_iter_pair_t markers = d->promoteReadMarker(localUser, upToMarker); if (markers.first != markers.second) qDebug() << "Marked messages as read until" << *readMarker(); @@ -258,13 +257,23 @@ void Room::markMessagesAsRead(QString uptoEventId) { if ((*markers.second)->senderId() != localUser->id()) { - connection()->callApi(this->id(), - (*markers.second)->id()); + connection()->callApi(id(), (*markers.second)->id()); break; } } } +void Room::markMessagesAsRead(QString uptoEventId) +{ + markMessagesAsRead(findInTimeline(uptoEventId)); +} + +void Room::markAllMessagesAsRead() +{ + if (!d->timeline.empty()) + markMessagesAsRead(d->timeline.crbegin()); +} + bool Room::hasUnreadMessages() { return d->unreadMessages; -- cgit v1.2.3