Remember last opened room
This commit is contained in:
13
qml/main.qml
13
qml/main.qml
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user