Skip to content
Snippets Groups Projects
TimelineView.qml 3.12 KiB
Newer Older
Nicolas Werner's avatar
Nicolas Werner committed
// SPDX-FileCopyrightText: 2021 Nheko Contributors
Nicolas Werner's avatar
Nicolas Werner committed
// SPDX-License-Identifier: GPL-3.0-or-later

import "./delegates"
import "./device-verification"
import "./emoji"
import "./voip"
Nicolas Werner's avatar
Nicolas Werner committed
import Qt.labs.platform 1.1 as Platform
import QtGraphicalEffects 1.0
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.3
import QtQuick.Window 2.2
import im.nheko.EmojiModel 1.0
    property var room: null
    property bool showBackButton: false
        visible: !room && !TimelineManager.isInitialSync
        anchors.centerIn: parent
        text: qsTr("No room open")
        font.pointSize: 24
        color: Nheko.colors.text
    BusyIndicator {
        visible: running
        anchors.centerIn: parent
        running: TimelineManager.isInitialSync
        height: 200
        width: 200
        z: 3
    ColumnLayout {
        id: timelineLayout
        visible: room != null
        anchors.fill: parent
            showBackButton: timelineView.showBackButton
        Rectangle {
            Layout.fillWidth: true
            height: 1
            z: 3
            color: Nheko.theme.separator
Joe Donofry's avatar
Joe Donofry committed

            Layout.fillWidth: true
            Layout.fillHeight: true
            color: Nheko.colors.base
            ColumnLayout {
                anchors.fill: parent
                spacing: 0
                StackLayout {
                    id: stackLayout
                        function onRoomChanged() {
                            stackLayout.currentIndex = 0;
                        target: timelineView
                    MessageView {
                        Layout.fillWidth: true
                        implicitHeight: msgView.height - typingIndicator.height
                    Loader {
                        source: CallManager.isOnCall && CallManager.callType != CallType.VOICE ? "voip/VideoCall.qml" : ""
                        onLoaded: TimelineManager.setVideoCallItem()
trilene's avatar
trilene committed
                    }
                TypingIndicator {
                    id: typingIndicator
                }
        CallInviteBar {
            id: callInviteBar
        ActiveCallBar {
            Layout.fillWidth: true
            z: 3
        }

        Rectangle {
            Layout.fillWidth: true
            z: 3
            height: 1
            color: Nheko.theme.separator
        anchors.fill: parent
        roomid: room ? room.roomId() : ""
    }

    Connections {
        target: room
        onOpenRoomSettingsDialog: {
            var roomSettings = roomSettingsComponent.createObject(timelineRoot, {
                "roomSettings": settings
            });
            roomSettings.show();
        }