Merge lp:~vthompson/music-app/sketching-the-future-001 into lp:music-app/remix

Proposed by Victor Thompson
Status: Merged
Approved by: Andrew Hayzen
Approved revision: 765
Merged at revision: 789
Proposed branch: lp:~vthompson/music-app/sketching-the-future-001
Merge into: lp:music-app/remix
Diff against target: 687 lines (+339/-246)
4 files modified
MusicNowPlaying.qml (+329/-237)
Style.qml (+4/-4)
common/ListItemWithActions.qml (+2/-2)
music-app.qml (+4/-3)
To merge this branch: bzr merge lp:~vthompson/music-app/sketching-the-future-001
Reviewer Review Type Date Requested Status
Andrew Hayzen Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Review via email: mp+245062@code.launchpad.net

Commit message

* Show full cover art in Now Playing
* Allow swipe left or right to navigate queue in Now Playing

Description of the change

Inputs from the community [1] along with the fact that the cover art provided by the thumbnailer service is mostly adequate enough to display full screen cover art, has given the team a desire to change how the Now Playing view displays cover art. This change displays full screen cover art.

[1] https://plus.google.com/116597364982833470829/posts/hkYDdVVk5QX

To post a comment you must log in.
Revision history for this message
Victor Thompson (vthompson) wrote :

#blocked Design input

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
764. By Victor Thompson

merge of trunk

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Victor Thompson (vthompson) wrote :

#unblocked design has approved this change

Revision history for this message
Andrew Hayzen (ahayzen) wrote :

Looks good so far, visually the only issue I have is that it is difficult to tell where you have to click on the progress bar, as it is black on black.

4 inline diff comments/questions.

review: Needs Fixing
765. By Victor Thompson

update per comments.

Revision history for this message
Victor Thompson (vthompson) wrote :

I've pushed changes with resolutions to the inline comments.

Revision history for this message
Andrew Hayzen (ahayzen) wrote :

Awesome really good to see the designs land :)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'MusicNowPlaying.qml'
2--- MusicNowPlaying.qml 2015-01-14 05:07:22 +0000
3+++ MusicNowPlaying.qml 2015-01-18 00:06:21 +0000
4@@ -191,32 +191,49 @@
5
6 Item {
7 id: fullview
8- anchors.fill: parent
9+ anchors {
10+ top: parent.top
11+ topMargin: mainView.header.height
12+ }
13+ height: parent.height - mainView.header.height - units.gu(9.5)
14 visible: !isListView
15+ width: parent.width
16
17 BlurredBackground {
18 id: blurredBackground
19- anchors.top: parent.top
20- anchors.topMargin: mainView.header.height
21- height: units.gu(27)
22+ anchors {
23+ left: parent.left
24+ right: parent.right
25+ top: parent.top
26+ }
27 art: albumImage.firstSource
28-
29- CoverGrid {
30- id: albumImage
31+ height: parent.height - units.gu(7)
32+
33+ Item {
34+ id: albumImageContainer
35 anchors {
36- centerIn: parent
37- }
38- covers: [{art: player.currentMetaArt, author: player.currentMetaArtist, album: player.currentMetaAlbum}]
39- size: units.gu(18)
40- }
41- }
42-
43- /* Full toolbar */
44- Item {
45- id: musicToolbarFullContainer
46- anchors.top: blurredBackground.bottom
47- anchors.topMargin: nowPlayingWideAspectTitle.lineCount === 1 ? units.gu(4) : units.gu(2)
48- width: blurredBackground.width
49+ horizontalCenter: parent.horizontalCenter
50+ top: parent.top
51+ }
52+ height: parent.height
53+ width: parent.width
54+
55+ CoverGrid {
56+ id: albumImage
57+ anchors.centerIn: parent
58+ covers: [{art: player.currentMetaArt, author: player.currentMetaArtist, album: player.currentMetaAlbum}]
59+ size: parent.width > parent.height ? parent.height : parent.width
60+ }
61+ }
62+
63+ Rectangle {
64+ id: nowPlayingWideAspectLabelsBackground
65+ anchors.bottom: parent.bottom
66+ color: styleMusic.common.black
67+ height: nowPlayingWideAspectTitle.lineCount === 1 ? units.gu(10) : units.gu(13)
68+ opacity: 0.8
69+ width: parent.width
70+ }
71
72 /* Column for labels in wideAspect */
73 Column {
74@@ -227,6 +244,8 @@
75 leftMargin: units.gu(2)
76 right: parent.right
77 rightMargin: units.gu(2)
78+ top: nowPlayingWideAspectLabelsBackground.top
79+ topMargin: nowPlayingWideAspectTitle.lineCount === 1 ? units.gu(2) : units.gu(1.5)
80 }
81
82 /* Title of track */
83@@ -263,224 +282,137 @@
84 }
85 }
86
87- /* Progress bar component */
88+ /* Detect cover art swipe */
89 MouseArea {
90- id: musicToolbarFullProgressContainer
91- anchors.left: parent.left
92- anchors.leftMargin: units.gu(3)
93+ anchors.fill: parent
94+ property string direction: "None"
95+ property real lastX: -1
96+
97+ onPressed: lastX = mouse.x
98+
99+ onReleased: {
100+ var diff = mouse.x - lastX
101+ if (Math.abs(diff) < units.gu(4)) {
102+ return;
103+ } else if (diff < 0) {
104+ player.previousSong()
105+ } else if (diff > 0) {
106+ player.nextSong()
107+ }
108+ }
109+ }
110+ }
111+
112+ /* Background for progress bar component */
113+ Rectangle {
114+ id: musicToolbarFullProgressBackground
115+ anchors {
116+ bottom: parent.bottom
117+ left: parent.left
118+ right: parent.right
119+ top: blurredBackground.bottom
120+ }
121+ color: styleMusic.common.black
122+ }
123+
124+ /* Progress bar component */
125+ Item {
126+ id: musicToolbarFullProgressContainer
127+ anchors.left: parent.left
128+ anchors.leftMargin: units.gu(3)
129+ anchors.right: parent.right
130+ anchors.rightMargin: units.gu(3)
131+ anchors.top: blurredBackground.bottom
132+ anchors.topMargin: units.gu(1)
133+ height: units.gu(3)
134+ width: parent.width
135+
136+ /* Position label */
137+ Label {
138+ id: musicToolbarFullPositionLabel
139+ anchors.top: progressSliderMusic.bottom
140+ anchors.topMargin: units.gu(-2)
141+ anchors.left: parent.left
142+ color: styleMusic.nowPlaying.labelSecondaryColor
143+ fontSize: "small"
144+ height: parent.height
145+ horizontalAlignment: Text.AlignHCenter
146+ text: durationToString(player.position)
147+ verticalAlignment: Text.AlignVCenter
148+ width: units.gu(3)
149+ }
150+
151+ Slider {
152+ id: progressSliderMusic
153+ anchors.left: parent.left
154 anchors.right: parent.right
155- anchors.rightMargin: units.gu(3)
156- anchors.top: nowPlayingWideAspectLabels.bottom
157- anchors.topMargin: nowPlayingWideAspectTitle.lineCount === 1 ? units.gu(3) : units.gu(1.5)
158- height: units.gu(3)
159- width: parent.width
160-
161- /* Position label */
162- Label {
163- id: musicToolbarFullPositionLabel
164- anchors.top: progressSliderMusic.bottom
165- anchors.topMargin: units.gu(-2)
166- anchors.left: parent.left
167- color: styleMusic.nowPlaying.labelSecondaryColor
168- fontSize: "small"
169- height: parent.height
170- horizontalAlignment: Text.AlignHCenter
171- text: durationToString(player.position)
172- verticalAlignment: Text.AlignVCenter
173- width: units.gu(3)
174- }
175-
176- Slider {
177- id: progressSliderMusic
178- anchors.left: parent.left
179- anchors.right: parent.right
180- maximumValue: player.duration // load value at startup
181- objectName: "progressSliderShape"
182- style: UbuntuBlueSliderStyle {}
183- value: player.position // load value at startup
184-
185- function formatValue(v) {
186- if (seeking) { // update position label while dragging
187- musicToolbarFullPositionLabel.text = durationToString(v)
188- }
189-
190- return durationToString(v)
191- }
192-
193- property bool seeking: false
194- property bool seeked: false
195-
196- onSeekingChanged: {
197- if (seeking === false) {
198+ maximumValue: player.duration // load value at startup
199+ objectName: "progressSliderShape"
200+ style: UbuntuBlueSliderStyle {}
201+ value: player.position // load value at startup
202+
203+ function formatValue(v) {
204+ if (seeking) { // update position label while dragging
205+ musicToolbarFullPositionLabel.text = durationToString(v)
206+ }
207+
208+ return durationToString(v)
209+ }
210+
211+ property bool seeking: false
212+ property bool seeked: false
213+
214+ onSeekingChanged: {
215+ if (seeking === false) {
216+ musicToolbarFullPositionLabel.text = durationToString(player.position)
217+ }
218+ }
219+
220+ onPressedChanged: {
221+ seeking = pressed
222+
223+ if (!pressed) {
224+ seeked = true
225+ player.seek(value)
226+
227+ musicToolbarFullPositionLabel.text = durationToString(value)
228+ }
229+ }
230+
231+ Connections {
232+ target: player
233+ onPositionChanged: {
234+ // seeked is a workaround for bug 1310706 as the first position after a seek is sometimes invalid (0)
235+ if (progressSliderMusic.seeking === false && !progressSliderMusic.seeked) {
236 musicToolbarFullPositionLabel.text = durationToString(player.position)
237- }
238- }
239-
240- onPressedChanged: {
241- seeking = pressed
242-
243- if (!pressed) {
244- seeked = true
245- player.seek(value)
246-
247- musicToolbarFullPositionLabel.text = durationToString(value)
248- }
249- }
250-
251- Connections {
252- target: player
253- onPositionChanged: {
254- // seeked is a workaround for bug 1310706 as the first position after a seek is sometimes invalid (0)
255- if (progressSliderMusic.seeking === false && !progressSliderMusic.seeked) {
256- musicToolbarFullPositionLabel.text = durationToString(player.position)
257- musicToolbarFullDurationLabel.text = durationToString(player.duration)
258-
259- progressSliderMusic.value = player.position
260- progressSliderMusic.maximumValue = player.duration
261- }
262-
263- progressSliderMusic.seeked = false;
264- }
265- onStopped: {
266- musicToolbarFullPositionLabel.text = durationToString(0);
267- musicToolbarFullDurationLabel.text = durationToString(0);
268- }
269- }
270- }
271-
272- /* Duration label */
273- Label {
274- id: musicToolbarFullDurationLabel
275- anchors.top: progressSliderMusic.bottom
276- anchors.topMargin: units.gu(-2)
277- anchors.right: parent.right
278- color: styleMusic.nowPlaying.labelSecondaryColor
279- fontSize: "small"
280- height: parent.height
281- horizontalAlignment: Text.AlignHCenter
282- text: durationToString(player.duration)
283- verticalAlignment: Text.AlignVCenter
284- width: units.gu(3)
285- }
286- }
287-
288- /* Repeat button */
289- MouseArea {
290- id: nowPlayingRepeatButton
291- anchors.right: nowPlayingPreviousButton.left
292- anchors.rightMargin: units.gu(1)
293- anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
294- height: units.gu(6)
295- opacity: player.repeat && !emptyPage.noMusic ? 1 : .4
296- width: height
297- onClicked: player.repeat = !player.repeat
298-
299- Icon {
300- id: repeatIcon
301- height: units.gu(3)
302- width: height
303- anchors.verticalCenter: parent.verticalCenter
304- anchors.horizontalCenter: parent.horizontalCenter
305- color: "white"
306- name: "media-playlist-repeat"
307- objectName: "repeatShape"
308- opacity: player.repeat && !emptyPage.noMusic ? 1 : .4
309- }
310- }
311-
312- /* Previous button */
313- MouseArea {
314- id: nowPlayingPreviousButton
315- anchors.right: nowPlayingPlayButton.left
316- anchors.rightMargin: units.gu(1)
317- anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
318- height: units.gu(6)
319- opacity: trackQueue.model.count === 0 ? .4 : 1
320- width: height
321- onClicked: player.previousSong()
322-
323- Icon {
324- id: nowPlayingPreviousIndicator
325- height: units.gu(3)
326- width: height
327- anchors.verticalCenter: parent.verticalCenter
328- anchors.horizontalCenter: parent.horizontalCenter
329- color: "white"
330- name: "media-skip-backward"
331- objectName: "previousShape"
332- opacity: 1
333- }
334- }
335-
336- /* Play/Pause button */
337- MouseArea {
338- id: nowPlayingPlayButton
339- anchors.horizontalCenter: parent.horizontalCenter
340- anchors.top: musicToolbarFullProgressContainer.bottom
341- anchors.topMargin: units.gu(2)
342- height: units.gu(12)
343- width: height
344- onClicked: player.toggle()
345-
346- Icon {
347- id: nowPlayingPlayIndicator
348- height: units.gu(6)
349- width: height
350- anchors.verticalCenter: parent.verticalCenter
351- anchors.horizontalCenter: parent.horizontalCenter
352- opacity: emptyPage.noMusic ? .4 : 1
353- color: "white"
354- name: player.playbackState === MediaPlayer.PlayingState ? "media-playback-pause" : "media-playback-start"
355- objectName: "playShape"
356- }
357- }
358-
359- /* Next button */
360- MouseArea {
361- id: nowPlayingNextButton
362- anchors.left: nowPlayingPlayButton.right
363- anchors.leftMargin: units.gu(1)
364- anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
365- height: units.gu(6)
366- opacity: trackQueue.model.count === 0 ? .4 : 1
367- width: height
368- onClicked: player.nextSong()
369-
370- Icon {
371- id: nowPlayingNextIndicator
372- height: units.gu(3)
373- width: height
374- anchors.verticalCenter: parent.verticalCenter
375- anchors.horizontalCenter: parent.horizontalCenter
376- color: "white"
377- name: "media-skip-forward"
378- objectName: "forwardShape"
379- opacity: 1
380- }
381- }
382-
383- /* Shuffle button */
384- MouseArea {
385- id: nowPlayingShuffleButton
386- anchors.left: nowPlayingNextButton.right
387- anchors.leftMargin: units.gu(1)
388- anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
389- height: units.gu(6)
390- opacity: player.shuffle && !emptyPage.noMusic ? 1 : .4
391- width: height
392- onClicked: player.shuffle = !player.shuffle
393-
394- Icon {
395- id: shuffleIcon
396- height: units.gu(3)
397- width: height
398- anchors.verticalCenter: parent.verticalCenter
399- anchors.horizontalCenter: parent.horizontalCenter
400- color: "white"
401- name: "media-playlist-shuffle"
402- objectName: "shuffleShape"
403- opacity: player.shuffle && !emptyPage.noMusic ? 1 : .4
404- }
405+ musicToolbarFullDurationLabel.text = durationToString(player.duration)
406+
407+ progressSliderMusic.value = player.position
408+ progressSliderMusic.maximumValue = player.duration
409+ }
410+
411+ progressSliderMusic.seeked = false;
412+ }
413+ onStopped: {
414+ musicToolbarFullPositionLabel.text = durationToString(0);
415+ musicToolbarFullDurationLabel.text = durationToString(0);
416+ }
417+ }
418+ }
419+
420+ /* Duration label */
421+ Label {
422+ id: musicToolbarFullDurationLabel
423+ anchors.top: progressSliderMusic.bottom
424+ anchors.topMargin: units.gu(-2)
425+ anchors.right: parent.right
426+ color: styleMusic.nowPlaying.labelSecondaryColor
427+ fontSize: "small"
428+ height: parent.height
429+ horizontalAlignment: Text.AlignHCenter
430+ text: durationToString(player.duration)
431+ verticalAlignment: Text.AlignVCenter
432+ width: units.gu(3)
433 }
434 }
435 }
436@@ -569,7 +501,7 @@
437 sourceComponent: ListView {
438 id: queueList
439 anchors {
440- bottomMargin: units.gu(2)
441+ bottomMargin: musicToolbarFullContainer.height + units.gu(2)
442 fill: parent
443 topMargin: units.gu(2)
444 }
445@@ -628,7 +560,7 @@
446 id: queueDelegate
447 ListItemWithActions {
448 id: queueListItem
449- color: player.currentIndex === index ? "#2c2c34" : mainView.backgroundColor
450+ color: player.currentIndex === index ? "#2c2c34" : styleMusic.mainView.backgroundColor
451 height: queueList.normalHeight
452 objectName: "nowPlayingListItem" + index
453 state: ""
454@@ -718,4 +650,164 @@
455 }
456 visible: isListView
457 }
458+
459+ /* Full toolbar */
460+ Rectangle {
461+ id: musicToolbarFullContainer
462+ anchors.bottom: parent.bottom
463+ color: styleMusic.common.black
464+ height: units.gu(10)
465+ width: parent.width
466+
467+ /* Repeat button */
468+ MouseArea {
469+ id: nowPlayingRepeatButton
470+ anchors.right: nowPlayingPreviousButton.left
471+ anchors.rightMargin: units.gu(1)
472+ anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
473+ height: units.gu(6)
474+ opacity: player.repeat && !emptyPage.noMusic ? 1 : .4
475+ width: height
476+ onClicked: player.repeat = !player.repeat
477+
478+ Icon {
479+ id: repeatIcon
480+ height: units.gu(3)
481+ width: height
482+ anchors.verticalCenter: parent.verticalCenter
483+ anchors.horizontalCenter: parent.horizontalCenter
484+ color: "white"
485+ name: "media-playlist-repeat"
486+ objectName: "repeatShape"
487+ opacity: player.repeat && !emptyPage.noMusic ? 1 : .4
488+ }
489+ }
490+
491+ /* Previous button */
492+ MouseArea {
493+ id: nowPlayingPreviousButton
494+ anchors.right: nowPlayingPlayButton.left
495+ anchors.rightMargin: units.gu(1)
496+ anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
497+ height: units.gu(6)
498+ opacity: trackQueue.model.count === 0 ? .4 : 1
499+ width: height
500+ onClicked: player.previousSong()
501+
502+ Icon {
503+ id: nowPlayingPreviousIndicator
504+ height: units.gu(3)
505+ width: height
506+ anchors.verticalCenter: parent.verticalCenter
507+ anchors.horizontalCenter: parent.horizontalCenter
508+ color: "white"
509+ name: "media-skip-backward"
510+ objectName: "previousShape"
511+ opacity: 1
512+ }
513+ }
514+
515+ /* Play/Pause button */
516+ MouseArea {
517+ id: nowPlayingPlayButton
518+ anchors.centerIn: parent
519+ height: units.gu(10)
520+ width: height
521+ onClicked: player.toggle()
522+
523+ Icon {
524+ id: nowPlayingPlayIndicator
525+ height: units.gu(6)
526+ width: height
527+ anchors.verticalCenter: parent.verticalCenter
528+ anchors.horizontalCenter: parent.horizontalCenter
529+ opacity: emptyPage.noMusic ? .4 : 1
530+ color: "white"
531+ name: player.playbackState === MediaPlayer.PlayingState ? "media-playback-pause" : "media-playback-start"
532+ objectName: "playShape"
533+ }
534+ }
535+
536+ /* Next button */
537+ MouseArea {
538+ id: nowPlayingNextButton
539+ anchors.left: nowPlayingPlayButton.right
540+ anchors.leftMargin: units.gu(1)
541+ anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
542+ height: units.gu(6)
543+ opacity: trackQueue.model.count === 0 ? .4 : 1
544+ width: height
545+ onClicked: player.nextSong()
546+
547+ Icon {
548+ id: nowPlayingNextIndicator
549+ height: units.gu(3)
550+ width: height
551+ anchors.verticalCenter: parent.verticalCenter
552+ anchors.horizontalCenter: parent.horizontalCenter
553+ color: "white"
554+ name: "media-skip-forward"
555+ objectName: "forwardShape"
556+ opacity: 1
557+ }
558+ }
559+
560+ /* Shuffle button */
561+ MouseArea {
562+ id: nowPlayingShuffleButton
563+ anchors.left: nowPlayingNextButton.right
564+ anchors.leftMargin: units.gu(1)
565+ anchors.verticalCenter: nowPlayingPlayButton.verticalCenter
566+ height: units.gu(6)
567+ opacity: player.shuffle && !emptyPage.noMusic ? 1 : .4
568+ width: height
569+ onClicked: player.shuffle = !player.shuffle
570+
571+ Icon {
572+ id: shuffleIcon
573+ height: units.gu(3)
574+ width: height
575+ anchors.verticalCenter: parent.verticalCenter
576+ anchors.horizontalCenter: parent.horizontalCenter
577+ color: "white"
578+ name: "media-playlist-shuffle"
579+ objectName: "shuffleShape"
580+ opacity: player.shuffle && !emptyPage.noMusic ? 1 : .4
581+ }
582+ }
583+
584+ /* Object which provides the progress bar when in the queue */
585+ Rectangle {
586+ id: playerControlsProgressBar
587+ anchors {
588+ bottom: parent.bottom
589+ left: parent.left
590+ right: parent.right
591+ }
592+ color: styleMusic.common.black
593+ height: units.gu(0.25)
594+ visible: isListView
595+
596+ Rectangle {
597+ id: playerControlsProgressBarHint
598+ anchors {
599+ left: parent.left
600+ bottom: parent.bottom
601+ }
602+ color: UbuntuColors.blue
603+ height: parent.height
604+ width: 0
605+
606+ Connections {
607+ target: player
608+ onPositionChanged: {
609+ playerControlsProgressBarHint.width = (player.position / player.duration) * playerControlsProgressBar.width
610+ }
611+ onStopped: {
612+ playerControlsProgressBarHint.width = 0;
613+ }
614+ }
615+ }
616+ }
617+ }
618 }
619
620=== modified file 'Style.qml'
621--- Style.qml 2015-01-16 22:51:25 +0000
622+++ Style.qml 2015-01-18 00:06:21 +0000
623@@ -1,5 +1,5 @@
624 /*
625- * Copyright (C) 2013, 2014
626+ * Copyright (C) 2013, 2014, 2015
627 * Andrew Hayzen <ahayzen@gmail.com>
628 * Daniel Holm <d.holmen@gmail.com>
629 * Victor Thompson <victor.thompson@gmail.com>
630@@ -62,9 +62,9 @@
631 }
632
633 property QtObject mainView: QtObject{
634- property color backgroundColor: "#A55263";
635- property color footerColor: "#D75669";
636- property color headerColor: "#57365E";
637+ property color backgroundColor: "#1e1e23"
638+ property color footerColor: backgroundColor
639+ property color headerColor: backgroundColor
640 }
641
642 property QtObject nowPlaying: QtObject {
643
644=== modified file 'common/ListItemWithActions.qml'
645--- common/ListItemWithActions.qml 2015-01-09 18:28:14 +0000
646+++ common/ListItemWithActions.qml 2015-01-18 00:06:21 +0000
647@@ -1,5 +1,5 @@
648 /*
649- * Copyright (C) 2012-2014 Canonical, Ltd.
650+ * Copyright (C) 2012-2015 Canonical, Ltd.
651 *
652 * This program is free software; you can redistribute it and/or modify
653 * it under the terms of the GNU General Public License as published by
654@@ -30,7 +30,7 @@
655 property Action activeAction: null
656 property var activeItem: null
657 property bool triggerActionOnMouseRelease: false
658- property color color: "#1e1e23"
659+ property color color: styleMusic.mainView.backgroundColor
660 property color selectedColor: "#3d3d45" // "#E6E6E6" // CUSTOM
661 property bool selected: false
662 property bool selectionMode: false
663
664=== modified file 'music-app.qml'
665--- music-app.qml 2015-01-16 22:51:25 +0000
666+++ music-app.qml 2015-01-18 00:06:21 +0000
667@@ -38,8 +38,8 @@
668 id: mainView
669 useDeprecatedToolbar: false
670
671- backgroundColor: "#1e1e23"
672- headerColor: "#1e1e23"
673+ backgroundColor: styleMusic.mainView.backgroundColor
674+ headerColor: styleMusic.mainView.headerColor
675
676 // Startup settings
677 Settings {
678@@ -886,7 +886,8 @@
679
680 MusicToolbar {
681 id: musicToolbar
682- visible: mainPageStack.currentPage.title !== i18n.tr("Now playing")
683+ visible: mainPageStack.currentPage.title !== i18n.tr("Now playing") &&
684+ mainPageStack.currentPage.title !== i18n.tr("Queue")
685 objectName: "musicToolbarObject"
686 z: 200 // put on top of everything else
687 }

Subscribers

People subscribed via source and target branches