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
1=== modified file 'src/musicstore-collection.vala'
2--- src/musicstore-collection.vala 2011-09-14 18:33:52 +0000
3+++ src/musicstore-collection.vala 2011-09-15 15:15:11 +0000
4@@ -39,7 +39,6 @@
5 if (uri == null)
6 return;
7
8- debug ("searching %s", uri);
9 File file = File.new_for_uri (uri);
10
11 // if (cancellable != null) {
12@@ -53,6 +52,9 @@
13
14 private async void read_musicstore_search_result_async (File file, Dee.Model model)
15 {
16+ var timer = new Timer ();
17+ debug ("Searching %s", file.get_uri ());
18+
19 try {
20 var dis = new DataInputStream (file.read (cancellable));
21 var parser = new Json.Parser ();
22@@ -85,16 +87,19 @@
23 }
24 }
25 cancellable = null;
26+ debug ("Retrieved '%s' in %fms", file.get_uri (), timer.elapsed()*1000);
27
28 } catch (Error e) {
29- stdout.printf (e.message);
30+ warning ("Error reading URL '%s': %s", file.get_uri (), e.message);
31 }
32 }
33
34- private string build_search_uri (string query, List<FilterParser> filters)
35+ private string? build_search_uri (string query, List<FilterParser> filters)
36 {
37+ if (query.strip() == "")
38+ return null;
39+
40 MusicStoreFilterParser store_parser;
41-
42 StringBuilder uri = new StringBuilder (MUSICSTORE_BASE_URI);
43 uri.append ("search?q=");
44 uri.append (Uri.escape_string (query, "", false));
45@@ -115,4 +120,4 @@
46 return uri.str;
47 }
48 }
49-}
50\ No newline at end of file
51+}
52
53=== modified file 'src/musicstore-scope.vala'
54--- src/musicstore-scope.vala 2011-09-14 18:33:52 +0000
55+++ src/musicstore-scope.vala 2011-09-15 15:15:11 +0000
56@@ -30,7 +30,7 @@
57 base ();
58
59 scope = new Unity.Scope ("/com/canonical/unity/scope/musicstore");
60- scope.search_in_global = true;
61+ scope.search_in_global = false;
62 scope.activate_uri.connect (activate);
63
64 base.initialize ();
65@@ -59,10 +59,13 @@
66 public override void perform_search (LensSearch? search, Dee.Model results_model,
67 List<FilterParser> filters, int max_results = -1)
68 {
69+ if (search_is_invalid (search))
70+ return;
71+
72 try {
73 collection.search (search, results_model, filters, max_results);
74 } catch (IOError e) {
75- stdout.printf (e.message);
76+ warning ("Failed to search for '%s': %s", search.search_string, e.message);
77 }
78 }
79
80@@ -83,4 +86,4 @@
81 }
82 }
83 }
84-}
85\ No newline at end of file
86+}
87
88=== modified file 'src/simple-scope.vala'
89--- src/simple-scope.vala 2011-09-14 18:33:52 +0000
90+++ src/simple-scope.vala 2011-09-15 15:15:11 +0000
91@@ -85,9 +85,9 @@
92 /* based on the filters(?) get the default results to show when the music lens is
93 * just opened without filters, like when someone hits Super+M
94 */
95- private async void update_without_search_async (LensSearch search)
96+ private async void update_without_search_async (LensSearch search, Dee.Model results_model)
97 {
98- perform_search_async.begin (search, num_results_without_search);
99+ perform_search_async.begin (search, results_model, num_results_without_search);
100 }
101
102 /**
103@@ -104,7 +104,7 @@
104 return;
105 }
106
107- perform_search_async.begin (search, num_results_global_search);
108+ perform_search_async.begin (search, scope.global_results_model, num_results_global_search);
109 }
110
111 private async void update_search_async (LensSearch search)
112@@ -112,20 +112,20 @@
113 // just pretend like there's no search
114 if (search_is_invalid (search))
115 {
116- update_without_search_async.begin (search);
117+ update_without_search_async.begin (search, scope.results_model);
118 return;
119 }
120
121- perform_search_async.begin (search, num_results_lens_search);
122+ perform_search_async.begin (search, scope.results_model, num_results_lens_search);
123 }
124
125- private async void perform_search_async (LensSearch search, int max_results)
126- {
127- var results_model = scope.results_model;
128-
129+ private async void perform_search_async (LensSearch search, Dee.Model results_model, int max_results)
130+ {
131 /* Prevent concurrent searches and concurrent updates of our models,
132 * by preventing any notify signals from propagating to us.
133 * Important: Remeber to thaw the notifys again! */
134+ scope.freeze_notify ();
135+
136 List<FilterParser> filters = new List<FilterParser> ();
137 Filter filter = scope.get_filter ("genre");
138 if (filter.filtering)
139@@ -134,8 +134,6 @@
140 filter = scope.get_filter ("decade");
141 if (filter.filtering)
142 filters.append (new DecadeFilterParser (filter as MultiRangeFilter));
143-
144- scope.freeze_notify ();
145
146 results_model.clear ();
147 perform_search (search, results_model, filters, max_results);
148@@ -152,7 +150,7 @@
149 search.finished ();
150 }
151
152- private bool search_is_invalid (LensSearch? search)
153+ protected bool search_is_invalid (LensSearch? search)
154 {
155 /* This boolean expression is unfolded as we seem to get
156 * some null dereference if we join them in a big || expression */

Subscribers

People subscribed via source and target branches