diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp
index 03abd3d5..6e95ef8e 100644
--- a/src/timeline/RoomlistModel.cpp
+++ b/src/timeline/RoomlistModel.cpp
@@ -283,6 +283,14 @@ RoomlistModel::addRoom(const QString &room_id, bool suppressInsertNotification)
QSharedPointer<TimelineModel> newRoom(new TimelineModel(manager, room_id));
newRoom->setDecryptDescription(ChatPage::instance()->userSettings()->decryptSidebar());
+ connect(this,
+ &RoomlistModel::currentRoomChanged,
+ newRoom.data(),
+ &TimelineModel::updateLastReadId);
+ connect(MainWindow::instance(),
+ &MainWindow::activeChanged,
+ newRoom.data(),
+ &TimelineModel::lastReadIdOnWindowFocus);
connect(newRoom.data(),
&TimelineModel::newEncryptedImage,
MainWindow::instance()->imageProvider(),
@@ -383,7 +391,7 @@ RoomlistModel::addRoom(const QString &room_id, bool suppressInsertNotification)
currentRoomPreview_->roomid() == room_id) {
currentRoom_ = models.value(room_id);
currentRoomPreview_.reset();
- emit currentRoomChanged();
+ emit currentRoomChanged(room_id);
}
for (auto p : previewsToAdd) {
@@ -644,7 +652,7 @@ RoomlistModel::clear()
invites.clear();
roomids.clear();
currentRoom_ = nullptr;
- emit currentRoomChanged();
+ emit currentRoomChanged("");
endResetModel();
}
@@ -743,14 +751,14 @@ RoomlistModel::setCurrentRoom(QString roomid)
if (roomid.isEmpty()) {
currentRoom_ = nullptr;
currentRoomPreview_ = {};
- emit currentRoomChanged();
+ emit currentRoomChanged("");
}
nhlog::ui()->debug("Trying to switch to: {}", roomid.toStdString());
if (models.contains(roomid)) {
currentRoom_ = models.value(roomid);
currentRoomPreview_.reset();
- emit currentRoomChanged();
+ emit currentRoomChanged(currentRoom_->roomId());
nhlog::ui()->debug("Switched to: {}", roomid.toStdString());
} else if (invites.contains(roomid) || previewedRooms.contains(roomid)) {
currentRoom_ = nullptr;
@@ -781,7 +789,7 @@ RoomlistModel::setCurrentRoom(QString roomid)
currentRoomPreview_->roomid_.toStdString());
}
- emit currentRoomChanged();
+ emit currentRoomChanged("");
}
}
|