Warning, /plasma/bluedevil/src/applet/package/contents/ui/MediaPlayerItem.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2015 David Rosca <nowrep@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Layouts 1.15 0009 0010 import org.kde.plasma.components 3.0 as PlasmaComponents3 0011 import org.kde.kirigami 2.20 as Kirigami 0012 0013 import org.kde.bluezqt 1.0 as BluezQt 0014 0015 ColumnLayout { 0016 id: mediaPlayer 0017 0018 spacing: 0 0019 0020 PlasmaComponents3.Label { 0021 id: trackTitleLabel 0022 Layout.fillWidth: true 0023 elide: Text.ElideRight 0024 font.weight: MediaPlayer && MediaPlayer.track.title ? Font.DemiBold : Font.Normal 0025 font.italic: MediaPlayer && MediaPlayer.status === BluezQt.MediaPlayer.Playing 0026 font.pointSize: Kirigami.Theme.smallFont.pointSize 0027 font.family: Kirigami.Theme.smallFont.family 0028 opacity: 0.6 0029 text: trackTitleText() 0030 textFormat: Text.PlainText 0031 visible: text.length 0032 } 0033 0034 PlasmaComponents3.Label { 0035 id: trackArtistLabel 0036 Layout.fillWidth: true 0037 elide: Text.ElideRight 0038 font: Kirigami.Theme.smallFont 0039 opacity: 0.6 0040 text: MediaPlayer ? MediaPlayer.track.artist : "" 0041 textFormat: Text.PlainText 0042 visible: text.length 0043 } 0044 0045 PlasmaComponents3.Label { 0046 id: trackAlbumLabel 0047 Layout.fillWidth: true 0048 elide: Text.ElideRight 0049 font: Kirigami.Theme.smallFont 0050 opacity: 0.6 0051 text: MediaPlayer ? MediaPlayer.track.album : "" 0052 textFormat: Text.PlainText 0053 visible: text.length 0054 } 0055 0056 RowLayout { 0057 spacing: 0 0058 0059 PlasmaComponents3.ToolButton { 0060 id: previousButton 0061 icon.name: "media-skip-backward-symbolic" 0062 0063 onClicked: MediaPlayer.previous() 0064 } 0065 0066 PlasmaComponents3.ToolButton { 0067 id: playPauseButton 0068 icon.name: playPauseButtonIcon() 0069 0070 onClicked: playPauseButtonClicked() 0071 } 0072 0073 PlasmaComponents3.ToolButton { 0074 id: stopButton 0075 icon.name: "media-playback-stop-symbolic" 0076 enabled: MediaPlayer && MediaPlayer.status !== BluezQt.MediaPlayer.Stopped 0077 0078 onClicked: MediaPlayer.stop() 0079 } 0080 0081 PlasmaComponents3.ToolButton { 0082 id: nextButton 0083 icon.name: "media-skip-forward-symbolic" 0084 0085 onClicked: MediaPlayer.next() 0086 } 0087 } 0088 0089 function trackTitleText() { 0090 if (!MediaPlayer) { 0091 return ""; 0092 } 0093 0094 const play = "\u25B6"; 0095 0096 if (MediaPlayer.status === BluezQt.MediaPlayer.Playing) { 0097 return "%1 %2".arg(play).arg(MediaPlayer.track.title); 0098 } 0099 return MediaPlayer.track.title; 0100 } 0101 0102 function playPauseButtonIcon() { 0103 if (!MediaPlayer) { 0104 return ""; 0105 } 0106 0107 if (MediaPlayer.status !== BluezQt.MediaPlayer.Playing) { 0108 return "media-playback-start-symbolic"; 0109 } else { 0110 return "media-playback-pause-symbolic"; 0111 } 0112 } 0113 0114 function playPauseButtonClicked() { 0115 if (MediaPlayer.status !== BluezQt.MediaPlayer.Playing) { 0116 MediaPlayer.play() 0117 } else { 0118 MediaPlayer.pause() 0119 } 0120 } 0121 }