Warning, /multimedia/kdenlive/src/monitor/view/kdenlivemonitorsplittracks.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2020 Jean-Baptiste Mardelle <jb@kdenlive.org>
0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 */
0005
0006 import QtQuick 2.15
0007 import QtQuick.Controls 2.15
0008
0009 Item {
0010 id: root
0011 objectName: "root"
0012 SystemPalette { id: activePalette }
0013
0014 // default size, but scalable by user
0015 height: 300; width: 400
0016 property string comment
0017 property string framenum
0018 property rect framesize
0019 property point profile: controller.profile
0020 property int overlayType: 0
0021 property color overlayColor: controller.overlayColor
0022 property point center
0023 property double scalex
0024 property double scaley
0025 property bool captureRightClick: false
0026 // Zoombar properties
0027 property double zoomStart: 0
0028 property double zoomFactor: 1
0029 property int zoomOffset: 0
0030 property bool showZoomBar: false
0031 property double stretch : 1
0032 property double sourcedar : 1
0033 property double offsetx : 0
0034 property double offsety : 0
0035 property int activeTrack: 0
0036 onSourcedarChanged: refreshdar()
0037 property bool iskeyframe
0038 property int requestedKeyFrame
0039 property real baseUnit: fontMetrics.font.pixelSize * 0.8
0040 property int duration: 300
0041 property int mouseRulerPos: 0
0042 property double frameSize: 10
0043 property double timeScale: 1
0044 property var tracks: []
0045
0046 function updateClickCapture() {
0047 root.captureRightClick = false
0048 }
0049
0050 signal activateTrack(int position)
0051
0052 onDurationChanged: {
0053 clipMonitorRuler.updateRuler()
0054 }
0055 onWidthChanged: {
0056 clipMonitorRuler.updateRuler()
0057 }
0058
0059 FontMetrics {
0060 id: fontMetrics
0061 font.family: "Arial"
0062 }
0063 MouseArea {
0064 id: barOverArea
0065 hoverEnabled: true
0066 acceptedButtons: Qt.NoButton
0067 anchors.fill: parent
0068 onWheel: wheel => {
0069 controller.seek(wheel.angleDelta.x + wheel.angleDelta.y, wheel.modifiers)
0070 }
0071 }
0072
0073 Item {
0074 id: frame
0075 objectName: "referenceframe"
0076 width: root.profile.x * root.scalex
0077 height: root.profile.y * root.scaley
0078 x: root.center.x - width / 2 - root.offsetx
0079 y: root.center.y - height / 2 - root.offsety
0080 Repeater {
0081 id: trackSeparators
0082 model: tracks
0083 property int rows: trackSeparators.count < 2 ? 1 : trackSeparators.count < 5 ? 2 : 3
0084 property int columns: trackSeparators.count < 2 ? 1 : trackSeparators.count < 3 ? 1 : trackSeparators.count < 7 ? 2 : 3
0085 Rectangle {
0086 width: parent.width / trackSeparators.rows
0087 height: parent.height / trackSeparators.columns
0088 x: width * (index % trackSeparators.rows)
0089 y: height * (Math.floor(index / trackSeparators.rows))
0090 color: "transparent"
0091 border.color: index == root.activeTrack ? "#ff0000" : "#00000000"
0092 border.width: 2
0093 Label {
0094 text: modelData
0095 color: "#ffffff"
0096 padding :4
0097 background: Rectangle {
0098 color: index == root.activeTrack ? "#990000" : "#000066"
0099 }
0100 }
0101 MouseArea {
0102 anchors.fill: parent
0103 cursorShape: Qt.PointingHandCursor
0104 acceptedButtons: Qt.LeftButton
0105 onClicked: {
0106 root.activateTrack(index)
0107 controller.triggerAction('perform_multitrack_mode')
0108 }
0109 }
0110 }
0111 }
0112 }
0113 MultiScreenToolBar {
0114 id: sceneToolBar
0115 anchors {
0116 right: parent.right
0117 top: parent.top
0118 topMargin: 4
0119 rightMargin: 4
0120 leftMargin: 4
0121 }
0122 }
0123 MonitorRuler {
0124 id: clipMonitorRuler
0125 anchors {
0126 left: root.left
0127 right: root.right
0128 bottom: root.bottom
0129 }
0130 height: controller.rulerHeight
0131 }
0132 }