@@ -12,7 +12,7 @@ Rectangle {
1212 id: root
1313
1414 property list< string> availableData: [" none" , " title" , " year" , " remaining" , " artist" , " rating" ]
15- readonly property var currentTrack: deckPlayer .currentTrack
15+ readonly property var currentTrack: deckPlayer? .currentTrack
1616 property var deckPlayer: Mixxx .PlayerManager .getPlayer (group)
1717 property bool editMode: false
1818 required property string group
@@ -27,11 +27,11 @@ Rectangle {
2727
2828 GradientStop {
2929 color: {
30- const trackColor = root .currentTrack .color ;
30+ const trackColor = root .currentTrack ? .color ;
3131 if (! trackColor .valid )
3232 return Theme .deckInfoBarBackgroundColor ;
3333
34- return Qt .darker (root .currentTrack .color , 2 );
34+ return Qt .darker (root .currentTrack ? .color , 2 );
3535 }
3636 position: 0
3737 }
@@ -48,7 +48,7 @@ Rectangle {
4848 anchors .left : parent .left
4949 anchors .top : parent .top
5050 asynchronous: true
51- source: root .currentTrack .coverArtUrl
51+ source: root .currentTrack ? .coverArtUrl
5252 visible: false
5353 width: height
5454 }
@@ -58,15 +58,15 @@ Rectangle {
5858 anchors .fill : coverArt
5959 color: Theme .deckEmptyCoverArt
6060 radius: 4
61- visible: ! root .deckPlayer .isLoaded && ! root .minimized
61+ visible: ! root .deckPlayer ? .isLoaded && ! root .minimized
6262 }
6363 OpacityMask {
6464 id: coverArtMask
6565
6666 anchors .fill : coverArt
6767 maskSource: coverArtCircle
6868 source: coverArt
69- visible: root .deckPlayer .isLoaded && ! root .minimized
69+ visible: root .deckPlayer ? .isLoaded && ! root .minimized
7070
7171 Skin .FadeBehavior on visible {
7272 fadeTarget: coverArtMask
@@ -82,29 +82,31 @@ Rectangle {
8282
8383 Cell {
8484 item .font .bold : false
85- item .font .weight : root .deckPlayer .isLoaded ? Font .DemiBold : Font .Thin
86- item .text : root .deckPlayer .isLoaded ? root .currentTrack .title : " No track loaded"
85+ item .font .weight : root .deckPlayer ? .isLoaded ? Font .DemiBold : Font .Thin
86+ item .text : root .deckPlayer ? .isLoaded ? root .currentTrack ? .title : " No track loaded"
8787 item .visible : true
8888 }
8989 }
9090 DelegateChoice {
9191 roleValue: " artist"
9292
9393 Cell {
94- item .text : root .currentTrack .artist
94+ item .text : root .currentTrack ? .artist
9595 }
9696 }
9797 DelegateChoice {
9898 roleValue: " year"
9999
100100 Cell {
101- item .text : root .currentTrack .year
101+ visible: root .width > 500 && root .currentTrack ? .year
102+ item .text : root .currentTrack ? .year
102103 }
103104 }
104105 DelegateChoice {
105106 roleValue: " remaining"
106107
107108 Cell {
109+ visible: root .width > 450
108110 readonly property real remaining: durationControl .value * (1 - playPositionControl .value )
109111
110112 item .text : ` -${ parseInt (remaining / 60 ).toString ().padStart (2 , ' 0' )} :${ parseInt (remaining % 60 ).toString ().padStart (2 , ' 0' )} .${ (remaining % 1 ).toFixed (1 )} `
@@ -131,11 +133,12 @@ Rectangle {
131133
132134 required property int index
133135 property real ratio: ((rateRatioControl .value - 1 ) * 100 ).toPrecision (2 )
134- property bool showSeparator: index != parent .model .count - 1 && root .deckPlayer .isLoaded
136+ property bool showSeparator: index != parent .model .count - 1 && root .deckPlayer ? .isLoaded
135137
136138 Layout .fillHeight : true
137139 Layout .fillWidth : index == 0
138140 Layout .preferredWidth : index == 0 ? 0 : rightColumnWidth
141+ visible: root .width > 400
139142
140143 Mixxx .ControlProxy {
141144 id: rateRatioControl
@@ -148,7 +151,7 @@ Rectangle {
148151
149152 anchors .centerIn : parent
150153 spacing: 0
151- visible: root .deckPlayer .isLoaded
154+ visible: root .deckPlayer ? .isLoaded
152155
153156 Repeater {
154157 model: 5
@@ -220,12 +223,14 @@ Rectangle {
220223 hoverEnabled: true
221224
222225 onClicked : event => {
226+ if (! root .currentTrack ) {
227+ return ;
228+ }
223229 let selectedStars = Math .ceil ((mouseX - stars .x ) / 16 );
224230 if (event .button === Qt .RightButton ) {
225231 root .currentTrack .stars = 0 ;
226232 } else if (selectedStars >= 0 && selectedStars <= 5 ) {
227233 root .currentTrack .stars = selectedStars;
228- console .warn (root .currentTrack .stars );
229234 }
230235 }
231236 }
@@ -341,7 +346,7 @@ Rectangle {
341346 required property int index
342347 readonly property bool isTop: !! parent .isTop
343348 property alias item: data
344- property bool showSeparator: index != parent .model .count - 1 && root .deckPlayer .isLoaded
349+ property bool showSeparator: index != parent .model .count - 1 && root .deckPlayer ? .isLoaded
345350
346351 Layout .fillHeight : true
347352 Layout .fillWidth : index == 0
@@ -356,7 +361,7 @@ Rectangle {
356361 font .bold : isTop
357362 font .pixelSize : isTop ? 18 : Theme .textFontPixelSize
358363 horizontalAlignment: index == 0 ? Text .AlignLeft : Text .AlignHCenter
359- visible: root .deckPlayer .isLoaded
364+ visible: root .deckPlayer ? .isLoaded
360365
361366 Skin .FadeBehavior on visible {
362367 fadeTarget: data
0 commit comments