Allow opening window in a secondary window

This commit is contained in:
Carl Schwan
2021-01-09 13:32:16 +00:00
parent a82b9dc14e
commit f4784bb0a1
6 changed files with 41 additions and 1 deletions

View File

@@ -6,6 +6,7 @@
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import NeoChat.Page 1.0
/**
* Context menu when clicking on a room in the room list
@@ -45,5 +46,12 @@ Menu {
onTriggered: room.forget()
}
MenuSeparator {}
MenuItem {
text: i18n("Open in new window")
onTriggered: roomManager.openWindow(room);
}
onClosed: destroy()
}

View File

@@ -23,7 +23,7 @@ import NeoChat.Menu.Timeline 1.0
Kirigami.ScrollablePage {
id: page
property var currentRoom
required property var currentRoom
signal switchRoomUp()
signal switchRoomDown()

View File

@@ -0,0 +1,19 @@
/**
* SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.eu>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import QtQuick 2.12
import QtQuick.Controls 2.12 as QQC2
import QtQuick.Window 2.2
import QtQuick.Layouts 1.12
import org.kde.kirigami 2.14 as Kirigami
Kirigami.ApplicationWindow {
id: window
required property var currentRoom
pageStack.initialPage: RoomPage {
visible: true
currentRoom: window.currentRoom
}
}

View File

@@ -3,6 +3,7 @@ LoadingPage 1.0 LoadingPage.qml
LoginPage 1.0 LoginPage.qml
RoomListPage 1.0 RoomListPage.qml
RoomPage 1.0 RoomPage.qml
RoomWindow 1.0 RoomWindow.qml
JoinRoomPage 1.0 JoinRoomPage.qml
InviteUserPage 1.0 InviteUserPage.qml
SettingsPage 1.0 SettingsPage.qml

View File

@@ -117,6 +117,12 @@ Kirigami.ApplicationWindow {
pageStack.replace(roomPage, { 'currentRoom': currentRoom, });
}
function openWindow(room) {
const secondayWindow = roomWindow.createObject(applicationWindow(), {currentRoom: room});
secondayWindow.width = root.width - roomList.width;
secondayWindow.show();
}
function connectRoomToSignal(item) {
if (!roomList) {
console.log("Should not happen: no room list page but room page");
@@ -347,4 +353,9 @@ Kirigami.ApplicationWindow {
CreateRoomDialog {}
}
Component {
id: roomWindow
RoomWindow {}
}
}

View File

@@ -6,6 +6,7 @@
<file>imports/NeoChat/Page/LoadingPage.qml</file>
<file>imports/NeoChat/Page/RoomListPage.qml</file>
<file>imports/NeoChat/Page/RoomPage.qml</file>
<file>imports/NeoChat/Page/RoomWindow.qml</file>
<file>imports/NeoChat/Page/AccountsPage.qml</file>
<file>imports/NeoChat/Page/JoinRoomPage.qml</file>
<file>imports/NeoChat/Page/InviteUserPage.qml</file>