Merge lp:~kamstrup/unity-lens-music/u1-tweaks into lp:~alexlauni/unity-lens-music/musicstore

Proposed by Mikkel Kamstrup Erlandsen
Status: Merged
Merge reported by: Alex Launi
Merged at revision: not available
Proposed branch: lp:~kamstrup/unity-lens-music/u1-tweaks
Merge into: lp:~alexlauni/unity-lens-music/musicstore
Diff against target: 156 lines (+26/-20)
3 files modified
src/musicstore-collection.vala (+10/-5)
src/musicstore-scope.vala (+6/-3)
src/simple-scope.vala (+10/-12)
To merge this branch: bzr merge lp:~kamstrup/unity-lens-music/u1-tweaks
Reviewer Review Type Date Requested Status
Neil J. Patel (community) Approve
Alex Launi Pending
Review via email: mp+75562@code.launchpad.net

Description of the change

Fixes to Alex' U1 music store branch

To post a comment you must log in.
Revision history for this message
Neil J. Patel (njpatel) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/musicstore-collection.vala'
--- src/musicstore-collection.vala 2011-09-14 18:33:52 +0000
+++ src/musicstore-collection.vala 2011-09-15 15:15:11 +0000
@@ -39,7 +39,6 @@
39 if (uri == null)39 if (uri == null)
40 return; 40 return;
41 41
42 debug ("searching %s", uri);
43 File file = File.new_for_uri (uri);42 File file = File.new_for_uri (uri);
4443
45// if (cancellable != null) {44// if (cancellable != null) {
@@ -53,6 +52,9 @@
5352
54 private async void read_musicstore_search_result_async (File file, Dee.Model model)53 private async void read_musicstore_search_result_async (File file, Dee.Model model)
55 {54 {
55 var timer = new Timer ();
56 debug ("Searching %s", file.get_uri ());
57
56 try {58 try {
57 var dis = new DataInputStream (file.read (cancellable));59 var dis = new DataInputStream (file.read (cancellable));
58 var parser = new Json.Parser ();60 var parser = new Json.Parser ();
@@ -85,16 +87,19 @@
85 }87 }
86 }88 }
87 cancellable = null;89 cancellable = null;
90 debug ("Retrieved '%s' in %fms", file.get_uri (), timer.elapsed()*1000);
8891
89 } catch (Error e) {92 } catch (Error e) {
90 stdout.printf (e.message);93 warning ("Error reading URL '%s': %s", file.get_uri (), e.message);
91 }94 }
92 }95 }
9396
94 private string build_search_uri (string query, List<FilterParser> filters)97 private string? build_search_uri (string query, List<FilterParser> filters)
95 {98 {
99 if (query.strip() == "")
100 return null;
101
96 MusicStoreFilterParser store_parser;102 MusicStoreFilterParser store_parser;
97
98 StringBuilder uri = new StringBuilder (MUSICSTORE_BASE_URI);103 StringBuilder uri = new StringBuilder (MUSICSTORE_BASE_URI);
99 uri.append ("search?q=");104 uri.append ("search?q=");
100 uri.append (Uri.escape_string (query, "", false));105 uri.append (Uri.escape_string (query, "", false));
@@ -115,4 +120,4 @@
115 return uri.str;120 return uri.str;
116 }121 }
117 }122 }
118}
119\ No newline at end of file123\ No newline at end of file
124}
120125
=== modified file 'src/musicstore-scope.vala'
--- src/musicstore-scope.vala 2011-09-14 18:33:52 +0000
+++ src/musicstore-scope.vala 2011-09-15 15:15:11 +0000
@@ -30,7 +30,7 @@
30 base ();30 base ();
3131
32 scope = new Unity.Scope ("/com/canonical/unity/scope/musicstore");32 scope = new Unity.Scope ("/com/canonical/unity/scope/musicstore");
33 scope.search_in_global = true;33 scope.search_in_global = false;
34 scope.activate_uri.connect (activate);34 scope.activate_uri.connect (activate);
3535
36 base.initialize ();36 base.initialize ();
@@ -59,10 +59,13 @@
59 public override void perform_search (LensSearch? search, Dee.Model results_model,59 public override void perform_search (LensSearch? search, Dee.Model results_model,
60 List<FilterParser> filters, int max_results = -1)60 List<FilterParser> filters, int max_results = -1)
61 {61 {
62 if (search_is_invalid (search))
63 return;
64
62 try {65 try {
63 collection.search (search, results_model, filters, max_results); 66 collection.search (search, results_model, filters, max_results);
64 } catch (IOError e) {67 } catch (IOError e) {
65 stdout.printf (e.message);68 warning ("Failed to search for '%s': %s", search.search_string, e.message);
66 }69 }
67 }70 }
6871
@@ -83,4 +86,4 @@
83 }86 }
84 }87 }
85 }88 }
86}
87\ No newline at end of file89\ No newline at end of file
90}
8891
=== modified file 'src/simple-scope.vala'
--- src/simple-scope.vala 2011-09-14 18:33:52 +0000
+++ src/simple-scope.vala 2011-09-15 15:15:11 +0000
@@ -85,9 +85,9 @@
85 /* based on the filters(?) get the default results to show when the music lens is85 /* based on the filters(?) get the default results to show when the music lens is
86 * just opened without filters, like when someone hits Super+M86 * just opened without filters, like when someone hits Super+M
87 */87 */
88 private async void update_without_search_async (LensSearch search)88 private async void update_without_search_async (LensSearch search, Dee.Model results_model)
89 {89 {
90 perform_search_async.begin (search, num_results_without_search);90 perform_search_async.begin (search, results_model, num_results_without_search);
91 }91 }
92 92
93 /**93 /**
@@ -104,7 +104,7 @@
104 return;104 return;
105 }105 }
106 106
107 perform_search_async.begin (search, num_results_global_search);107 perform_search_async.begin (search, scope.global_results_model, num_results_global_search);
108 }108 }
109 109
110 private async void update_search_async (LensSearch search)110 private async void update_search_async (LensSearch search)
@@ -112,20 +112,20 @@
112 // just pretend like there's no search112 // just pretend like there's no search
113 if (search_is_invalid (search))113 if (search_is_invalid (search))
114 {114 {
115 update_without_search_async.begin (search);115 update_without_search_async.begin (search, scope.results_model);
116 return;116 return;
117 }117 }
118 118
119 perform_search_async.begin (search, num_results_lens_search);119 perform_search_async.begin (search, scope.results_model, num_results_lens_search);
120 }120 }
121121
122 private async void perform_search_async (LensSearch search, int max_results)122 private async void perform_search_async (LensSearch search, Dee.Model results_model, int max_results)
123 {123 {
124 var results_model = scope.results_model;
125
126 /* Prevent concurrent searches and concurrent updates of our models,124 /* Prevent concurrent searches and concurrent updates of our models,
127 * by preventing any notify signals from propagating to us.125 * by preventing any notify signals from propagating to us.
128 * Important: Remeber to thaw the notifys again! */126 * Important: Remeber to thaw the notifys again! */
127 scope.freeze_notify ();
128
129 List<FilterParser> filters = new List<FilterParser> ();129 List<FilterParser> filters = new List<FilterParser> ();
130 Filter filter = scope.get_filter ("genre");130 Filter filter = scope.get_filter ("genre");
131 if (filter.filtering)131 if (filter.filtering)
@@ -134,8 +134,6 @@
134 filter = scope.get_filter ("decade");134 filter = scope.get_filter ("decade");
135 if (filter.filtering)135 if (filter.filtering)
136 filters.append (new DecadeFilterParser (filter as MultiRangeFilter));136 filters.append (new DecadeFilterParser (filter as MultiRangeFilter));
137
138 scope.freeze_notify ();
139 137
140 results_model.clear ();138 results_model.clear ();
141 perform_search (search, results_model, filters, max_results);139 perform_search (search, results_model, filters, max_results);
@@ -152,7 +150,7 @@
152 search.finished ();150 search.finished ();
153 }151 }
154152
155 private bool search_is_invalid (LensSearch? search)153 protected bool search_is_invalid (LensSearch? search)
156 {154 {
157 /* This boolean expression is unfolded as we seem to get155 /* This boolean expression is unfolded as we seem to get
158 * some null dereference if we join them in a big || expression */156 * some null dereference if we join them in a big || expression */

Subscribers

People subscribed via source and target branches