Remember last opened room

This commit is contained in:
Carl Schwan
2020-11-17 17:28:44 +01:00
parent be1467f718
commit 03921e02a6
3 changed files with 20 additions and 7 deletions

View File

@@ -34,6 +34,16 @@ Kirigami.ApplicationWindow {
signal leaveRoom(string room);
signal openRoom(string room);
function loadInitialRoom() {
if (Config.openRoom) {
const room = Controller.activeConnection.room(Config.openRoom);
pageStack.push(roomPage, { 'currentRoom': room, });
} else {
// TODO create welcome page
}
}
function enterRoom(room) {
if (currentRoom != null) {
currentRoom = null;
@@ -41,6 +51,8 @@ Kirigami.ApplicationWindow {
}
var item = pageStack.push(roomPage, { 'currentRoom': room, });
currentRoom = room;
Config.openRoom = room.id;
Config.save();
return item;
}
}
@@ -102,6 +114,7 @@ Kirigami.ApplicationWindow {
pageStack.replace("qrc:/imports/NeoChat/Page/LoginPage.qml", {});
} else {
pageStack.replace(roomListComponent, {'activeConnection': Controller.activeConnection});
roomManager.loadInitialRoom();
}
}

View File

@@ -9,7 +9,7 @@
<label>Collapsed sections in the room list</label>
</entry>
<entry name="OpenRoom" type="String">
<label>Latest opened room.</label>
<label>Latest opened room</label>
</entry>
</group>
</kcfg>

View File

@@ -21,8 +21,8 @@
RoomListModel::RoomListModel(QObject *parent)
: QAbstractListModel(parent)
{
const auto collaposedSections = NeoChatConfig::collapsedSections();
for (auto collapsedSection : collaposedSections) {
const auto collapsedSections = NeoChatConfig::collapsedSections();
for (auto collapsedSection : collapsedSections) {
m_categoryVisibility[collapsedSection] = false;
}
}
@@ -316,13 +316,13 @@ QString RoomListModel::categoryName(int section) const
void RoomListModel::setCategoryVisible(int category, bool visible)
{
beginResetModel();
auto collaposedSections = NeoChatConfig::collapsedSections();
auto collapsedSections = NeoChatConfig::collapsedSections();
if (visible) {
collaposedSections.removeAll(category);
collapsedSections.removeAll(category);
} else {
collaposedSections.push_back(category);
collapsedSections.push_back(category);
}
NeoChatConfig::setCollapsedSections(collaposedSections);
NeoChatConfig::setCollapsedSections(collapsedSections);
NeoChatConfig::self()->save();
m_categoryVisibility[category] = visible;