Warning, /multimedia/haruna/src/qml/PlayListItem.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2020 George Florea Bănuș <georgefb899@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Controls 0009 import QtQuick.Layouts 0010 0011 import org.kde.kirigami as Kirigami 0012 import org.kde.haruna 0013 import org.kde.haruna.settings 0014 0015 ItemDelegate { 0016 id: root 0017 0018 property bool isLocal: model.isLocal 0019 property string rowNumber: (index + 1).toString() 0020 property var alpha: PlaylistSettings.overlayVideo ? 0.6 : 1 0021 property int fontSize: (window.isFullScreen() && PlaylistSettings.bigFontFullscreen) 0022 ? Kirigami.Units.gridUnit 0023 : Kirigami.Units.gridUnit - 6 0024 0025 padding: 0 0026 implicitWidth: ListView.view.width 0027 highlighted: model.isPlaying 0028 0029 background: Rectangle { 0030 anchors.fill: parent 0031 color: { 0032 if (hovered) { 0033 return Qt.alpha(Kirigami.Theme.hoverColor, alpha) 0034 } 0035 0036 if (highlighted) { 0037 return Qt.alpha(Kirigami.Theme.highlightColor, alpha) 0038 } 0039 0040 return Qt.alpha(Kirigami.Theme.backgroundColor, alpha) 0041 } 0042 } 0043 0044 contentItem: Item { 0045 anchors.fill: parent 0046 RowLayout { 0047 anchors.fill: parent 0048 spacing: Kirigami.Units.largeSpacing 0049 Label { 0050 text: pad(root.rowNumber, playlistView.count.toString().length) 0051 color: root.hovered || root.highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor 0052 visible: PlaylistSettings.showRowNumber 0053 font.pointSize: root.fontSize 0054 horizontalAlignment: Qt.AlignCenter 0055 Layout.leftMargin: Kirigami.Units.largeSpacing 0056 0057 function pad(number, length) { 0058 while (number.length < length) 0059 number = "0" + number; 0060 return number; 0061 } 0062 0063 } 0064 0065 Rectangle { 0066 width: 1 0067 color: Kirigami.Theme.alternateBackgroundColor 0068 visible: PlaylistSettings.showRowNumber 0069 Layout.fillHeight: true 0070 } 0071 0072 Kirigami.Icon { 0073 source: "media-playback-start" 0074 color: root.hovered || root.highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor 0075 width: Kirigami.Units.iconSizes.small 0076 height: Kirigami.Units.iconSizes.small 0077 visible: model.isPlaying 0078 Layout.leftMargin: PlaylistSettings.showRowNumber ? 0 : Kirigami.Units.largeSpacing 0079 } 0080 0081 LabelWithTooltip { 0082 color: root.hovered || root.highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor 0083 horizontalAlignment: Qt.AlignLeft 0084 verticalAlignment: Qt.AlignVCenter 0085 elide: Text.ElideRight 0086 font.pointSize: root.fontSize 0087 font.weight: model.isPlaying ? Font.ExtraBold : Font.Normal 0088 text: PlaylistSettings.showMediaTitle ? model.title : model.name 0089 layer.enabled: true 0090 Layout.fillWidth: true 0091 Layout.leftMargin: PlaylistSettings.showRowNumber || model.isPlaying ? 0 : Kirigami.Units.largeSpacing 0092 Binding { 0093 target: root 0094 property: "implicitHeight" 0095 value: root.fontSize * 3 0096 } 0097 } 0098 0099 Label { 0100 text: model.duration 0101 color: root.hovered || root.highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor 0102 visible: model.duration.length > 0 0103 font.pointSize: root.fontSize 0104 horizontalAlignment: Qt.AlignCenter 0105 Layout.margins: Kirigami.Units.largeSpacing 0106 } 0107 } 0108 } 0109 onDoubleClicked: { 0110 mpv.playlistProxyModel.setPlayingItem(index) 0111 } 0112 }