diff --git a/src/roommanager.cpp b/src/roommanager.cpp index a776d778e..925a2f85c 100644 --- a/src/roommanager.cpp +++ b/src/roommanager.cpp @@ -19,6 +19,7 @@ RoomManager::RoomManager(QObject *parent) , m_lastCurrentRoom(nullptr) , m_config(KConfig("data", KConfig::SimpleConfig, QStandardPaths::AppDataLocation)) { + m_lastRoomConfig = m_config.group("LastOpenRoom"); } RoomManager::~RoomManager() @@ -97,8 +98,7 @@ void RoomManager::openRoomForActiveConnection() return; } // Read from last open room - KConfigGroup lastOpenRoomGroup(&m_config, "LastOpenRoom"); - QString roomId = lastOpenRoomGroup.readEntry(Controller::instance().activeConnection()->userId(), QString()); + QString roomId = m_lastRoomConfig.readEntry(Controller::instance().activeConnection()->userId(), QString()); // TODO remove legacy check at some point. if (roomId.isEmpty()) { @@ -130,9 +130,7 @@ void RoomManager::enterRoom(NeoChatRoom *room) } // Save last open room - KConfigGroup lastOpenRoomGroup(&m_config, "LastOpenRoom"); - lastOpenRoomGroup.writeEntry(Controller::instance().activeConnection()->userId(), room->id()); - lastOpenRoomGroup.config()->sync(); + m_lastRoomConfig.writeEntry(Controller::instance().activeConnection()->userId(), room->id()); } void RoomManager::openWindow(NeoChatRoom *room) diff --git a/src/roommanager.h b/src/roommanager.h index 32a359182..3a1a3f168 100644 --- a/src/roommanager.h +++ b/src/roommanager.h @@ -4,6 +4,7 @@ #pragma once #include +#include #include #include @@ -104,4 +105,5 @@ private: NeoChatRoom *m_lastCurrentRoom; QString m_arg; KConfig m_config; + KConfigGroup m_lastRoomConfig; };