Warning, /multimedia/plasmatube/src/ui/videoplayer/MinimizedVideoPlayer.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org> 0002 // SPDX-License-Identifier: GPL-3.0-or-later 0003 0004 import QtQuick 0005 import QtQuick.Controls as QQC2 0006 import QtQuick.Layouts 0007 import Qt5Compat.GraphicalEffects 0008 0009 import org.kde.kirigami as Kirigami 0010 import org.kde.plasmatube 0011 0012 Rectangle { 0013 id: root 0014 property alias previewSource: blur.source 0015 0016 property string videoName 0017 property string channelName 0018 0019 readonly property bool isPlaying: PlasmaTube.videoController.currentPlayer ? !PlasmaTube.videoController.currentPlayer.paused : false 0020 0021 signal toggleRequested() 0022 signal stopRequested() 0023 signal openRequested() 0024 signal nextRequested() 0025 0026 color: Kirigami.Theme.backgroundColor 0027 0028 Kirigami.Theme.colorSet: Kirigami.Theme.View 0029 Kirigami.Theme.inherit: false 0030 0031 RowLayout { 0032 anchors.fill: parent 0033 spacing: 0 0034 0035 Rectangle { 0036 Layout.fillHeight: true 0037 Layout.fillWidth: true 0038 0039 // press feedback 0040 color: (trackClick.pressed || trackClick.containsMouse) ? Qt.rgba(0, 0, 0, 0.1) : "transparent" 0041 0042 RowLayout { 0043 spacing: Kirigami.Units.largeSpacing 0044 anchors.fill: parent 0045 0046 // video preview 0047 FastBlur { 0048 id: blur 0049 radius: 0 0050 Layout.fillHeight: true 0051 implicitWidth: Kirigami.Units.gridUnit * 3 0052 } 0053 0054 ColumnLayout { 0055 spacing: Kirigami.Units.smallSpacing 0056 Layout.fillWidth: true 0057 Layout.alignment: Qt.AlignVCenter 0058 0059 QQC2.Label { 0060 Layout.fillWidth: true 0061 text: root.videoName 0062 elide: Text.ElideRight 0063 } 0064 0065 QQC2.Label { 0066 Layout.fillWidth: true 0067 font: Kirigami.Theme.smallFont 0068 text: root.channelName 0069 elide: Text.ElideRight 0070 opacity: 0.9 0071 } 0072 } 0073 } 0074 0075 MouseArea { 0076 id: trackClick 0077 anchors.fill: parent 0078 hoverEnabled: true 0079 onClicked: root.openRequested() 0080 } 0081 } 0082 0083 QQC2.Button { 0084 flat: true 0085 Layout.leftMargin: Kirigami.Units.smallSpacing 0086 Layout.rightMargin: Kirigami.Units.smallSpacing 0087 Layout.fillHeight: true 0088 Layout.alignment: Qt.AlignVCenter 0089 icon.name: root.isPlaying ? "media-playback-pause" : "media-playback-start" 0090 icon.height: Kirigami.Units.iconSizes.small 0091 icon.width: Kirigami.Units.iconSizes.small 0092 onClicked: root.toggleRequested() 0093 } 0094 0095 QQC2.Button { 0096 flat: true 0097 Layout.leftMargin: Kirigami.Units.smallSpacing 0098 Layout.rightMargin: Kirigami.Units.smallSpacing 0099 Layout.fillHeight: true 0100 Layout.alignment: Qt.AlignVCenter 0101 icon.name: "media-playback-stop" 0102 icon.height: Kirigami.Units.iconSizes.small 0103 icon.width: Kirigami.Units.iconSizes.small 0104 onClicked: root.stopRequested() 0105 } 0106 0107 QQC2.Button { 0108 flat: true 0109 Layout.leftMargin: Kirigami.Units.smallSpacing 0110 Layout.rightMargin: Kirigami.Units.smallSpacing 0111 Layout.fillHeight: true 0112 Layout.alignment: Qt.AlignVCenter 0113 icon.name: "media-skip-forward" 0114 icon.height: Kirigami.Units.iconSizes.small 0115 icon.width: Kirigami.Units.iconSizes.small 0116 onClicked: root.nextRequested() 0117 } 0118 } 0119 }