Merge lp:~stolowski/unity-scope-mediascanner/fix-albums-of-artist-vivid into lp:unity-scope-mediascanner

Proposed by Paweł Stołowski
Status: Merged
Approved by: Marcus Tomlinson
Approved revision: 202
Merged at revision: 208
Proposed branch: lp:~stolowski/unity-scope-mediascanner/fix-albums-of-artist-vivid
Merge into: lp:unity-scope-mediascanner
Diff against target: 80 lines (+11/-9)
2 files modified
src/mymusic/music-scope.cpp (+7/-5)
tests/test-music-scope.cpp (+4/-4)
To merge this branch: bzr merge lp:~stolowski/unity-scope-mediascanner/fix-albums-of-artist-vivid
Reviewer Review Type Date Requested Status
Marcus Tomlinson (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+241260@code.launchpad.net

Commit message

When searching albums of an artist via canned queries, pass artist name via a fake department id rather than search string to workaround shell plugin behavior that resets department under certain conditions if search string is not empty.

Description of the change

When searching albums of an artist via canned queries, pass artist name via a fake department id rather than search string to workaround shell plugin behavior that resets department under certain conditions if search string is not empty.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Marcus Tomlinson (marcustomlinson) wrote :

Looks fine

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/mymusic/music-scope.cpp'
2--- src/mymusic/music-scope.cpp 2014-10-09 07:09:33 +0000
3+++ src/mymusic/music-scope.cpp 2014-11-10 11:47:19 +0000
4@@ -226,9 +226,10 @@
5 auto const genre = current_department.substr(index + 1);
6 query_albums_by_genre(reply, genre);
7 }
8- else if (current_department == "albums_of_artist") // fake department that's not really displayed
9+ else if (current_department.find("albums_of_artist:") == 0) // fake department that's not really displayed
10 {
11- const std::string artist = query().query_string();
12+ const int index = current_department.find(":");
13+ const std::string artist = current_department.substr(index + 1);
14 query_albums_by_artist(reply, artist);
15 query_songs_by_artist(reply, artist);
16 }
17@@ -313,13 +314,13 @@
18 auto cat = reply->register_category("artists", show_title ? _("Artists") : "", SONGS_CATEGORY_ICON, renderer); //FIXME: icon
19
20 CannedQuery artist_search(query());
21- artist_search.set_department_id("albums_of_artist"); // virtual department
22+ artist_search.set_query_string("");
23
24 mediascanner::Filter filter;
25 filter.setLimit(MAX_RESULTS);
26 for (const auto &artist: scope.store->queryArtists(query().query_string(), filter))
27 {
28- artist_search.set_query_string(artist);
29+ artist_search.set_department_id("albums_of_artist:" + artist); // virtual department
30
31 CategorisedResult res(cat);
32 res.set_uri(artist_search.to_uri());
33@@ -501,7 +502,8 @@
34 }
35
36 CannedQuery artist_search(query());
37- artist_search.set_department_id("albums_of_artist"); // virtual department
38+ artist_search.set_query_string("");
39+ artist_search.set_department_id("albums_of_artist:" + artist); // virtual department
40
41 CategorisedResult artist_info(biocat);
42 artist_info.set_uri(artist_search.to_uri());
43
44=== modified file 'tests/test-music-scope.cpp'
45--- tests/test-music-scope.cpp 2014-10-07 01:40:40 +0000
46+++ tests/test-music-scope.cpp 2014-11-10 11:47:19 +0000
47@@ -181,7 +181,7 @@
48 .WillOnce(Return(albums_category));
49
50 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
51- ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "The John Butler Trio", "albums_of_artist")),
52+ ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:The John Butler Trio")),
53 ResultProp("title", "The John Butler Trio")))))
54 .WillOnce(Return(true));
55
56@@ -229,7 +229,7 @@
57 EXPECT_CALL(reply, register_category("albums", _, _, _))
58 .WillOnce(Return(albums_category));
59 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
60- ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "The John Butler Trio", "albums_of_artist")),
61+ ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:The John Butler Trio")),
62 ResultProp("title", "The John Butler Trio")))))
63 .WillOnce(Return(true));
64 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(ResultProp("title", "One Way Road"))))
65@@ -264,13 +264,13 @@
66 .WillOnce(Return(albums_category));
67
68 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
69- ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "Spiderbait", "albums_of_artist")),
70+ ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:Spiderbait")),
71 ResultProp("title", "Spiderbait")
72 ))))
73 .WillOnce(Return(true));
74
75 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
76- ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "The John Butler Trio", "albums_of_artist")),
77+ ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:The John Butler Trio")),
78 ResultProp("title", "The John Butler Trio"))
79 )))
80 .WillOnce(Return(true));

Subscribers

People subscribed via source and target branches

to all changes: