Allow opening window in a secondary window
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
19
imports/NeoChat/Page/RoomWindow.qml
Normal file
19
imports/NeoChat/Page/RoomWindow.qml
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
11
qml/main.qml
11
qml/main.qml
@@ -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 {}
|
||||
}
|
||||
}
|
||||
|
||||
1
res.qrc
1
res.qrc
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user