Compare commits

...

3 commits

Author SHA1 Message Date
Benjamin Palko
556a24774a allow switching players 2025-08-27 15:22:46 -04:00
Benjamin Palko
19965c2a70 full round when top 2025-08-27 15:21:49 -04:00
Benjamin Palko
2915a5fc3a show timestamp 2025-08-27 15:21:29 -04:00
3 changed files with 33 additions and 16 deletions

View file

@ -23,19 +23,6 @@ WrapperRectangle {
implicitWidth: 800 implicitWidth: 800
StyledText {
Layout.alignment: Qt.AlignHCenter
text: {
if (root.player.identity) {
const words = root.player.identity.split("-");
const capitalized = words.map(val => String(val).charAt(0).toUpperCase() + String(val).slice(1));
return capitalized.join(" ");
}
return root.player.desktopEntry ?? root.player.dbusName ?? "unknown";
}
font.pixelSize: 20
}
StyledText { StyledText {
id: text id: text
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -77,6 +64,17 @@ WrapperRectangle {
} }
} }
StyledText {
Layout.alignment: Qt.AlignHCenter
text: {
function formatTime(num) {
return Math.floor(num).toString().padStart(2, "0");
}
return `${formatTime(root.player.position / 60)}:${formatTime(root.player.position % 60)} - ${formatTime(root.player.length / 60)}:${formatTime(root.player.length % 60)}`;
}
font.pixelSize: Dimensions.mpris.fontSize
}
StyledSlider { StyledSlider {
from: 0 from: 0
to: root.player.length ?? 0 to: root.player.length ?? 0

View file

@ -8,8 +8,7 @@ Drawer {
background: Rectangle { background: Rectangle {
Component.onCompleted: { Component.onCompleted: {
if (control.edge == Qt.TopEdge) { if (control.edge == Qt.TopEdge) {
bottomLeftRadius = 8; radius = 8;
bottomRightRadius = 8;
} else if (control.edge == Qt.LeftEdge) { } else if (control.edge == Qt.LeftEdge) {
topRightRadius = 8; topRightRadius = 8;
bottomRightRadius = 8; bottomRightRadius = 8;

View file

@ -8,5 +8,25 @@ Singleton {
id: root id: root
property list<MprisPlayer> players: Mpris.players.values property list<MprisPlayer> players: Mpris.players.values
property MprisPlayer active: players.filter(player => player.isPlaying)[0] ?? players[0] property MprisPlayer active: players[properties.currentIndex]
PersistentProperties {
id: properties
property int currentIndex: 0
}
function nextPlayer() {
if (players.length == 0) {
return;
}
properties.currentIndex = properties.currentIndex + 1 % players.length;
}
function previousPlayer() {
if (players.length == 0) {
return;
}
properties.currentIndex = properties.currentIndex - 1 % players.length;
}
} }