summary refs log tree commit diff
path: root/src/RoomList.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-04-15 02:56:04 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-04-15 02:56:04 +0300
commit3b0ff1a4cdd0c7eb3ed06eec2e70ee2722b7c4e5 (patch)
tree2e243545972ee7ef4f07152359bbdd782e6ca011 /src/RoomList.cc
parentUpdate screen (diff)
downloadnheko-3b0ff1a4cdd0c7eb3ed06eec2e70ee2722b7c4e5.tar.xz
Add initial support for unread message count
- Add border width on Badge
Diffstat (limited to 'src/RoomList.cc')
-rw-r--r--src/RoomList.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/RoomList.cc b/src/RoomList.cc
index f483a798..b1186d39 100644
--- a/src/RoomList.cc
+++ b/src/RoomList.cc
@@ -81,6 +81,16 @@ RoomInfo RoomList::extractRoomInfo(const State &room_state)
 	return info;
 }
 
+void RoomList::updateUnreadMessageCount(const QString &roomid, int count)
+{
+	if (!rooms_.contains(roomid)) {
+		qWarning() << "UpdateUnreadMessageCount: Unknown roomid";
+		return;
+	}
+
+	rooms_[roomid]->updateUnreadMessageCount(count);
+}
+
 void RoomList::setInitialRooms(const Rooms &rooms)
 {
 	rooms_.clear();
@@ -117,6 +127,16 @@ void RoomList::highlightSelectedRoom(const RoomInfo &info)
 {
 	emit roomChanged(info);
 
+	if (!rooms_.contains(info.id())) {
+		qDebug() << "RoomList: clicked unknown roomid";
+		return;
+	}
+
+
+	// TODO: Send a read receipt for the last event.
+	auto room = rooms_[info.id()];
+	room->clearUnreadMessageCount();
+
 	for (auto it = rooms_.constBegin(); it != rooms_.constEnd(); it++) {
 		if (it.key() != info.id())
 			it.value()->setPressedState(false);