Warning, /plasma/plasma-desktop/applets/taskmanager/package/contents/ui/PlayerController.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2013 Sebastian Kügler <sebas@kde.org>
0003 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
0004 SPDX-FileCopyrightText: 2016 Kai Uwe Broulik <kde@privat.broulik.de>
0005 SPDX-FileCopyrightText: 2017 Roman Gilg <subdiff@gmail.com>
0006 SPDX-FileCopyrightText: 2020 Nate Graham <nate@kde.org>
0007
0008 SPDX-License-Identifier: LGPL-2.0-or-later
0009 */
0010
0011 import QtQuick
0012 import QtQuick.Layouts
0013
0014 import org.kde.plasma.components 3.0 as PlasmaComponents3
0015 import org.kde.plasma.extras 2.0 as PlasmaExtras
0016 import org.kde.kirigami 2 as Kirigami
0017 import org.kde.plasma.private.mpris as Mpris
0018
0019 RowLayout {
0020 enabled: toolTipDelegate.playerData.canControl
0021
0022 readonly property bool isPlaying: toolTipDelegate.playerData.playbackStatus === Mpris.PlaybackStatus.Playing
0023
0024 ColumnLayout {
0025 Layout.fillWidth: true
0026 Layout.topMargin: Kirigami.Units.smallSpacing
0027 Layout.bottomMargin: Kirigami.Units.smallSpacing
0028 Layout.rightMargin: isWin ? Kirigami.Units.smallSpacing : Kirigami.Units.gridUnit
0029 spacing: 0
0030
0031 ScrollableTextWrapper {
0032 id: songTextWrapper
0033
0034 Layout.fillWidth: true
0035 Layout.preferredHeight: songText.height
0036 implicitWidth: songText.implicitWidth
0037
0038 PlasmaComponents3.Label {
0039 id: songText
0040 parent: songTextWrapper
0041 width: parent.width
0042 height: undefined
0043 lineHeight: 1
0044 maximumLineCount: artistText.visible? 1 : 2
0045 wrapMode: Text.NoWrap
0046 elide: parent.state ? Text.ElideNone : Text.ElideRight
0047 text: toolTipDelegate.playerData.track
0048 textFormat: Text.PlainText
0049 }
0050 }
0051
0052 ScrollableTextWrapper {
0053 id: artistTextWrapper
0054
0055 Layout.fillWidth: true
0056 Layout.preferredHeight: artistText.height
0057 implicitWidth: artistText.implicitWidth
0058 visible: artistText.text.length > 0
0059
0060 PlasmaExtras.DescriptiveLabel {
0061 id: artistText
0062 parent: artistTextWrapper
0063 width: parent.width
0064 height: undefined
0065 wrapMode: Text.NoWrap
0066 lineHeight: 1
0067 elide: parent.state ? Text.ElideNone : Text.ElideRight
0068 text: toolTipDelegate.playerData.artist
0069 font: Kirigami.Theme.smallFont
0070 textFormat: Text.PlainText
0071 }
0072 }
0073 }
0074
0075 PlasmaComponents3.ToolButton {
0076 enabled: toolTipDelegate.playerData.canGoPrevious
0077 icon.name: LayoutMirroring.enabled ? "media-skip-forward" : "media-skip-backward"
0078 onClicked: toolTipDelegate.playerData.Previous()
0079 }
0080
0081 PlasmaComponents3.ToolButton {
0082 enabled: isPlaying ? toolTipDelegate.playerData.canPause : toolTipDelegate.playerData.canPlay
0083 icon.name: isPlaying ? "media-playback-pause" : "media-playback-start"
0084 onClicked: {
0085 if (!isPlaying) {
0086 toolTipDelegate.playerData.Play();
0087 } else {
0088 toolTipDelegate.playerData.Pause();
0089 }
0090 }
0091 }
0092
0093 PlasmaComponents3.ToolButton {
0094 enabled: toolTipDelegate.playerData.canGoNext
0095 icon.name: LayoutMirroring.enabled ? "media-skip-backward" : "media-skip-forward"
0096 onClicked: toolTipDelegate.playerData.Next()
0097 }
0098 }