1+ pragma ComponentBehavior : Bound
2+
13import QtQuick
24import QtQuick.Layouts
35import Mixxx 1.0 as Mixxx
911
1012 required property string group
1113
12- readonly property var deckPlayer: Mixxx .PlayerManager .getPlayer (root .group )
13- readonly property var currentTrack: deckPlayer? .currentTrack
14+ readonly property Mixxx . Player deckPlayer: Mixxx .PlayerManager .getPlayer (root .group )
15+ readonly property Mixxx . Track currentTrack: root . deckPlayer ? .currentTrack
1416 readonly property bool isLoaded: deckPlayer? .isLoaded ?? false
1517 readonly property bool useSecondaryDeckText: root .group === " [Channel3]" || root .group === " [Channel4]"
1618 readonly property color loadedDeckTextColor: useSecondaryDeckText ? LateNightTheme .secondaryDeckTextColor : LateNightTheme .primaryDeckTextColor
@@ -25,16 +27,7 @@ Item {
2527 if (! Number .isFinite (value) || value <= 0 ) {
2628 return " " ;
2729 }
28- const totalSeconds = Math .floor (value);
29- const hours = Math .floor (totalSeconds / 3600 );
30- const minutes = Math .floor ((totalSeconds % 3600 ) / 60 );
31- const seconds = totalSeconds % 60 ;
32- if (hours > 0 ) {
33- return hours .toString () + " :" +
34- minutes .toString ().padStart (2 , " 0" ) + " :" +
35- seconds .toString ().padStart (2 , " 0" );
36- }
37- return minutes .toString () + " :" + seconds .toString ().padStart (2 , " 0" );
30+ return Mixxx .DurationFormatter .format (value, Mixxx .DurationFormatter .TraditionalCoarse );
3831 }
3932
4033 function formatTrackTime (value , mode ) {
@@ -43,45 +36,7 @@ Item {
4336 }
4437
4538 const sign = value < 0 ? " -" : " " ;
46- const absoluteValue = Math .abs (value);
47-
48- switch (mode) {
49- case SharedDeck .TrackTime .Mode .Seconds :
50- case SharedDeck .TrackTime .Mode .SecondsLong :
51- {
52- const seconds = Math .floor (absoluteValue).toString ();
53- const centiseconds = Math .floor ((absoluteValue % 1 ) * 100 ).toString ().padStart (2 , " 0" );
54- return sign + seconds .padStart (mode === SharedDeck .TrackTime .Mode .SecondsLong ? 3 : 0 , " 0" ) +
55- " ." + centiseconds;
56- }
57- case SharedDeck .TrackTime .Mode .KiloSeconds :
58- {
59- const kilos = Math .floor (absoluteValue / 1000 );
60- const seconds = Math .floor (absoluteValue % 1000 ).toString ().padStart (3 , " 0" );
61- const centiseconds = Math .floor ((absoluteValue % 1 ) * 100 ).toString ().padStart (2 , " 0" );
62- return sign + kilos .toString () + " ." + seconds + " " + centiseconds;
63- }
64- case SharedDeck .TrackTime .Mode .HectoSeconds :
65- return " ???" ;
66- default :
67- break ;
68- }
69-
70- const totalSeconds = Math .floor (absoluteValue);
71- const centiseconds = Math .floor ((absoluteValue - totalSeconds) * 100 );
72- const hours = Math .floor (totalSeconds / 3600 );
73- const minutes = Math .floor ((totalSeconds % 3600 ) / 60 );
74- const seconds = totalSeconds % 60 ;
75- let text = durationProxy .value > 3600
76- ? Math .floor (totalSeconds / 3600 ).toString ().padStart (2 , " 0" ) + " :" +
77- minutes .toString ().padStart (2 , " 0" ) + " :" +
78- seconds .toString ().padStart (2 , " 0" )
79- : minutes .toString () + " :" + seconds .toString ().padStart (2 , " 0" );
80-
81- if (mode !== SharedDeck .TrackTime .Mode .TraditionalCoarse ) {
82- text += " ." + centiseconds .toString ().padStart (2 , " 0" );
83- }
84- return sign + text;
39+ return sign + Mixxx .DurationFormatter .format (Math .abs (value), mode);
8540 }
8641
8742 function formatPositionTime () {
@@ -141,8 +96,8 @@ Item {
14196 Layout .fillWidth : true
14297 Layout .fillHeight : true
14398 group: root .group
144- track: currentTrack
145- text: root .isLoaded ? (currentTrack? .title || " Unknown Title" ) : " "
99+ track: root . currentTrack
100+ text: root .isLoaded ? (root . currentTrack ? .title || " Unknown Title" ) : " "
146101 displayProperty: " titleInfo"
147102 editProperty: " title"
148103 editable: true
@@ -162,7 +117,7 @@ Item {
162117 pixelSize: 16
163118 showTrackPropertiesOnDoubleClick: false
164119 textColor: root .isLoaded ? LateNightTheme .deckTimeTextColor : LateNightTheme .textColorMuted
165- track: currentTrack
120+ track: root . currentTrack
166121 text: root .formatPositionTime ()
167122 visible: root .isLoaded
168123
@@ -198,8 +153,8 @@ Item {
198153 Layout .fillWidth : true
199154 Layout .fillHeight : true
200155 group: root .group
201- track: currentTrack
202- text: root .isLoaded ? (currentTrack? .artist || " Unknown Artist" ) : " "
156+ track: root . currentTrack
157+ text: root .isLoaded ? (root . currentTrack ? .artist || " Unknown Artist" ) : " "
203158 displayProperty: " artist"
204159 editProperty: " artist"
205160 editable: true
@@ -211,7 +166,7 @@ Item {
211166 id: durationText
212167 Layout .fillHeight : true
213168 group: root .group
214- track: currentTrack
169+ track: root . currentTrack
215170 text: root .isLoaded ? root .formatDuration (durationProxy .value ) : " "
216171 displayProperty: " durationTextSeconds"
217172 editable: false
0 commit comments