Merge lp:~ahayzen/music-app/remix-playlist-cardview into lp:music-app/remix

Proposed by Andrew Hayzen
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
Reviewer Review Type Date Requested Status
Victor Thompson Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Review via email: mp+238080@code.launchpad.net

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

To post a comment you must log in.
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
669. By Andrew Hayzen

* Merge of upstream

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
670. By Andrew Hayzen

* Merge of upstream

671. By Andrew Hayzen

* Fix for autopilot

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 :

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". :)

review: Needs Fixing
672. By Andrew Hayzen

* Fix for spelling of dialog
* Rebuild pot

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

LGTM!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
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):

Subscribers

People subscribed via source and target branches