From d9b495356d74e6d482edd7b1b8bb595186c786cd Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Mon, 7 Jul 2025 16:38:55 +0200 Subject: [PATCH] Fix roomlist positioning when changing rooms The room list is supposed to center the new room, but, since the current room as stored in SortFilterRoomTreeModel is only updated after we're jumping to the room, mostly just jumped to the old room. --- src/rooms/RoomListPage.qml | 3 +++ src/rooms/models/sortfilterroomtreemodel.cpp | 1 + src/rooms/models/sortfilterroomtreemodel.h | 1 + 3 files changed, 5 insertions(+) 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;