Merge lp:~ahayzen/music-app/remix-playlist-cardview into lp:music-app/remix
- remix-playlist-cardview
- Merge into remix
Status: | Merged |
---|---|
Approved by: | Victor Thompson |
Approved revision: | 672 |
Merged at revision: | 670 |
Proposed branch: | lp:~ahayzen/music-app/remix-playlist-cardview |
Merge into: | lp:music-app/remix |
Prerequisite: | lp:~ahayzen/music-app/remix-cover-grid |
Diff against target: |
668 lines (+229/-278) 8 files modified
MusicPlaylists.qml (+25/-143) common/CardView.qml (+1/-0) common/ColumnFlow.qml (+1/-0) common/ListItemActions/DeletePlaylist.qml (+0/-29) common/ListItemActions/EditPlaylist.qml (+0/-35) common/SongsPage.qml (+131/-0) po/com.ubuntu.music.pot (+70/-70) tests/autopilot/music_app/__init__.py (+1/-1) |
To merge this branch: | bzr merge lp:~ahayzen/music-app/remix-playlist-cardview |
Related bugs: | |
Related blueprints: |
Music Remix for RTM
(Essential)
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Victor Thompson | Approve | ||
Ubuntu Phone Apps Jenkins Bot | continuous-integration | Approve | |
Review via email:
|
Commit message
* Use CardView in MusicPlaylists.qml
* Use header actions for edit and delete of playlists
Description of the change
* Use CardView in MusicPlaylists.qml
* Use header actions for edit and delete of playlists
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
- 669. By Andrew Hayzen
-
* Merge of upstream
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
FAILED: Continuous integration, rev:669
http://
Executed test runs:
UNSTABLE: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 670. By Andrew Hayzen
-
* Merge of upstream
- 671. By Andrew Hayzen
-
* Fix for autopilot
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : | # |
PASSED: Continuous integration, rev:671
http://
Executed test runs:
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Victor Thompson (vthompson) wrote : | # |
Could you do the following:
1. Generate an updated POT file as some of the translations have gone away
2. Please change spellings of "dialogue" that have found their way into the code to "dialog". :)
- 672. By Andrew Hayzen
-
* Fix for spelling of dialog
* Rebuild pot
Preview Diff
1 | === modified file 'MusicPlaylists.qml' |
2 | --- MusicPlaylists.qml 2014-09-30 15:18:25 +0000 |
3 | +++ MusicPlaylists.qml 2014-10-14 00:08:10 +0000 |
4 | @@ -23,171 +23,53 @@ |
5 | import Ubuntu.Components.Popups 1.0 |
6 | import QtMultimedia 5.0 |
7 | import QtQuick.LocalStorage 2.0 |
8 | -import "settings.js" as Settings |
9 | -import "scrobble.js" as Scrobble |
10 | import "playlists.js" as Playlists |
11 | import "common" |
12 | -import "common/ListItemActions" |
13 | |
14 | // page for the playlists |
15 | MusicPage { |
16 | - id: listspage |
17 | + id: playlistsPage |
18 | objectName: "playlistsPage" |
19 | // TRANSLATORS: this is the name of the playlists page shown in the tab header. |
20 | // Remember to keep the translation short to fit the screen width |
21 | title: i18n.tr("Playlists") |
22 | |
23 | property string playlistTracks: "" |
24 | - property string oldPlaylistName: "" |
25 | property string inPlaylist: "" |
26 | |
27 | - tools: ToolbarItems { |
28 | - ToolbarButton { |
29 | - action: Action { |
30 | + head { |
31 | + actions: [ |
32 | + Action { |
33 | objectName: "newplaylistButton" |
34 | - text: i18n.tr("New playlist") |
35 | iconName: "add" |
36 | onTriggered: { |
37 | customdebug("New playlist.") |
38 | PopupUtils.open(newPlaylistDialog, mainView) |
39 | } |
40 | } |
41 | - } |
42 | - } |
43 | - |
44 | - // Edit name of playlist dialog |
45 | - Component { |
46 | - id: editPlaylistDialog |
47 | - Dialog { |
48 | - id: dialogEditPlaylist |
49 | - // TRANSLATORS: this is a title of a dialog with a prompt to rename a playlist |
50 | - title: i18n.tr("Change name") |
51 | - text: i18n.tr("Enter the new name of the playlist.") |
52 | - TextField { |
53 | - id: playlistName |
54 | - placeholderText: oldPlaylistName |
55 | - inputMethodHints: Qt.ImhNoPredictiveText |
56 | - } |
57 | - Label { |
58 | - id: editplaylistoutput |
59 | - color: "red" |
60 | - visible: false |
61 | - } |
62 | - |
63 | - Button { |
64 | - text: i18n.tr("Change") |
65 | - color: styleMusic.dialog.confirmButtonColor |
66 | - onClicked: { |
67 | - editplaylistoutput.visible = true |
68 | - |
69 | - if (playlistName.text.length > 0) { // make sure something is acually inputed |
70 | - console.debug("Debug: User changed name from "+oldPlaylistName+" to "+playlistName.text) |
71 | - |
72 | - if (Playlists.renamePlaylist(oldPlaylistName, playlistName.text) === true) { |
73 | - playlistModel.filterPlaylists() |
74 | - |
75 | - PopupUtils.close(dialogEditPlaylist) |
76 | - |
77 | - if (inPlaylist) { |
78 | - playlistInfoLabel.text = playlistName.text |
79 | - } |
80 | - } |
81 | - else { |
82 | - editplaylistoutput.text = i18n.tr("Playlist already exists") |
83 | - } |
84 | - } |
85 | - else { |
86 | - editplaylistoutput.text = i18n.tr("Please type in a name.") |
87 | - } |
88 | - } |
89 | - } |
90 | - Button { |
91 | - text: i18n.tr("Cancel") |
92 | - color: styleMusic.dialog.cancelButtonColor |
93 | - onClicked: PopupUtils.close(dialogEditPlaylist) |
94 | - } |
95 | - } |
96 | - } |
97 | - |
98 | - MusicSettings { |
99 | - id: musicSettings |
100 | - } |
101 | - |
102 | - ListView { |
103 | + ] |
104 | + } |
105 | + |
106 | + CardView { |
107 | id: playlistslist |
108 | - objectName: "playlistsListView" |
109 | - anchors { |
110 | - fill: parent |
111 | - } |
112 | model: playlistModel.model |
113 | - delegate: playlistDelegate |
114 | - onCountChanged: { |
115 | - customdebug("onCountChanged: " + playlistslist.count) |
116 | - } |
117 | - onCurrentIndexChanged: { |
118 | - customdebug("tracklist.currentIndex = " + playlistslist.currentIndex) |
119 | - } |
120 | - |
121 | - Component { |
122 | - id: playlistDelegate |
123 | - ListItemWithActions { |
124 | - id: playlist |
125 | - property string name: model.name |
126 | - property string count: model.count |
127 | - property var covers: Playlists.getPlaylistCovers(name) |
128 | - |
129 | - color: "transparent" |
130 | - height: styleMusic.common.itemHeight |
131 | - width: parent.width |
132 | - |
133 | - leftSideAction: DeletePlaylist { |
134 | - onTriggered: { |
135 | - Playlists.removePlaylist(model.name) |
136 | - |
137 | - playlistModel.filterPlaylists(); |
138 | - } |
139 | - } |
140 | - |
141 | - rightSideActions: [ |
142 | - EditPlaylist { |
143 | - } |
144 | - ] |
145 | - triggerActionOnMouseRelease: true |
146 | - |
147 | - onItemClicked: { |
148 | - albumTracksModel.filterPlaylistTracks(name) |
149 | - songsPage.isAlbum = false |
150 | - songsPage.line1 = i18n.tr("Playlist") |
151 | - songsPage.line2 = model.name |
152 | - songsPage.covers = playlist.covers |
153 | - songsPage.genre = undefined |
154 | - songsPage.title = i18n.tr("Playlist") |
155 | - |
156 | - mainPageStack.push(songsPage) |
157 | - } |
158 | - |
159 | - // TODO: If http://pad.lv/1354753 is fixed to expose whether the Shape should appear pressed, update this as well. |
160 | - onPressedChanged: musicRow.pressed = pressed |
161 | - |
162 | - MusicRow { |
163 | - id: musicRow |
164 | - covers: playlist.covers |
165 | - column: Column { |
166 | - spacing: units.gu(1) |
167 | - Label { |
168 | - id: playlistCount |
169 | - color: styleMusic.common.subtitle |
170 | - fontSize: "x-small" |
171 | - text: i18n.tr("%1 song", "%1 songs", playlist.count).arg(playlist.count) |
172 | - } |
173 | - Label { |
174 | - id: playlistName |
175 | - color: styleMusic.common.music |
176 | - fontSize: "medium" |
177 | - text: playlist.name |
178 | - } |
179 | - } |
180 | - } |
181 | + objectName: "playlistsCardView" |
182 | + delegate: Card { |
183 | + id: playlistCard |
184 | + coverSources: Playlists.getPlaylistCovers(name) |
185 | + primaryText: name |
186 | + secondaryText: i18n.tr("%1 song", "%1 songs", count).arg(count) |
187 | + |
188 | + onClicked: { |
189 | + albumTracksModel.filterPlaylistTracks(name) |
190 | + songsPage.isAlbum = false |
191 | + songsPage.line1 = i18n.tr("Playlist") |
192 | + songsPage.line2 = model.name |
193 | + songsPage.covers = coverSources |
194 | + songsPage.genre = undefined |
195 | + songsPage.title = i18n.tr("Playlist") |
196 | + |
197 | + mainPageStack.push(songsPage) |
198 | } |
199 | } |
200 | } |
201 | |
202 | === modified file 'common/CardView.qml' |
203 | --- common/CardView.qml 2014-10-13 13:05:59 +0000 |
204 | +++ common/CardView.qml 2014-10-14 00:08:10 +0000 |
205 | @@ -30,6 +30,7 @@ |
206 | contentHeight: flow.childrenRect.height |
207 | contentWidth: width |
208 | |
209 | + property alias count: flow.count |
210 | property alias delegate: flow.delegate |
211 | property alias model: flow.model |
212 | property real itemWidth: units.gu(15) |
213 | |
214 | === modified file 'common/ColumnFlow.qml' |
215 | --- common/ColumnFlow.qml 2014-10-06 19:08:54 +0000 |
216 | +++ common/ColumnFlow.qml 2014-10-14 00:08:10 +0000 |
217 | @@ -26,6 +26,7 @@ |
218 | id: columnFlow |
219 | property int columns: 1 |
220 | property bool repeaterCompleted: false |
221 | + property alias count: repeater.count |
222 | property alias model: repeater.model |
223 | property alias delegate: repeater.delegate |
224 | property int contentHeight: 0 |
225 | |
226 | === removed file 'common/ListItemActions/DeletePlaylist.qml' |
227 | --- common/ListItemActions/DeletePlaylist.qml 2014-09-20 10:50:45 +0000 |
228 | +++ common/ListItemActions/DeletePlaylist.qml 1970-01-01 00:00:00 +0000 |
229 | @@ -1,29 +0,0 @@ |
230 | -/* |
231 | - * Copyright (C) 2014 Andrew Hayzen <ahayzen@gmail.com> |
232 | - * Daniel Holm <d.holmen@gmail.com> |
233 | - * Victor Thompson <victor.thompson@gmail.com> |
234 | - * |
235 | - * This program is free software; you can redistribute it and/or modify |
236 | - * it under the terms of the GNU General Public License as published by |
237 | - * the Free Software Foundation; version 3. |
238 | - * |
239 | - * This program is distributed in the hope that it will be useful, |
240 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
241 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
242 | - * GNU General Public License for more details. |
243 | - * |
244 | - * You should have received a copy of the GNU General Public License |
245 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
246 | - */ |
247 | - |
248 | -import QtQuick 2.3 |
249 | -import Ubuntu.Components 1.1 |
250 | -import Ubuntu.Components.Popups 1.0 |
251 | - |
252 | -Action { |
253 | - iconName: "delete" |
254 | - // TRANSLATORS: this refers to deleting a playlist |
255 | - text: i18n.tr("Delete") |
256 | - |
257 | - property bool primed: false |
258 | -} |
259 | |
260 | === removed file 'common/ListItemActions/EditPlaylist.qml' |
261 | --- common/ListItemActions/EditPlaylist.qml 2014-09-20 10:50:45 +0000 |
262 | +++ common/ListItemActions/EditPlaylist.qml 1970-01-01 00:00:00 +0000 |
263 | @@ -1,35 +0,0 @@ |
264 | -/* |
265 | - * Copyright (C) 2014 Andrew Hayzen <ahayzen@gmail.com> |
266 | - * Daniel Holm <d.holmen@gmail.com> |
267 | - * Victor Thompson <victor.thompson@gmail.com> |
268 | - * |
269 | - * This program is free software; you can redistribute it and/or modify |
270 | - * it under the terms of the GNU General Public License as published by |
271 | - * the Free Software Foundation; version 3. |
272 | - * |
273 | - * This program is distributed in the hope that it will be useful, |
274 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
275 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
276 | - * GNU General Public License for more details. |
277 | - * |
278 | - * You should have received a copy of the GNU General Public License |
279 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
280 | - */ |
281 | - |
282 | -import QtQuick 2.3 |
283 | -import Ubuntu.Components 1.1 |
284 | -import Ubuntu.Components.Popups 1.0 |
285 | - |
286 | -Action { |
287 | - iconName: "edit" |
288 | - // TRANSLATORS: this refers to editing a playlist |
289 | - text: i18n.tr("Edit") |
290 | - |
291 | - property bool primed: false |
292 | - |
293 | - onTriggered: { |
294 | - customdebug("Edit playlist") |
295 | - oldPlaylistName = model.name |
296 | - PopupUtils.open(editPlaylistDialog, mainView) |
297 | - } |
298 | -} |
299 | |
300 | === modified file 'common/SongsPage.qml' |
301 | --- common/SongsPage.qml 2014-10-05 06:08:44 +0000 |
302 | +++ common/SongsPage.qml 2014-10-14 00:08:10 +0000 |
303 | @@ -20,6 +20,7 @@ |
304 | import QtQuick 2.3 |
305 | import Ubuntu.Components 1.1 |
306 | import Ubuntu.Components.ListItems 1.0 as ListItem |
307 | +import Ubuntu.Components.Popups 1.0 |
308 | import Ubuntu.MediaScanner 0.1 |
309 | import Ubuntu.Thumbnailer 0.1 |
310 | import QtQuick.LocalStorage 2.0 |
311 | @@ -43,6 +44,47 @@ |
312 | property alias album: songsModel.album |
313 | property alias genre: songsModel.genre |
314 | |
315 | + state: songStackPage.line1 === i18n.tr("Playlist") ? "playlist" : "album" |
316 | + states: [ |
317 | + PageHeadState { |
318 | + id: albumState |
319 | + name: "album" |
320 | + PropertyChanges { |
321 | + target: songStackPage.head |
322 | + backAction: albumState.backAction |
323 | + actions: albumState.actions |
324 | + } |
325 | + }, |
326 | + PageHeadState { |
327 | + id: playlistState |
328 | + |
329 | + name: "playlist" |
330 | + actions: [ |
331 | + Action { |
332 | + objectName: "editPlaylist" |
333 | + iconName: "edit" |
334 | + onTriggered: { |
335 | + var dialog = PopupUtils.open(editPlaylistDialog, mainView) |
336 | + dialog.oldPlaylistName = line2 |
337 | + } |
338 | + }, |
339 | + Action { |
340 | + objectName: "deletePlaylist" |
341 | + iconName: "delete" |
342 | + onTriggered: { |
343 | + var dialog = PopupUtils.open(removePlaylistDialog, mainView) |
344 | + dialog.oldPlaylistName = line2 |
345 | + } |
346 | + } |
347 | + ] |
348 | + PropertyChanges { |
349 | + target: songStackPage.head |
350 | + backAction: playlistState.backAction |
351 | + actions: playlistState.actions |
352 | + } |
353 | + } |
354 | + ] |
355 | + |
356 | SongsModel { |
357 | id: songsModel |
358 | store: musicStore |
359 | @@ -332,4 +374,93 @@ |
360 | } |
361 | } |
362 | } |
363 | + |
364 | + // Edit name of playlist dialog |
365 | + Component { |
366 | + id: editPlaylistDialog |
367 | + Dialog { |
368 | + id: dialogEditPlaylist |
369 | + // TRANSLATORS: this is a title of a dialog with a prompt to rename a playlist |
370 | + title: i18n.tr("Change name") |
371 | + text: i18n.tr("Enter the new name of the playlist.") |
372 | + |
373 | + property alias oldPlaylistName: playlistName.placeholderText |
374 | + |
375 | + TextField { |
376 | + id: playlistName |
377 | + inputMethodHints: Qt.ImhNoPredictiveText |
378 | + |
379 | + onPlaceholderTextChanged: text = placeholderText |
380 | + } |
381 | + Label { |
382 | + id: editplaylistoutput |
383 | + color: "red" |
384 | + visible: false |
385 | + } |
386 | + |
387 | + Button { |
388 | + text: i18n.tr("Change") |
389 | + color: styleMusic.dialog.confirmButtonColor |
390 | + onClicked: { |
391 | + editplaylistoutput.visible = true |
392 | + |
393 | + if (playlistName.text.length > 0) { // make sure something is acually inputed |
394 | + console.debug("Debug: User changed name from "+playlistName.placeholderText+" to "+playlistName.text) |
395 | + |
396 | + if (Playlists.renamePlaylist(playlistName.placeholderText, playlistName.text) === true) { |
397 | + playlistModel.filterPlaylists() |
398 | + |
399 | + PopupUtils.close(dialogEditPlaylist) |
400 | + |
401 | + line2 = playlistName.text |
402 | + } |
403 | + else { |
404 | + editplaylistoutput.text = i18n.tr("Playlist already exists") |
405 | + } |
406 | + } |
407 | + else { |
408 | + editplaylistoutput.text = i18n.tr("Please type in a name.") |
409 | + } |
410 | + } |
411 | + } |
412 | + Button { |
413 | + text: i18n.tr("Cancel") |
414 | + color: styleMusic.dialog.cancelButtonColor |
415 | + onClicked: PopupUtils.close(dialogEditPlaylist) |
416 | + } |
417 | + } |
418 | + } |
419 | + |
420 | + // Remove playlist dialog |
421 | + Component { |
422 | + id: removePlaylistDialog |
423 | + Dialog { |
424 | + id: dialogRemovePlaylist |
425 | + // TRANSLATORS: this is a title of a dialog with a prompt to delete a playlist |
426 | + title: i18n.tr("Are you sure?") |
427 | + text: i18n.tr("This will delete your playlist.") |
428 | + |
429 | + property string oldPlaylistName |
430 | + |
431 | + Button { |
432 | + text: i18n.tr("Remove") |
433 | + color: styleMusic.dialog.confirmButtonColor |
434 | + onClicked: { |
435 | + // removing playlist |
436 | + Playlists.removePlaylist(dialogRemovePlaylist.oldPlaylistName) |
437 | + |
438 | + playlistModel.filterPlaylists(); |
439 | + |
440 | + PopupUtils.close(dialogRemovePlaylist) |
441 | + |
442 | + musicToolbar.goBack() |
443 | + } |
444 | + } |
445 | + Button { |
446 | + text: i18n.tr("Cancel") |
447 | + color: styleMusic.dialog.cancelButtonColor |
448 | + onClicked: PopupUtils.close(dialogRemovePlaylist) |
449 | + } |
450 | + } |
451 | + } |
452 | } |
453 | |
454 | === modified file 'po/com.ubuntu.music.pot' |
455 | --- po/com.ubuntu.music.pot 2014-10-09 01:50:11 +0000 |
456 | +++ po/com.ubuntu.music.pot 2014-10-14 00:08:10 +0000 |
457 | @@ -8,7 +8,7 @@ |
458 | msgstr "" |
459 | "Project-Id-Version: music-app\n" |
460 | "Report-Msgid-Bugs-To: \n" |
461 | -"POT-Creation-Date: 2014-10-08 20:48-0500\n" |
462 | +"POT-Creation-Date: 2014-10-14 01:06+0100\n" |
463 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
464 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
465 | "Language-Team: LANGUAGE <LL@li.org>\n" |
466 | @@ -67,23 +67,7 @@ |
467 | msgid "Artists" |
468 | msgstr "" |
469 | |
470 | -#: ../MusicArtists.qml:108 ../common/AlbumsPage.qml:110 |
471 | -#, qt-format |
472 | -msgid "%1 album" |
473 | -msgid_plural "%1 albums" |
474 | -msgstr[0] "" |
475 | -msgstr[1] "" |
476 | - |
477 | -#: ../MusicArtists.qml:114 ../MusicPlaylists.qml:181 ../MusicStart.qml:371 |
478 | -#: ../MusicaddtoPlaylist.qml:105 ../common/AlbumsPage.qml:329 |
479 | -#: ../common/SongsPage.qml:142 ../common/SongsPage.qml:143 |
480 | -#, qt-format |
481 | -msgid "%1 song" |
482 | -msgid_plural "%1 songs" |
483 | -msgstr[0] "" |
484 | -msgstr[1] "" |
485 | - |
486 | -#: ../MusicArtists.qml:124 |
487 | +#: ../MusicArtists.qml:78 |
488 | msgid "Artist" |
489 | msgstr "" |
490 | |
491 | @@ -97,44 +81,24 @@ |
492 | |
493 | #. TRANSLATORS: this is the name of the playlists page shown in the tab header. |
494 | #. Remember to keep the translation short to fit the screen width |
495 | -#: ../MusicPlaylists.qml:38 |
496 | +#: ../MusicPlaylists.qml:35 |
497 | msgid "Playlists" |
498 | msgstr "" |
499 | |
500 | -#: ../MusicPlaylists.qml:48 ../MusicaddtoPlaylist.qml:48 |
501 | -msgid "New playlist" |
502 | -msgstr "" |
503 | - |
504 | -#. TRANSLATORS: this is a title of a dialog with a prompt to rename a playlist |
505 | -#: ../MusicPlaylists.qml:64 |
506 | -msgid "Change name" |
507 | -msgstr "" |
508 | - |
509 | -#: ../MusicPlaylists.qml:65 |
510 | -msgid "Enter the new name of the playlist." |
511 | -msgstr "" |
512 | - |
513 | -#: ../MusicPlaylists.qml:78 |
514 | -msgid "Change" |
515 | -msgstr "" |
516 | - |
517 | -#: ../MusicPlaylists.qml:96 ../music-app.qml:945 |
518 | -msgid "Playlist already exists" |
519 | -msgstr "" |
520 | - |
521 | -#: ../MusicPlaylists.qml:100 ../music-app.qml:950 |
522 | -msgid "Please type in a name." |
523 | -msgstr "" |
524 | - |
525 | -#: ../MusicPlaylists.qml:105 ../music-app.qml:486 ../music-app.qml:956 |
526 | -msgid "Cancel" |
527 | -msgstr "" |
528 | - |
529 | -#: ../MusicPlaylists.qml:160 ../MusicPlaylists.qml:164 ../MusicStart.qml:118 |
530 | -#: ../MusicStart.qml:200 ../common/SongsPage.qml:114 |
531 | -#: ../common/SongsPage.qml:175 ../common/SongsPage.qml:232 |
532 | -#: ../common/SongsPage.qml:254 ../common/SongsPage.qml:256 |
533 | -#: ../common/SongsPage.qml:274 |
534 | +#: ../MusicPlaylists.qml:61 ../MusicStart.qml:371 |
535 | +#: ../MusicaddtoPlaylist.qml:105 ../common/AlbumsPage.qml:329 |
536 | +#: ../common/SongsPage.qml:184 ../common/SongsPage.qml:185 |
537 | +#, qt-format |
538 | +msgid "%1 song" |
539 | +msgid_plural "%1 songs" |
540 | +msgstr[0] "" |
541 | +msgstr[1] "" |
542 | + |
543 | +#: ../MusicPlaylists.qml:66 ../MusicPlaylists.qml:70 ../MusicStart.qml:118 |
544 | +#: ../MusicStart.qml:200 ../common/SongsPage.qml:47 |
545 | +#: ../common/SongsPage.qml:156 ../common/SongsPage.qml:217 |
546 | +#: ../common/SongsPage.qml:274 ../common/SongsPage.qml:296 |
547 | +#: ../common/SongsPage.qml:298 ../common/SongsPage.qml:316 |
548 | msgid "Playlist" |
549 | msgstr "" |
550 | |
551 | @@ -246,9 +210,9 @@ |
552 | msgid "Genres" |
553 | msgstr "" |
554 | |
555 | -#: ../MusicStart.qml:316 ../MusicStart.qml:318 ../common/SongsPage.qml:115 |
556 | -#: ../common/SongsPage.qml:142 ../common/SongsPage.qml:171 |
557 | -#: ../common/SongsPage.qml:228 ../common/SongsPage.qml:270 |
558 | +#: ../MusicStart.qml:316 ../MusicStart.qml:318 ../common/SongsPage.qml:157 |
559 | +#: ../common/SongsPage.qml:184 ../common/SongsPage.qml:213 |
560 | +#: ../common/SongsPage.qml:270 ../common/SongsPage.qml:312 |
561 | msgid "Genre" |
562 | msgstr "" |
563 | |
564 | @@ -264,8 +228,19 @@ |
565 | msgid "Select playlist" |
566 | msgstr "" |
567 | |
568 | +#: ../MusicaddtoPlaylist.qml:48 |
569 | +msgid "New playlist" |
570 | +msgstr "" |
571 | + |
572 | +#: ../common/AlbumsPage.qml:110 |
573 | +#, qt-format |
574 | +msgid "%1 album" |
575 | +msgid_plural "%1 albums" |
576 | +msgstr[0] "" |
577 | +msgstr[1] "" |
578 | + |
579 | #: ../common/AlbumsPage.qml:165 ../common/AlbumsPage.qml:358 |
580 | -#: ../common/SongsPage.qml:222 |
581 | +#: ../common/SongsPage.qml:264 |
582 | msgid "Play all" |
583 | msgstr "" |
584 | |
585 | @@ -282,17 +257,7 @@ |
586 | msgid "Add to Queue" |
587 | msgstr "" |
588 | |
589 | -#. TRANSLATORS: this refers to deleting a playlist |
590 | -#: ../common/ListItemActions/DeletePlaylist.qml:26 |
591 | -msgid "Delete" |
592 | -msgstr "" |
593 | - |
594 | -#. TRANSLATORS: this refers to editing a playlist |
595 | -#: ../common/ListItemActions/EditPlaylist.qml:26 |
596 | -msgid "Edit" |
597 | -msgstr "" |
598 | - |
599 | -#: ../common/ListItemActions/Remove.qml:27 |
600 | +#: ../common/ListItemActions/Remove.qml:27 ../common/SongsPage.qml:446 |
601 | msgid "Remove" |
602 | msgstr "" |
603 | |
604 | @@ -300,14 +265,49 @@ |
605 | msgid "Loading..." |
606 | msgstr "" |
607 | |
608 | -#: ../common/SongsPage.qml:164 |
609 | +#: ../common/SongsPage.qml:206 |
610 | msgid "Shuffle" |
611 | msgstr "" |
612 | |
613 | -#: ../common/SongsPage.qml:201 |
614 | +#: ../common/SongsPage.qml:243 |
615 | msgid "Queue all" |
616 | msgstr "" |
617 | |
618 | +#. TRANSLATORS: this is a title of a dialog with a prompt to rename a playlist |
619 | +#: ../common/SongsPage.qml:384 |
620 | +msgid "Change name" |
621 | +msgstr "" |
622 | + |
623 | +#: ../common/SongsPage.qml:385 |
624 | +msgid "Enter the new name of the playlist." |
625 | +msgstr "" |
626 | + |
627 | +#: ../common/SongsPage.qml:402 |
628 | +msgid "Change" |
629 | +msgstr "" |
630 | + |
631 | +#: ../common/SongsPage.qml:418 ../music-app.qml:945 |
632 | +msgid "Playlist already exists" |
633 | +msgstr "" |
634 | + |
635 | +#: ../common/SongsPage.qml:422 ../music-app.qml:950 |
636 | +msgid "Please type in a name." |
637 | +msgstr "" |
638 | + |
639 | +#: ../common/SongsPage.qml:427 ../common/SongsPage.qml:460 |
640 | +#: ../music-app.qml:486 ../music-app.qml:956 |
641 | +msgid "Cancel" |
642 | +msgstr "" |
643 | + |
644 | +#. TRANSLATORS: this is a title of a dialog with a prompt to delete a playlist |
645 | +#: ../common/SongsPage.qml:440 |
646 | +msgid "Are you sure?" |
647 | +msgstr "" |
648 | + |
649 | +#: ../common/SongsPage.qml:441 |
650 | +msgid "This will delete your playlist." |
651 | +msgstr "" |
652 | + |
653 | #: ../common/SwipeDelete.qml:52 ../common/SwipeDelete.qml:88 |
654 | msgid "Clear" |
655 | msgstr "" |
656 | |
657 | === modified file 'tests/autopilot/music_app/__init__.py' |
658 | --- tests/autopilot/music_app/__init__.py 2014-10-11 03:47:15 +0000 |
659 | +++ tests/autopilot/music_app/__init__.py 2014-10-14 00:08:10 +0000 |
660 | @@ -183,7 +183,7 @@ |
661 | |
662 | def get_count(self): |
663 | return self.wait_select_single( |
664 | - "QQuickListView", objectName="playlistsListView").count |
665 | + "CardView", objectName="playlistsCardView").count |
666 | |
667 | |
668 | class MusicaddtoPlaylist(MusicPage): |
FAILED: Continuous integration, rev:668 91.189. 93.70:8080/ job/music- app-remix- ci/78/ 91.189. 93.70:8080/ job/generic- mediumtests- utopic- python3/ 901 91.189. 93.70:8080/ job/generic- mediumtests- utopic- python3/ 901/artifact/ work/output/ *zip*/output. zip 91.189. 93.70:8080/ job/music- app-remix- utopic- amd64-ci/ 78
http://
Executed test runs:
UNSTABLE: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: 91.189. 93.70:8080/ job/music- app-remix- ci/78/rebuild
http://