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
=== modified file 'src/mymusic/music-scope.cpp'
--- src/mymusic/music-scope.cpp 2014-10-09 07:09:33 +0000
+++ src/mymusic/music-scope.cpp 2014-11-10 11:47:19 +0000
@@ -226,9 +226,10 @@
226 auto const genre = current_department.substr(index + 1);226 auto const genre = current_department.substr(index + 1);
227 query_albums_by_genre(reply, genre);227 query_albums_by_genre(reply, genre);
228 }228 }
229 else if (current_department == "albums_of_artist") // fake department that's not really displayed229 else if (current_department.find("albums_of_artist:") == 0) // fake department that's not really displayed
230 {230 {
231 const std::string artist = query().query_string();231 const int index = current_department.find(":");
232 const std::string artist = current_department.substr(index + 1);
232 query_albums_by_artist(reply, artist);233 query_albums_by_artist(reply, artist);
233 query_songs_by_artist(reply, artist);234 query_songs_by_artist(reply, artist);
234 }235 }
@@ -313,13 +314,13 @@
313 auto cat = reply->register_category("artists", show_title ? _("Artists") : "", SONGS_CATEGORY_ICON, renderer); //FIXME: icon314 auto cat = reply->register_category("artists", show_title ? _("Artists") : "", SONGS_CATEGORY_ICON, renderer); //FIXME: icon
314315
315 CannedQuery artist_search(query());316 CannedQuery artist_search(query());
316 artist_search.set_department_id("albums_of_artist"); // virtual department317 artist_search.set_query_string("");
317318
318 mediascanner::Filter filter;319 mediascanner::Filter filter;
319 filter.setLimit(MAX_RESULTS);320 filter.setLimit(MAX_RESULTS);
320 for (const auto &artist: scope.store->queryArtists(query().query_string(), filter))321 for (const auto &artist: scope.store->queryArtists(query().query_string(), filter))
321 {322 {
322 artist_search.set_query_string(artist);323 artist_search.set_department_id("albums_of_artist:" + artist); // virtual department
323324
324 CategorisedResult res(cat);325 CategorisedResult res(cat);
325 res.set_uri(artist_search.to_uri());326 res.set_uri(artist_search.to_uri());
@@ -501,7 +502,8 @@
501 }502 }
502503
503 CannedQuery artist_search(query());504 CannedQuery artist_search(query());
504 artist_search.set_department_id("albums_of_artist"); // virtual department505 artist_search.set_query_string("");
506 artist_search.set_department_id("albums_of_artist:" + artist); // virtual department
505507
506 CategorisedResult artist_info(biocat);508 CategorisedResult artist_info(biocat);
507 artist_info.set_uri(artist_search.to_uri());509 artist_info.set_uri(artist_search.to_uri());
508510
=== modified file 'tests/test-music-scope.cpp'
--- tests/test-music-scope.cpp 2014-10-07 01:40:40 +0000
+++ tests/test-music-scope.cpp 2014-11-10 11:47:19 +0000
@@ -181,7 +181,7 @@
181 .WillOnce(Return(albums_category));181 .WillOnce(Return(albums_category));
182182
183 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(183 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
184 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "The John Butler Trio", "albums_of_artist")),184 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:The John Butler Trio")),
185 ResultProp("title", "The John Butler Trio")))))185 ResultProp("title", "The John Butler Trio")))))
186 .WillOnce(Return(true));186 .WillOnce(Return(true));
187187
@@ -229,7 +229,7 @@
229 EXPECT_CALL(reply, register_category("albums", _, _, _))229 EXPECT_CALL(reply, register_category("albums", _, _, _))
230 .WillOnce(Return(albums_category));230 .WillOnce(Return(albums_category));
231 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(231 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
232 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "The John Butler Trio", "albums_of_artist")),232 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:The John Butler Trio")),
233 ResultProp("title", "The John Butler Trio")))))233 ResultProp("title", "The John Butler Trio")))))
234 .WillOnce(Return(true));234 .WillOnce(Return(true));
235 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(ResultProp("title", "One Way Road"))))235 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(ResultProp("title", "One Way Road"))))
@@ -264,13 +264,13 @@
264 .WillOnce(Return(albums_category));264 .WillOnce(Return(albums_category));
265265
266 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(266 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
267 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "Spiderbait", "albums_of_artist")),267 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:Spiderbait")),
268 ResultProp("title", "Spiderbait")268 ResultProp("title", "Spiderbait")
269 ))))269 ))))
270 .WillOnce(Return(true));270 .WillOnce(Return(true));
271271
272 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(272 EXPECT_CALL(reply, push(Matcher<CategorisedResult const&>(AllOf(
273 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "The John Butler Trio", "albums_of_artist")),273 ResultUriMatchesCannedQuery(CannedQuery("mediascanner-music", "", "albums_of_artist:The John Butler Trio")),
274 ResultProp("title", "The John Butler Trio"))274 ResultProp("title", "The John Butler Trio"))
275 )))275 )))
276 .WillOnce(Return(true));276 .WillOnce(Return(true));

Subscribers

People subscribed via source and target branches

to all changes: