Skip to content
Snippets Groups Projects
Root.qml 2.27 KiB
Newer Older
  • Learn to ignore specific revisions
  • // SPDX-FileCopyrightText: 2021 Nheko Contributors
    //
    // SPDX-License-Identifier: GPL-3.0-or-later
    
    import "./delegates"
    import "./device-verification"
    import "./emoji"
    import "./voip"
    import Qt.labs.platform 1.1 as Platform
    import QtGraphicalEffects 1.0
    import QtQuick 2.9
    
    import QtQuick.Controls 2.5
    
    import QtQuick.Layouts 1.3
    import QtQuick.Window 2.2
    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 {
            }
    
        }
    
        Component {
            id: mobileCallInviteDialog
    
            CallInvite {
            }
    
        }
    
        Component {
            id: quickSwitcherComponent
    
            QuickSwitcher {
            }
    
        }
    
        Shortcut {
            sequence: "Ctrl+K"
            onActivated: {
                var quickSwitch = quickSwitcherComponent.createObject(timelineRoot);
                TimelineManager.focusTimeline();
                quickSwitch.open();
            }
        }
    
    
    Nicolas Werner's avatar
    Nicolas Werner committed
        Shortcut {
            sequence: "Ctrl+Down"
    
            onActivated: Rooms.nextRoom()
    
    Nicolas Werner's avatar
    Nicolas Werner committed
        }
    
    Nicolas Werner's avatar
    Nicolas Werner committed
        Shortcut {
            sequence: "Ctrl+Up"
    
            onActivated: Rooms.previousRoom()
    
        Component {
            id: deviceVerificationDialog
    
            DeviceVerification {
            }
    
        }
    
        Connections {
            target: TimelineManager
            onNewDeviceVerificationRequest: {
                var dialog = deviceVerificationDialog.createObject(timelineRoot, {
                    "flow": flow
                });
                dialog.show();
            }
            onOpenProfile: {
                var userProfile = userProfileComponent.createObject(timelineRoot, {
                    "profile": profile
                });
                userProfile.show();
            }
        }
    
        Connections {
            target: CallManager
            onNewInviteState: {
                if (CallManager.haveCallInvite && Settings.mobileMode) {
                    var dialog = mobileCallInviteDialog.createObject(msgView);
                    dialog.open();
                }
            }
        }
    
        ChatPage {
            anchors.fill: parent
        }
    
    }