matrixion/resources/qml/Root.qml

203 lines
3.9 KiB
QML
Raw Normal View History

// SPDX-FileCopyrightText: 2021 Nheko Contributors
//
// SPDX-License-Identifier: GPL-3.0-or-later
import "./delegates"
import "./device-verification"
import "./dialogs"
import "./emoji"
import "./voip"
import Qt.labs.platform 1.1 as Platform
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.3
import QtQuick.Window 2.15
import im.nheko 1.0
import im.nheko.EmojiModel 1.0
Page {
id: timelineRoot
palette: Nheko.colors
FontMetrics {
id: fontMetrics
}
EmojiPicker {
id: emojiPopup
colors: palette
model: TimelineManager.completerFor("allemoji", "")
}
Component {
id: userProfileComponent
UserProfile {
}
}
Component {
id: roomSettingsComponent
RoomSettings {
}
}
2021-07-17 23:16:18 +03:00
Component {
id: roomMembersComponent
RoomMembers {
}
2021-07-19 21:31:08 +03:00
2021-07-17 23:16:18 +03:00
}
Component {
id: mobileCallInviteDialog
CallInvite {
}
}
Component {
id: quickSwitcherComponent
QuickSwitcher {
}
}
2021-07-17 23:16:18 +03:00
Component {
id: deviceVerificationDialog
DeviceVerification {
}
}
2021-07-19 21:31:08 +03:00
2021-07-17 23:16:18 +03:00
Component {
id: inviteDialog
InviteDialog {
}
2021-07-19 21:31:08 +03:00
2021-07-17 23:16:18 +03:00
}
Component {
id: packSettingsComponent
ImagePackSettingsDialog {
}
}
Component {
id: readReceiptsDialog
ReadReceipts {
}
}
2021-07-31 05:13:58 +03:00
Component {
id: rawMessageDialog
RawMessageDialog {
}
}
Shortcut {
sequence: "Ctrl+K"
onActivated: {
var quickSwitch = quickSwitcherComponent.createObject(timelineRoot);
TimelineManager.focusTimeline();
quickSwitch.open();
}
}
Shortcut {
sequence: "Alt+A"
onActivated: Rooms.nextRoomWithActivity()
}
2021-05-29 00:25:57 +03:00
Shortcut {
sequence: "Ctrl+Down"
onActivated: Rooms.nextRoom()
2021-05-29 00:25:57 +03:00
}
2021-05-29 00:25:57 +03:00
Shortcut {
sequence: "Ctrl+Up"
onActivated: Rooms.previousRoom()
2021-05-29 00:25:57 +03:00
}
Connections {
function onNewDeviceVerificationRequest(flow) {
var dialog = deviceVerificationDialog.createObject(timelineRoot, {
"flow": flow
});
dialog.show();
}
function onOpenProfile(profile) {
var userProfile = userProfileComponent.createObject(timelineRoot, {
"profile": profile
});
userProfile.show();
}
function onShowImagePackSettings(packlist) {
var packSet = packSettingsComponent.createObject(timelineRoot, {
"packlist": packlist
});
packSet.show();
}
2021-08-14 00:58:26 +03:00
function onOpenRoomMembersDialog(members, room) {
2021-06-11 03:13:12 +03:00
var membersDialog = roomMembersComponent.createObject(timelineRoot, {
"members": members,
2021-08-14 00:58:26 +03:00
"room": room
2021-06-11 03:13:12 +03:00
});
membersDialog.show();
}
function onOpenRoomSettingsDialog(settings) {
2021-06-11 03:13:12 +03:00
var roomSettings = roomSettingsComponent.createObject(timelineRoot, {
"roomSettings": settings
});
roomSettings.show();
}
function onOpenInviteUsersDialog(invitees) {
2021-06-11 03:13:12 +03:00
var dialog = inviteDialog.createObject(timelineRoot, {
2021-07-17 23:16:18 +03:00
"roomId": Rooms.currentRoom.roomId,
2021-07-21 02:17:20 +03:00
"plainRoomName": Rooms.currentRoom.plainRoomName,
2021-07-18 01:23:21 +03:00
"invitees": invitees
2021-07-17 23:16:18 +03:00
});
2021-06-11 03:13:12 +03:00
dialog.show();
}
target: TimelineManager
}
Connections {
function onNewInviteState() {
if (CallManager.haveCallInvite && Settings.mobileMode) {
var dialog = mobileCallInviteDialog.createObject(msgView);
dialog.open();
}
}
target: CallManager
2021-06-11 03:13:12 +03:00
}
ChatPage {
anchors.fill: parent
}
}