aboutsummaryrefslogtreecommitdiff
path: root/room.cpp
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2016-10-20 09:38:16 +0900
committerKitsune Ral <Kitsune-Ral@users.sf.net>2016-10-20 09:40:51 +0900
commit372ed74c04f2c542451771aa792242a4e2afb351 (patch)
treef47f5ade12fc60ad1eca6ecfe0354a8fd212dde9 /room.cpp
parentb44ad3573d21c456014d7983669acc31dd6eebdf (diff)
downloadlibquotient-372ed74c04f2c542451771aa792242a4e2afb351.tar.gz
libquotient-372ed74c04f2c542451771aa792242a4e2afb351.zip
Room: added setLastReadEvent accessor and a signal for it; don't post receipts for own messages to the server
As discussed with Matthew in #quaternion: https://matrix.to/#/!PCzUtxtOjUySxSelof:matrix.org/$14768896199130qcJqe:matrix.org
Diffstat (limited to 'room.cpp')
-rw-r--r--room.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/room.cpp b/room.cpp
index e07426a7..5181fb2a 100644
--- a/room.cpp
+++ b/room.cpp
@@ -163,9 +163,17 @@ void Room::setJoinState(JoinState state)
emit joinStateChanged(oldState, state);
}
+void Room::setLastReadEvent(User* user, QString eventId)
+{
+ d->lastReadEvent.insert(user, eventId);
+ emit lastReadEventChanged(user);
+}
+
void Room::markMessageAsRead(Event* event)
{
- d->connection->postReceipt(this, event);
+ setLastReadEvent(connection()->user(), event->id());
+ if (event->senderId() != connection()->userId())
+ d->connection->postReceipt(this, event);
}
QString Room::lastReadEvent(User* user)
@@ -489,7 +497,7 @@ void Room::processEphemeralEvent(Event* event)
for( const Receipt& r: receipts )
{
if (auto m = d->member(r.userId))
- d->lastReadEvent.insert(m, eventId);
+ setLastReadEvent(m, eventId);
}
}
}