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