From e8ad4a5dee9a0aa91d586f001331d22bb2008c55 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Tue, 2 Sep 2025 15:36:55 +0200 Subject: [PATCH] Fixes for logging out the active connection - Don't crash - Fall back to WelcomePage --- src/app/qml/Main.qml | 11 +++++++++++ src/app/roommanager.cpp | 3 +-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/app/qml/Main.qml b/src/app/qml/Main.qml index c913cb21c..6c5b0444e 100644 --- a/src/app/qml/Main.qml +++ b/src/app/qml/Main.qml @@ -267,6 +267,17 @@ Kirigami.ApplicationWindow { } } + Connections { + target: root.connection + function onLoggedOut(): void { + root.pageStack.clear(); + let page = root.pageStack.push(Qt.createComponent('org.kde.neochat.login', 'WelcomePage'), { + showExisting: true, + }) as WelcomePage; + page.connectionChosen.connect(() => root.load()) + } + } + Connections { target: AccountRegistry function onRowsRemoved() { diff --git a/src/app/roommanager.cpp b/src/app/roommanager.cpp index 2bc8aafa2..55cc58d91 100644 --- a/src/app/roommanager.cpp +++ b/src/app/roommanager.cpp @@ -478,9 +478,8 @@ void RoomManager::setConnection(NeoChatConnection *connection) m_connection = connection; - m_lastRoomConfig = m_config->group(m_connection->userId()).group(u"LastOpenRoom"_s); - if (m_connection != nullptr) { + m_lastRoomConfig = m_config->group(m_connection->userId()).group(u"LastOpenRoom"_s); connect(m_connection, &NeoChatConnection::showMessage, this, &RoomManager::showMessage); connect(m_connection, &NeoChatConnection::createdRoom, this, [this](Quotient::Room *room) { resolveResource(room->id());