diff --git a/src/rooms/RoomListPage.qml b/src/rooms/RoomListPage.qml index 9cae9f414..2ac211fd5 100644 --- a/src/rooms/RoomListPage.qml +++ b/src/rooms/RoomListPage.qml @@ -96,7 +96,10 @@ Kirigami.Page { function onCurrentSpaceChanged() { treeView.expandRecursively(); } + } + Connections { + target: RoomManager.sortFilterRoomTreeModel function onCurrentRoomChanged() { treeView.positionViewAtIndex(RoomManager.sortFilterRoomTreeModel.currentRoomIndex(), TableView.AlignVCenter) } diff --git a/src/rooms/models/sortfilterroomtreemodel.cpp b/src/rooms/models/sortfilterroomtreemodel.cpp index dedd4cf30..98f113213 100644 --- a/src/rooms/models/sortfilterroomtreemodel.cpp +++ b/src/rooms/models/sortfilterroomtreemodel.cpp @@ -134,6 +134,7 @@ void SortFilterRoomTreeModel::setActiveSpaceId(const QString &spaceId) void SortFilterRoomTreeModel::setCurrentRoom(NeoChatRoom *room) { m_currentRoom = room; + Q_EMIT currentRoomChanged(); } SortFilterRoomTreeModel::Mode SortFilterRoomTreeModel::mode() const diff --git a/src/rooms/models/sortfilterroomtreemodel.h b/src/rooms/models/sortfilterroomtreemodel.h index 9da8a97d2..ad24ab5f2 100644 --- a/src/rooms/models/sortfilterroomtreemodel.h +++ b/src/rooms/models/sortfilterroomtreemodel.h @@ -104,6 +104,7 @@ Q_SIGNALS: void filterTextChanged(); void activeSpaceIdChanged(); void modeChanged(); + void currentRoomChanged(); private: Mode m_mode = All;