From bec1ad7bee07e53a6aac9d62ba4d2ec5d4be2fe1 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Sat, 6 Jul 2024 19:44:00 +0200 Subject: [PATCH] Fix crashes when logging out of connection --- src/models/roomtreemodel.cpp | 4 ++++ src/roommanager.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/models/roomtreemodel.cpp b/src/models/roomtreemodel.cpp index a04882965..31e829ef4 100644 --- a/src/models/roomtreemodel.cpp +++ b/src/models/roomtreemodel.cpp @@ -221,6 +221,10 @@ int RoomTreeModel::rowCount(const QModelIndex &parent) const parentItem = static_cast(parent.internalPointer()); } + if (!parentItem) { + return 0; + } + return parentItem->childCount(); } diff --git a/src/roommanager.cpp b/src/roommanager.cpp index 4825c87b8..2b916159d 100644 --- a/src/roommanager.cpp +++ b/src/roommanager.cpp @@ -244,7 +244,9 @@ void RoomManager::loadInitialRoom() void RoomManager::openRoomForActiveConnection() { if (!m_connection) { - m_currentRoom = nullptr; + setCurrentRoom({}); + setCurrentSpace({}, false); + return; } const auto &lastRoom = m_lastRoomConfig.readEntry(m_connection->userId(), QString()); if (lastRoom.isEmpty() || !m_connection->room(lastRoom)) { @@ -426,7 +428,9 @@ void RoomManager::setCurrentSpace(const QString &spaceId, bool setRoom) m_sortFilterRoomTreeModel->setMode(m_currentSpaceId == QLatin1String("DM") ? SortFilterRoomTreeModel::DirectChats : SortFilterRoomTreeModel::Rooms); Q_EMIT currentSpaceChanged(); - m_lastSpaceConfig.writeEntry(m_connection->userId(), spaceId); + if (m_connection) { + m_lastSpaceConfig.writeEntry(m_connection->userId(), spaceId); + } if (!setRoom) { return;