Merge lp:~vthompson/music-app/remix-now-playing-main-view into lp:music-app/remix
- remix-now-playing-main-view
- Merge into remix
Status: | Merged |
---|---|
Approved by: | Victor Thompson |
Approved revision: | 666 |
Merged at revision: | 648 |
Proposed branch: | lp:~vthompson/music-app/remix-now-playing-main-view |
Merge into: | lp:music-app/remix |
Prerequisite: | lp:~vthompson/music-app/remix-songs-page |
Diff against target: |
414 lines (+315/-17) 4 files modified
MusicNowPlaying.qml (+306/-12) MusicToolbar.qml (+7/-4) common/BlurredBackground.qml (+1/-1) music-app.qml (+1/-0) |
To merge this branch: | bzr merge lp:~vthompson/music-app/remix-now-playing-main-view |
Related bugs: | |
Related blueprints: |
Music Remix for RTM
(Essential)
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu Phone Apps Jenkins Bot | continuous-integration | Approve | |
Andrew Hayzen | Approve | ||
Kill Animals (community) | Needs Fixing | ||
Review via email: mp+236998@code.launchpad.net |
This proposal supersedes a proposal from 2014-10-03.
Commit message
Initial Now Playing toggle
Description of the change
This branch is dependent upon "remix-songs-page" as it uses the same blurred background. This is a fairly minor change and adds the toggle to switch between the views. The List View still needs to be defined by design before the code can be further simplified. A branch exists [2] that places the controls inside the view. This should only be places inside the "fullview".
[1] https:/
[2] https:/
- 654. By Victor Thompson
-
Clean slate
- 655. By Victor Thompson
-
Initial Now Playing toggle
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
Kill Animals (kill-animals) wrote : | # |
Comment on Line 44
Also, we will need to set the header to not hide when isListView === true, unless we are going to set the flickable: property. I don't know how it happened when I was testing it, but I somehow managed to make the header hide, and was not able to make it reappear, thus stranding me on that page.
Victor Thompson (vthompson) wrote : | # |
As for the toggle when hitting back. Do you think hitting back needs to reset it back to "isListView = true"? My assumption on leaving it as last toggled was to default to the view the user last selected. However, I can see that other apps always default to the larger view. Maybe we should default to the "full view" as well once the controls are in the view. Then when the user hits back we will reset to "isListView = false".
I wasn't able to trace down where the header was getting hidden, but I get similar results occasionally. To get it to show I just tap the top of the app a few times. I agree we need to figure this out, perhaps it can wait until we make the "full view" the default as you suggest on line 44.
- 656. By Akiva Avraham <akiva@akiva-ThinkPad-X230>
-
* Add play controls to the full view of the Now Playing page
- 657. By Victor Thompson
-
Fit items into view
- 658. By Victor Thompson
-
Clean slate
- 659. By Victor Thompson
-
Initial Now Playing toggle
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
PASSED: Continuous integration, rev:657
http://
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 660. By Victor Thompson
-
Default to the listview view for now
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
PASSED: Continuous integration, rev:660
http://
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Andrew Hayzen (ahayzen) wrote : | # |
Some inline comments (~14) most of them about margins/icons, however upon reflection i'm starting to wonder if the design's height is larger than the N4 display? See if you can do some of them to get it closer to the designs.
Kill Animals (kill-animals) wrote : | # |
I will post a branch that fixes many of these things soon, so you can merge.
Victor Thompson (vthompson) wrote : | # |
See inline replies.
- 661. By Victor Thompson
-
Update per comments
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
PASSED: Continuous integration, rev:661
http://
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 662. By Victor Thompson
-
Merge of remix
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
PASSED: Continuous integration, rev:662
http://
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 663. By Victor Thompson
-
Small tweaks and a toolbar hack
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
FAILED: Continuous integration, rev:663
http://
Executed test runs:
UNSTABLE: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 664. By Victor Thompson
-
update
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
FAILED: Continuous integration, rev:664
http://
Executed test runs:
UNSTABLE: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 665. By Victor Thompson
-
fix update
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
PASSED: Continuous integration, rev:665
http://
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Victor Thompson (vthompson) wrote : | # |
I recommend we fix the coloring of the slider in a different review. I have a fix for it [1], but I want to make sure it's logical.
- 666. By Victor Thompson
-
Only jump to track in queue view to prevent header from hiding in full view
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
PASSED: Continuous integration, rev:666
http://
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Kill Animals (kill-animals) wrote : | # |
Victor; can you please make sure to merge my branch into this one? Perhaps you did not see, but I had it ready to merge, having solved all conflicts, until you did all this work today, which... I now have to go back and resolve a bunch of conflicts.
Because of this too, you may have also done a bunch of work that was already done by myself.
Kill Animals (kill-animals) wrote : | # |
> Victor; can you please make sure to merge my branch into this one? Perhaps you
> did not see, but I had it ready to merge, having solved all conflicts, until
> you did all this work today, which... I now have to go back and resolve a
> bunch of conflicts.
>
> Because of this too, you may have also done a bunch of work that was already
> done by myself.
Errm okay it actually wasnt that big of a deal; for some reason I thought you had done a bunch of work there, but it was actually just the old code from before. Sorry for sounding like a stickler.
Anyways nice work on all the other components. I merged from lp:~vthompson/music-app/remix-now-playing-main-view, and so my merge proposal into yours should be up to date.
Victor Thompson (vthompson) wrote : | # |
Akiva, sorry, when I tested your branch it did not appear correct, so I went ahead and implemented the necessary fixes. This is what it looks like on the device: http://
Andrew Hayzen (ahayzen) wrote : | # |
LGTM, I vote land this so we can progress with the other mps.
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) : | # |
Preview Diff
1 | === modified file 'MusicNowPlaying.qml' | |||
2 | --- MusicNowPlaying.qml 2014-10-04 01:41:50 +0000 | |||
3 | +++ MusicNowPlaying.qml 2014-10-04 17:24:39 +0000 | |||
4 | @@ -17,7 +17,6 @@ | |||
5 | 17 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 17 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
6 | 18 | */ | 18 | */ |
7 | 19 | 19 | ||
8 | 20 | |||
9 | 21 | import QtMultimedia 5.0 | 20 | import QtMultimedia 5.0 |
10 | 22 | import QtQuick 2.3 | 21 | import QtQuick 2.3 |
11 | 23 | import QtQuick.LocalStorage 2.0 | 22 | import QtQuick.LocalStorage 2.0 |
12 | @@ -32,16 +31,27 @@ | |||
13 | 32 | objectName: "nowPlayingPage" | 31 | objectName: "nowPlayingPage" |
14 | 33 | title: i18n.tr("Now Playing") | 32 | title: i18n.tr("Now Playing") |
15 | 34 | visible: false | 33 | visible: false |
16 | 34 | onVisibleChanged: { | ||
17 | 35 | if (!visible) { | ||
18 | 36 | // Reset the isListView property | ||
19 | 37 | // TODO: In the future this will default to false | ||
20 | 38 | isListView = true | ||
21 | 39 | } | ||
22 | 40 | } | ||
23 | 35 | 41 | ||
24 | 36 | property int ensureVisibleIndex: 0 // ensure first index is visible at startup | 42 | property int ensureVisibleIndex: 0 // ensure first index is visible at startup |
25 | 43 | property bool isListView: true | ||
26 | 37 | 44 | ||
34 | 38 | Rectangle { | 45 | head { |
35 | 39 | anchors.fill: parent | 46 | actions: [ |
36 | 40 | color: styleMusic.nowPlaying.backgroundColor | 47 | Action { |
37 | 41 | opacity: 0.75 // change later | 48 | objectName: "toggleView" |
38 | 42 | MouseArea { // Block events to lower layers | 49 | iconName: "media-playlist" |
39 | 43 | anchors.fill: parent | 50 | onTriggered: { |
40 | 44 | } | 51 | isListView = !isListView |
41 | 52 | } | ||
42 | 53 | } | ||
43 | 54 | ] | ||
44 | 45 | } | 55 | } |
45 | 46 | 56 | ||
46 | 47 | Connections { | 57 | Connections { |
47 | @@ -55,9 +65,10 @@ | |||
48 | 55 | 65 | ||
49 | 56 | customdebug("MusicQueue update currentIndex: " + player.source); | 66 | customdebug("MusicQueue update currentIndex: " + player.source); |
50 | 57 | 67 | ||
54 | 58 | // Always jump to current track | 68 | // TODO: Never jump to track? Or only jump to track in queue view? |
55 | 59 | nowPlaying.jumpToCurrent(musicToolbar.opened, nowPlaying, musicToolbar.currentTab) | 69 | if (isListView) { |
56 | 60 | 70 | nowPlaying.jumpToCurrent(musicToolbar.opened, nowPlaying, musicToolbar.currentTab) | |
57 | 71 | } | ||
58 | 61 | } | 72 | } |
59 | 62 | } | 73 | } |
60 | 63 | 74 | ||
61 | @@ -73,11 +84,294 @@ | |||
62 | 73 | 84 | ||
63 | 74 | function positionAt(index) { | 85 | function positionAt(index) { |
64 | 75 | queuelist.positionViewAtIndex(index, ListView.Beginning); | 86 | queuelist.positionViewAtIndex(index, ListView.Beginning); |
66 | 76 | queuelist.contentY -= header.height; | 87 | } |
67 | 88 | |||
68 | 89 | Rectangle { | ||
69 | 90 | id: fullview | ||
70 | 91 | visible: !isListView | ||
71 | 92 | anchors.fill: parent | ||
72 | 93 | color: "transparent" | ||
73 | 94 | clip: true | ||
74 | 95 | |||
75 | 96 | BlurredBackground { | ||
76 | 97 | id: blurredBackground | ||
77 | 98 | anchors.top: parent.top | ||
78 | 99 | anchors.topMargin: mainView.header.height | ||
79 | 100 | height: units.gu(27) | ||
80 | 101 | art: albumImage.source | ||
81 | 102 | |||
82 | 103 | Image { | ||
83 | 104 | id: albumImage | ||
84 | 105 | anchors.centerIn: parent | ||
85 | 106 | width: units.gu(18) | ||
86 | 107 | height: width | ||
87 | 108 | smooth: true | ||
88 | 109 | source: player.currentMetaArt === "" ? | ||
89 | 110 | decodeURIComponent("image://albumart/artist=" + | ||
90 | 111 | player.currentMetaArtist + | ||
91 | 112 | "&album=" + player.currentMetaAlbum) | ||
92 | 113 | : player.currentMetaArt | ||
93 | 114 | } | ||
94 | 115 | } | ||
95 | 116 | |||
96 | 117 | /* Full toolbar */ | ||
97 | 118 | Item { | ||
98 | 119 | id: musicToolbarFullContainer | ||
99 | 120 | anchors.top: blurredBackground.bottom | ||
100 | 121 | anchors.topMargin: units.gu(4) | ||
101 | 122 | width: blurredBackground.width | ||
102 | 123 | |||
103 | 124 | /* Column for labels in wideAspect */ | ||
104 | 125 | Column { | ||
105 | 126 | id: nowPlayingWideAspectLabels | ||
106 | 127 | spacing: units.gu(1) | ||
107 | 128 | anchors { | ||
108 | 129 | left: parent.left | ||
109 | 130 | leftMargin: units.gu(2) | ||
110 | 131 | right: parent.right | ||
111 | 132 | rightMargin: units.gu(2) | ||
112 | 133 | } | ||
113 | 134 | |||
114 | 135 | /* Title of track */ | ||
115 | 136 | Label { | ||
116 | 137 | id: nowPlayingWideAspectTitle | ||
117 | 138 | anchors { | ||
118 | 139 | left: parent.left | ||
119 | 140 | leftMargin: units.gu(1) | ||
120 | 141 | right: parent.right | ||
121 | 142 | rightMargin: units.gu(1) | ||
122 | 143 | } | ||
123 | 144 | color: styleMusic.playerControls.labelColor | ||
124 | 145 | elide: Text.ElideRight | ||
125 | 146 | fontSize: "x-large" | ||
126 | 147 | objectName: "playercontroltitle" | ||
127 | 148 | text: trackQueue.model.count === 0 ? "" : player.currentMetaTitle === "" ? player.currentMetaFile : player.currentMetaTitle | ||
128 | 149 | } | ||
129 | 150 | |||
130 | 151 | /* Artist of track */ | ||
131 | 152 | Label { | ||
132 | 153 | id: nowPlayingWideAspectArtist | ||
133 | 154 | anchors { | ||
134 | 155 | left: parent.left | ||
135 | 156 | leftMargin: units.gu(1) | ||
136 | 157 | right: parent.right | ||
137 | 158 | rightMargin: units.gu(1) | ||
138 | 159 | } | ||
139 | 160 | color: styleMusic.nowPlaying.labelSecondaryColor | ||
140 | 161 | elide: Text.ElideRight | ||
141 | 162 | fontSize: "small" | ||
142 | 163 | text: trackQueue.model.count === 0 ? "" : player.currentMetaArtist | ||
143 | 164 | } | ||
144 | 165 | } | ||
145 | 166 | |||
146 | 167 | /* Progress bar component */ | ||
147 | 168 | MouseArea { | ||
148 | 169 | id: musicToolbarFullProgressContainer | ||
149 | 170 | anchors.left: parent.left | ||
150 | 171 | anchors.leftMargin: units.gu(3) | ||
151 | 172 | anchors.right: parent.right | ||
152 | 173 | anchors.rightMargin: units.gu(3) | ||
153 | 174 | anchors.top: nowPlayingWideAspectLabels.bottom | ||
154 | 175 | anchors.topMargin: units.gu(3) | ||
155 | 176 | height: units.gu(3) | ||
156 | 177 | width: parent.width | ||
157 | 178 | |||
158 | 179 | /* Position label */ | ||
159 | 180 | Label { | ||
160 | 181 | id: musicToolbarFullPositionLabel | ||
161 | 182 | anchors.top: progressSliderMusic.bottom | ||
162 | 183 | anchors.topMargin: units.gu(-2) | ||
163 | 184 | anchors.left: parent.left | ||
164 | 185 | color: styleMusic.nowPlaying.labelSecondaryColor | ||
165 | 186 | fontSize: "small" | ||
166 | 187 | height: parent.height | ||
167 | 188 | horizontalAlignment: Text.AlignHCenter | ||
168 | 189 | text: durationToString(player.position) | ||
169 | 190 | verticalAlignment: Text.AlignVCenter | ||
170 | 191 | width: units.gu(3) | ||
171 | 192 | } | ||
172 | 193 | |||
173 | 194 | Slider { | ||
174 | 195 | id: progressSliderMusic | ||
175 | 196 | anchors.left: parent.left | ||
176 | 197 | anchors.right: parent.right | ||
177 | 198 | function formatValue(v) { return durationToString(v) } | ||
178 | 199 | |||
179 | 200 | property bool seeking: false | ||
180 | 201 | |||
181 | 202 | onSeekingChanged: { | ||
182 | 203 | if (seeking === false) { | ||
183 | 204 | musicToolbarFullPositionLabel.text = durationToString(player.position) | ||
184 | 205 | } | ||
185 | 206 | } | ||
186 | 207 | |||
187 | 208 | onPressedChanged: { | ||
188 | 209 | seeking = pressed | ||
189 | 210 | if (!pressed) { | ||
190 | 211 | player.seek(value) | ||
191 | 212 | } | ||
192 | 213 | } | ||
193 | 214 | |||
194 | 215 | Connections { | ||
195 | 216 | target: player | ||
196 | 217 | onDurationChanged: { | ||
197 | 218 | musicToolbarFullDurationLabel.text = durationToString(player.duration) | ||
198 | 219 | progressSliderMusic.maximumValue = player.duration | ||
199 | 220 | } | ||
200 | 221 | onPositionChanged: { | ||
201 | 222 | if (progressSliderMusic.seeking === false) { | ||
202 | 223 | progressSliderMusic.value = player.position | ||
203 | 224 | musicToolbarFullPositionLabel.text = durationToString(player.position) | ||
204 | 225 | musicToolbarFullDurationLabel.text = durationToString(player.duration) | ||
205 | 226 | } | ||
206 | 227 | } | ||
207 | 228 | onStopped: { | ||
208 | 229 | musicToolbarFullPositionLabel.text = durationToString(0); | ||
209 | 230 | musicToolbarFullDurationLabel.text = durationToString(0); | ||
210 | 231 | } | ||
211 | 232 | } | ||
212 | 233 | } | ||
213 | 234 | |||
214 | 235 | /* Duration label */ | ||
215 | 236 | Label { | ||
216 | 237 | id: musicToolbarFullDurationLabel | ||
217 | 238 | anchors.top: progressSliderMusic.bottom | ||
218 | 239 | anchors.topMargin: units.gu(-2) | ||
219 | 240 | anchors.right: parent.right | ||
220 | 241 | color: styleMusic.nowPlaying.labelSecondaryColor | ||
221 | 242 | fontSize: "small" | ||
222 | 243 | height: parent.height | ||
223 | 244 | horizontalAlignment: Text.AlignHCenter | ||
224 | 245 | text: durationToString(player.duration) | ||
225 | 246 | verticalAlignment: Text.AlignVCenter | ||
226 | 247 | width: units.gu(3) | ||
227 | 248 | } | ||
228 | 249 | } | ||
229 | 250 | |||
230 | 251 | /* Repeat button */ | ||
231 | 252 | MouseArea { | ||
232 | 253 | id: nowPlayingRepeatButton | ||
233 | 254 | objectName: "repeatShape" | ||
234 | 255 | anchors.right: nowPlayingPreviousButton.left | ||
235 | 256 | anchors.rightMargin: units.gu(1) | ||
236 | 257 | anchors.verticalCenter: nowPlayingPlayButton.verticalCenter | ||
237 | 258 | height: units.gu(6) | ||
238 | 259 | opacity: player.repeat && !emptyPage.noMusic ? 1 : .4 | ||
239 | 260 | width: height | ||
240 | 261 | onClicked: player.repeat = !player.repeat | ||
241 | 262 | |||
242 | 263 | Icon { | ||
243 | 264 | id: repeatIcon | ||
244 | 265 | height: units.gu(3) | ||
245 | 266 | width: height | ||
246 | 267 | anchors.verticalCenter: parent.verticalCenter | ||
247 | 268 | anchors.horizontalCenter: parent.horizontalCenter | ||
248 | 269 | color: "white" | ||
249 | 270 | name: "media-playlist-repeat" | ||
250 | 271 | opacity: player.repeat && !emptyPage.noMusic ? 1 : .4 | ||
251 | 272 | } | ||
252 | 273 | } | ||
253 | 274 | |||
254 | 275 | /* Previous button */ | ||
255 | 276 | MouseArea { | ||
256 | 277 | id: nowPlayingPreviousButton | ||
257 | 278 | anchors.right: nowPlayingPlayButton.left | ||
258 | 279 | anchors.rightMargin: units.gu(1) | ||
259 | 280 | anchors.verticalCenter: nowPlayingPlayButton.verticalCenter | ||
260 | 281 | height: units.gu(6) | ||
261 | 282 | objectName: "previousShape" | ||
262 | 283 | opacity: trackQueue.model.count === 0 ? .4 : 1 | ||
263 | 284 | width: height | ||
264 | 285 | onClicked: player.previousSong() | ||
265 | 286 | |||
266 | 287 | Icon { | ||
267 | 288 | id: nowPlayingPreviousIndicator | ||
268 | 289 | height: units.gu(3) | ||
269 | 290 | width: height | ||
270 | 291 | anchors.verticalCenter: parent.verticalCenter | ||
271 | 292 | anchors.horizontalCenter: parent.horizontalCenter | ||
272 | 293 | color: "white" | ||
273 | 294 | name: "media-skip-backward" | ||
274 | 295 | opacity: 1 | ||
275 | 296 | } | ||
276 | 297 | } | ||
277 | 298 | |||
278 | 299 | /* Play/Pause button */ | ||
279 | 300 | MouseArea { | ||
280 | 301 | id: nowPlayingPlayButton | ||
281 | 302 | anchors.horizontalCenter: parent.horizontalCenter | ||
282 | 303 | anchors.top: musicToolbarFullProgressContainer.bottom | ||
283 | 304 | anchors.topMargin: units.gu(2) | ||
284 | 305 | height: units.gu(12) | ||
285 | 306 | objectName: "playShape" | ||
286 | 307 | width: height | ||
287 | 308 | onClicked: player.toggle() | ||
288 | 309 | |||
289 | 310 | Icon { | ||
290 | 311 | id: nowPlayingPlayIndicator | ||
291 | 312 | height: units.gu(6) | ||
292 | 313 | width: height | ||
293 | 314 | anchors.verticalCenter: parent.verticalCenter | ||
294 | 315 | anchors.horizontalCenter: parent.horizontalCenter | ||
295 | 316 | opacity: emptyPage.noMusic ? .4 : 1 | ||
296 | 317 | color: "white" | ||
297 | 318 | name: player.playbackState === MediaPlayer.PlayingState ? "media-playback-pause" : "media-playback-start" | ||
298 | 319 | } | ||
299 | 320 | } | ||
300 | 321 | |||
301 | 322 | /* Next button */ | ||
302 | 323 | MouseArea { | ||
303 | 324 | id: nowPlayingNextButton | ||
304 | 325 | anchors.left: nowPlayingPlayButton.right | ||
305 | 326 | anchors.leftMargin: units.gu(1) | ||
306 | 327 | anchors.verticalCenter: nowPlayingPlayButton.verticalCenter | ||
307 | 328 | height: units.gu(6) | ||
308 | 329 | objectName: "forwardShape" | ||
309 | 330 | opacity: trackQueue.model.count === 0 ? .4 : 1 | ||
310 | 331 | width: height | ||
311 | 332 | onClicked: player.nextSong() | ||
312 | 333 | |||
313 | 334 | Icon { | ||
314 | 335 | id: nowPlayingNextIndicator | ||
315 | 336 | height: units.gu(3) | ||
316 | 337 | width: height | ||
317 | 338 | anchors.verticalCenter: parent.verticalCenter | ||
318 | 339 | anchors.horizontalCenter: parent.horizontalCenter | ||
319 | 340 | color: "white" | ||
320 | 341 | name: "media-skip-forward" | ||
321 | 342 | opacity: 1 | ||
322 | 343 | } | ||
323 | 344 | } | ||
324 | 345 | |||
325 | 346 | /* Shuffle button */ | ||
326 | 347 | MouseArea { | ||
327 | 348 | id: nowPlayingShuffleButton | ||
328 | 349 | objectName: "shuffleShape" | ||
329 | 350 | anchors.left: nowPlayingNextButton.right | ||
330 | 351 | anchors.leftMargin: units.gu(1) | ||
331 | 352 | anchors.verticalCenter: nowPlayingPlayButton.verticalCenter | ||
332 | 353 | height: units.gu(6) | ||
333 | 354 | opacity: player.shuffle && !emptyPage.noMusic ? 1 : .4 | ||
334 | 355 | width: height | ||
335 | 356 | onClicked: player.shuffle = !player.shuffle | ||
336 | 357 | |||
337 | 358 | Icon { | ||
338 | 359 | id: shuffleIcon | ||
339 | 360 | height: units.gu(3) | ||
340 | 361 | width: height | ||
341 | 362 | anchors.verticalCenter: parent.verticalCenter | ||
342 | 363 | anchors.horizontalCenter: parent.horizontalCenter | ||
343 | 364 | color: "white" | ||
344 | 365 | name: "media-playlist-shuffle" | ||
345 | 366 | opacity: player.shuffle && !emptyPage.noMusic ? 1 : .4 | ||
346 | 367 | } | ||
347 | 368 | } | ||
348 | 369 | } | ||
349 | 77 | } | 370 | } |
350 | 78 | 371 | ||
351 | 79 | ListView { | 372 | ListView { |
352 | 80 | id: queuelist | 373 | id: queuelist |
353 | 374 | visible: isListView | ||
354 | 81 | objectName: "nowPlayingQueueList" | 375 | objectName: "nowPlayingQueueList" |
355 | 82 | anchors { | 376 | anchors { |
356 | 83 | fill: parent | 377 | fill: parent |
357 | 84 | 378 | ||
358 | === modified file 'MusicToolbar.qml' | |||
359 | --- MusicToolbar.qml 2014-10-01 20:51:17 +0000 | |||
360 | +++ MusicToolbar.qml 2014-10-04 17:24:39 +0000 | |||
361 | @@ -113,13 +113,16 @@ | |||
362 | 113 | right: parent.right | 113 | right: parent.right |
363 | 114 | bottom: parent.bottom | 114 | bottom: parent.bottom |
364 | 115 | } | 115 | } |
366 | 116 | height: currentMode === "full" ? fullHeight : expandedHeight | 116 | // TODO: this will be removed when the toolbar is redone |
367 | 117 | height: currentMode === "hidden" ? 0 : (currentMode === "full" ? fullHeight : expandedHeight) | ||
368 | 117 | locked: true | 118 | locked: true |
369 | 118 | opened: true | 119 | opened: true |
370 | 119 | 120 | ||
371 | 121 | // TODO: this will be removed when the toolbar is redone | ||
372 | 120 | // The current mode of the controls | 122 | // The current mode of the controls |
375 | 121 | property string currentMode: wideAspect || (currentPage === nowPlaying) | 123 | property string currentMode: !nowPlaying.isListView && currentPage === nowPlaying |
376 | 122 | ? "full" : "expanded" | 124 | ? "hidden" : (wideAspect || currentPage === nowPlaying |
377 | 125 | ? "full" : "expanded") | ||
378 | 123 | 126 | ||
379 | 124 | // Properties for the different heights | 127 | // Properties for the different heights |
380 | 125 | property int expandedHeight: units.gu(7.25) | 128 | property int expandedHeight: units.gu(7.25) |
381 | @@ -721,7 +724,7 @@ | |||
382 | 721 | height: units.gu(2.5) | 724 | height: units.gu(2.5) |
383 | 722 | name: player.playbackState === MediaPlayer.PlayingState ? | 725 | name: player.playbackState === MediaPlayer.PlayingState ? |
384 | 723 | "media-playback-pause" : "media-playback-start" | 726 | "media-playback-pause" : "media-playback-start" |
386 | 724 | objectName: "smallPlayShape" | 727 | objectName: "disabledSmallPlayShape" |
387 | 725 | width: height | 728 | width: height |
388 | 726 | } | 729 | } |
389 | 727 | 730 | ||
390 | 728 | 731 | ||
391 | === modified file 'common/BlurredBackground.qml' | |||
392 | --- common/BlurredBackground.qml 2014-10-03 01:13:43 +0000 | |||
393 | +++ common/BlurredBackground.qml 2014-10-04 17:24:39 +0000 | |||
394 | @@ -23,7 +23,7 @@ | |||
395 | 23 | 23 | ||
396 | 24 | // Blurred background | 24 | // Blurred background |
397 | 25 | Rectangle { | 25 | Rectangle { |
399 | 26 | anchors.fill: parent | 26 | width: parent.width |
400 | 27 | property string art // : player.currentMetaFile === "" ? Qt.resolvedUrl("../images/music-app-cover@30.png") : player.currentMetaArt | 27 | property string art // : player.currentMetaFile === "" ? Qt.resolvedUrl("../images/music-app-cover@30.png") : player.currentMetaArt |
401 | 28 | 28 | ||
402 | 29 | // dark layer | 29 | // dark layer |
403 | 30 | 30 | ||
404 | === modified file 'music-app.qml' | |||
405 | --- music-app.qml 2014-10-04 01:41:50 +0000 | |||
406 | +++ music-app.qml 2014-10-04 17:24:39 +0000 | |||
407 | @@ -962,6 +962,7 @@ | |||
408 | 962 | 962 | ||
409 | 963 | MusicToolbar { | 963 | MusicToolbar { |
410 | 964 | id: musicToolbar | 964 | id: musicToolbar |
411 | 965 | visible: nowPlaying.isListView || !nowPlaying.visible | ||
412 | 965 | objectName: "musicToolbarObject" | 966 | objectName: "musicToolbarObject" |
413 | 966 | z: 200 // put on top of everything else | 967 | z: 200 // put on top of everything else |
414 | 967 | } | 968 | } |
FAILED: Continuous integration, rev:655 /code.launchpad .net/~vthompson /music- app/remix- now-playing- main-view/ +merge/ 236998/ +edit-commit- message
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
http:// 91.189. 93.70:8080/ job/music- app-remix- ci/14/ 91.189. 93.70:8080/ job/generic- mediumtests- utopic- python3/ 673 91.189. 93.70:8080/ job/generic- mediumtests- utopic- python3/ 673/artifact/ work/output/ *zip*/output. zip 91.189. 93.70:8080/ job/music- app-remix- utopic- amd64-ci/ 14
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: 91.189. 93.70:8080/ job/music- app-remix- ci/14/rebuild
http://