Allow opening window in a secondary window
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Controls 2.12
|
import QtQuick.Controls 2.12
|
||||||
|
import NeoChat.Page 1.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Context menu when clicking on a room in the room list
|
* Context menu when clicking on a room in the room list
|
||||||
@@ -45,5 +46,12 @@ Menu {
|
|||||||
onTriggered: room.forget()
|
onTriggered: room.forget()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MenuSeparator {}
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
text: i18n("Open in new window")
|
||||||
|
onTriggered: roomManager.openWindow(room);
|
||||||
|
}
|
||||||
|
|
||||||
onClosed: destroy()
|
onClosed: destroy()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import NeoChat.Menu.Timeline 1.0
|
|||||||
Kirigami.ScrollablePage {
|
Kirigami.ScrollablePage {
|
||||||
id: page
|
id: page
|
||||||
|
|
||||||
property var currentRoom
|
required property var currentRoom
|
||||||
|
|
||||||
signal switchRoomUp()
|
signal switchRoomUp()
|
||||||
signal switchRoomDown()
|
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
|
LoginPage 1.0 LoginPage.qml
|
||||||
RoomListPage 1.0 RoomListPage.qml
|
RoomListPage 1.0 RoomListPage.qml
|
||||||
RoomPage 1.0 RoomPage.qml
|
RoomPage 1.0 RoomPage.qml
|
||||||
|
RoomWindow 1.0 RoomWindow.qml
|
||||||
JoinRoomPage 1.0 JoinRoomPage.qml
|
JoinRoomPage 1.0 JoinRoomPage.qml
|
||||||
InviteUserPage 1.0 InviteUserPage.qml
|
InviteUserPage 1.0 InviteUserPage.qml
|
||||||
SettingsPage 1.0 SettingsPage.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, });
|
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) {
|
function connectRoomToSignal(item) {
|
||||||
if (!roomList) {
|
if (!roomList) {
|
||||||
console.log("Should not happen: no room list page but room page");
|
console.log("Should not happen: no room list page but room page");
|
||||||
@@ -347,4 +353,9 @@ Kirigami.ApplicationWindow {
|
|||||||
|
|
||||||
CreateRoomDialog {}
|
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/LoadingPage.qml</file>
|
||||||
<file>imports/NeoChat/Page/RoomListPage.qml</file>
|
<file>imports/NeoChat/Page/RoomListPage.qml</file>
|
||||||
<file>imports/NeoChat/Page/RoomPage.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/AccountsPage.qml</file>
|
||||||
<file>imports/NeoChat/Page/JoinRoomPage.qml</file>
|
<file>imports/NeoChat/Page/JoinRoomPage.qml</file>
|
||||||
<file>imports/NeoChat/Page/InviteUserPage.qml</file>
|
<file>imports/NeoChat/Page/InviteUserPage.qml</file>
|
||||||
|
|||||||
Reference in New Issue
Block a user