diff --git a/imports/NeoChat/Page/RoomPage.qml b/imports/NeoChat/Page/RoomPage.qml index ec5c46682..e9b9a9d06 100644 --- a/imports/NeoChat/Page/RoomPage.qml +++ b/imports/NeoChat/Page/RoomPage.qml @@ -121,6 +121,14 @@ Kirigami.ScrollablePage { room: currentRoom } + Kirigami.PlaceholderMessage { + anchors.centerIn: parent + visible: messageListView.count === 0 && !currentRoom.allHistoryLoaded + QQC2.BusyIndicator { + running: true + } + } + QQC2.Popup { anchors.centerIn: parent diff --git a/qml/main.qml b/qml/main.qml index deb2b53dc..1d69c573b 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -41,6 +41,7 @@ Kirigami.ApplicationWindow { property alias pageStack: root.pageStack property bool invitationOpen: false property var roomList: null + property Item roomItem: null readonly property bool hasOpenRoom: currentRoom !== null @@ -51,8 +52,8 @@ Kirigami.ApplicationWindow { if (Config.openRoom) { const room = Controller.activeConnection.room(Config.openRoom); currentRoom = room; - let item = pageStack.push(roomPage, { 'currentRoom': room, }); - connectRoomToSignal(item); + roomItem = pageStack.push(roomPage, { 'currentRoom': room, }); + connectRoomToSignal(roomItem); } else { // TODO create welcome page } @@ -61,16 +62,16 @@ Kirigami.ApplicationWindow { function enterRoom(room) { let item = null; if (currentRoom != null || invitationOpen) { - currentRoom = null; - item = pageStack.replace(roomPage, { 'currentRoom': room, }); + roomItem.currentRoom = room; + //item = pageStack.replace(roomPage, { 'currentRoom': room, }); } else { - item = pageStack.push(roomPage, { 'currentRoom': room, }); + roomItem = pageStack.push(roomPage, { 'currentRoom': room, }); } currentRoom = room; Config.openRoom = room.id; Config.save(); - connectRoomToSignal(item); - return item; + connectRoomToSignal(roomItem); + return roomItem; } function openInvitation(room) {