Merge lp:~ken-vandine/gwibber/gtk3-pybits into lp:~dobey/gwibber/gtk3-pybits
- gtk3-pybits
- Merge into gtk3-pybits
Proposed by
Ken VanDine
Status: | Merged |
---|---|
Merged at revision: | 1252 |
Proposed branch: | lp:~ken-vandine/gwibber/gtk3-pybits |
Merge into: | lp:~dobey/gwibber/gtk3-pybits |
Diff against target: |
384 lines (+99/-53) 6 files modified
gwibber/accounts.py (+2/-3) gwibber/microblog/plugins/facebook/gtk/facebook/__init__.py (+37/-11) gwibber/microblog/plugins/foursquare/gtk/foursquare/__init__.py (+16/-11) gwibber/microblog/plugins/identica/gtk/identica/__init__.py (+9/-7) gwibber/microblog/plugins/statusnet/gtk/statusnet/__init__.py (+8/-7) gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py (+27/-14) |
To merge this branch: | bzr merge lp:~ken-vandine/gwibber/gtk3-pybits |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
dobey | Pending | ||
Review via email: mp+93043@code.launchpad.net |
Commit message
Description of the change
accounts: destroy the scrollview, better handling for failures, and ensure an account gets selected after save, cancel and delete
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'gwibber/accounts.py' |
2 | --- gwibber/accounts.py 2012-02-14 15:06:47 +0000 |
3 | +++ gwibber/accounts.py 2012-02-14 18:07:39 +0000 |
4 | @@ -78,7 +78,6 @@ |
5 | |
6 | self.setup_account_tree() |
7 | self.populate_account_tree() |
8 | - self.select_account() |
9 | |
10 | def setup_account_tree(self): |
11 | # Protocol title, Icon, Protocol Properties |
12 | @@ -133,7 +132,7 @@ |
13 | for i in self.account_store: |
14 | if i[2]["id"] == self.selected_account: |
15 | self.account_tree.set_cursor(i.path, column, False) |
16 | - #self.selected_account = None |
17 | + self.selected_account = None |
18 | |
19 | |
20 | def get_icon(self, name): |
21 | @@ -165,6 +164,7 @@ |
22 | self.account_store.append(None, [name, icon, account, color]) |
23 | except: |
24 | pass |
25 | + self.select_account() |
26 | |
27 | def verify_account(self, account): |
28 | for field in self.services[account["service"]]["config"]: |
29 | @@ -201,7 +201,6 @@ |
30 | pass |
31 | self.gwibber.accounts.Delete(self.account["id"]) |
32 | self.populate_account_tree() |
33 | - self.select_account() |
34 | |
35 | def on_edit_account_save(self, widget=None): |
36 | service = self.services[self.account["service"]] |
37 | |
38 | === modified file 'gwibber/microblog/plugins/facebook/gtk/facebook/__init__.py' |
39 | --- gwibber/microblog/plugins/facebook/gtk/facebook/__init__.py 2012-02-14 03:08:11 +0000 |
40 | +++ gwibber/microblog/plugins/facebook/gtk/facebook/__init__.py 2012-02-14 18:07:39 +0000 |
41 | @@ -21,7 +21,7 @@ |
42 | import urllib |
43 | import string |
44 | |
45 | -from gi.repository import Gdk, Gtk, WebKit |
46 | +from gi.repository import Gdk, Gtk, WebKit, Pango |
47 | from gi.repository.Gtk import Builder |
48 | from gwibber.microblog.util import resources |
49 | from gwibber.microblog.util.const import * |
50 | @@ -85,12 +85,16 @@ |
51 | if self.dialog.ui: |
52 | self.dialog.ui.get_object("vbox_create").hide() |
53 | |
54 | + def console_message_cb (self, *args): |
55 | + return True |
56 | |
57 | def on_facebook_auth_clicked(self, widget, data=None): |
58 | self.winsize = self.window.get_size() |
59 | |
60 | web = WebKit.WebView() |
61 | web.get_settings().set_property("enable-plugins", False) |
62 | + web.get_settings().set_property("enable-developer-extras", False) |
63 | + web.connect("console-message", self.console_message_cb) |
64 | web.load_html_string(_("<p>Please wait...</p>"), "file:///") |
65 | |
66 | url = urllib.urlencode({ |
67 | @@ -115,17 +119,30 @@ |
68 | |
69 | def on_facebook_auth_title_change(self, web=None, title=None, data=None): |
70 | saved = False |
71 | + if hasattr(self.dialog, "infobar_content_area"): |
72 | + for child in self.dialog.infobar_content_area.get_children(): child.destroy() |
73 | + self.dialog.infobar_content_area = self.dialog.infobar.get_content_area() |
74 | + self.dialog.infobar_content_area.show() |
75 | + |
76 | url = web.get_main_frame().get_uri() |
77 | if title.get_title() == "Success": |
78 | - url = web.get_main_frame().get_uri() |
79 | try: |
80 | self.account["access_token"] = str(urlparse.parse_qs(url.split("#", 1)[1])["access_token"][0]) |
81 | except: |
82 | - web.hide() |
83 | + self.scroll.destroy() |
84 | self.ui.get_object("vbox1").show() |
85 | self.ui.get_object("vbox_advanced").show() |
86 | + self.window.resize(*self.winsize) |
87 | + self.dialog.select_account () |
88 | return |
89 | |
90 | + message_label = Gtk.Label (_("Verifying")) |
91 | + message_label.set_use_markup(True) |
92 | + message_label.set_ellipsize(Pango.EllipsizeMode.END) |
93 | + self.dialog.infobar_content_area.add(message_label) |
94 | + self.dialog.infobar.show_all() |
95 | + self.scroll.destroy() |
96 | + |
97 | data = json.loads(urllib.urlopen("https://graph.facebook.com/me?access_token=" + self.account["access_token"]).read()) |
98 | if isinstance(data, dict): |
99 | if data.has_key("id") and data.has_key("name"): |
100 | @@ -145,6 +162,10 @@ |
101 | else: |
102 | print "Failed" |
103 | |
104 | + if saved: |
105 | + message_label.set_text(_("Successful")) |
106 | + self.dialog.infobar.set_message_type(Gtk.MessageType.INFO) |
107 | + |
108 | self.ui.get_object("hbox_facebook_auth").hide() |
109 | self.ui.get_object("fb_auth_done_label").set_label(_("%s has been authorized by Facebook") % str(self.account["username"])) |
110 | self.ui.get_object("hbox_facebook_auth_done").show() |
111 | @@ -153,17 +174,22 @@ |
112 | elif self.dialog.ui and not saved: |
113 | self.dialog.ui.get_object("vbox_create").show() |
114 | |
115 | - self.scroll.hide() |
116 | - self.window.resize(*self.winsize) |
117 | self.ui.get_object("vbox1").show() |
118 | self.ui.get_object("vbox_advanced").show() |
119 | + self.window.resize(*self.winsize) |
120 | + self.dialog.select_account () |
121 | |
122 | if title.get_title() == "Failure": |
123 | - Gdk.threads_enter() |
124 | - d = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, |
125 | - Gtk.ButtonsType.OK, _("Facebook authorization failed. Please try again.")) |
126 | - if d.run(): d.destroy() |
127 | - Gdk.threads_leave() |
128 | + self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR) |
129 | + message_label = Gtk.Label (_("Authorization failed. Please try again.")) |
130 | + message_label.set_use_markup(True) |
131 | + message_label.set_ellipsize(Pango.EllipsizeMode.END) |
132 | + self.dialog.infobar_content_area.add(message_label) |
133 | + self.dialog.infobar.show_all() |
134 | |
135 | - self.scroll.hide() |
136 | + self.ui.get_object("vbox1").show() |
137 | + self.ui.get_object("vbox_advanced").show() |
138 | + self.scroll.destroy() |
139 | self.window.resize(*self.winsize) |
140 | + self.dialog.select_account () |
141 | + |
142 | |
143 | === modified file 'gwibber/microblog/plugins/foursquare/gtk/foursquare/__init__.py' |
144 | --- gwibber/microblog/plugins/foursquare/gtk/foursquare/__init__.py 2012-02-14 03:32:54 +0000 |
145 | +++ gwibber/microblog/plugins/foursquare/gtk/foursquare/__init__.py 2012-02-14 18:07:39 +0000 |
146 | @@ -55,12 +55,16 @@ |
147 | if self.dialog.ui: |
148 | self.dialog.ui.get_object("vbox_create").hide() |
149 | |
150 | + def console_message_cb (self, *args): |
151 | + return True |
152 | |
153 | def on_foursquare_auth_clicked(self, widget, data=None): |
154 | self.winsize = self.window.get_size() |
155 | |
156 | web = WebKit.WebView() |
157 | web.get_settings().set_property("enable-plugins", False) |
158 | + web.get_settings().set_property("enable-developer-extras", False) |
159 | + web.connect("console-message", self.console_message_cb) |
160 | web.load_html_string(_("<p>Please wait...</p>"), "file:///") |
161 | |
162 | url = 'https://foursquare.com/oauth2/authenticate?client_id=' + CLIENT_ID + '&response_type=code&display=touch&redirect_uri='+ REDIRECT_URI |
163 | @@ -81,20 +85,18 @@ |
164 | |
165 | def on_foursquare_auth_title_change(self, web=None, title=None, data=None): |
166 | saved = False |
167 | + if hasattr(self.dialog, "infobar_content_area"): |
168 | + for child in self.dialog.infobar_content_area.get_children(): child.destroy() |
169 | + self.dialog.infobar_content_area = self.dialog.infobar.get_content_area() |
170 | + self.dialog.infobar_content_area.show() |
171 | + |
172 | if title.get_title() == "Success": |
173 | - |
174 | - if hasattr(self.dialog, "infobar_content_area"): |
175 | - for child in self.dialog.infobar_content_area.get_children(): child.destroy() |
176 | - self.dialog.infobar_content_area = self.dialog.infobar.get_content_area() |
177 | - self.dialog.infobar_content_area.show() |
178 | - self.dialog.infobar.show() |
179 | - |
180 | message_label = Gtk.Label(_("Verifying")) |
181 | message_label.set_use_markup(True) |
182 | message_label.set_ellipsize(Pango.EllipsizeMode.END) |
183 | self.dialog.infobar_content_area.add(message_label) |
184 | self.dialog.infobar.show_all() |
185 | - self.scroll.hide() |
186 | + self.scroll.destroy() |
187 | |
188 | #Get the code from the callback uri (it's formatted as http://gwibber.com/0/auth.html/?code=CODE) |
189 | url = web.get_main_frame().get_uri() |
190 | @@ -147,15 +149,18 @@ |
191 | elif self.dialog.ui and not saved: |
192 | self.dialog.ui.get_object("vbox_create").show() |
193 | |
194 | - self.scroll.hide() |
195 | self.window.resize(*self.winsize) |
196 | |
197 | if title.get_title() == "Failure": |
198 | - self.scroll.hide() |
199 | self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR) |
200 | - message_label.set_text(_("Authorization failed. Please try again.")) |
201 | + message_label = Gtk.Label(_("Authorization failed. Please try again.")) |
202 | + message_label.set_use_markup(True) |
203 | + message_label.set_ellipsize(Pango.EllipsizeMode.END) |
204 | + self.dialog.infobar_content_area.add(message_label) |
205 | self.dialog.infobar.show_all() |
206 | |
207 | self.ui.get_object("vbox1").show() |
208 | self.ui.get_object("vbox_advanced").show() |
209 | + self.scroll.destroy() |
210 | self.window.resize(*self.winsize) |
211 | + |
212 | |
213 | === modified file 'gwibber/microblog/plugins/identica/gtk/identica/__init__.py' |
214 | --- gwibber/microblog/plugins/identica/gtk/identica/__init__.py 2012-02-14 03:08:11 +0000 |
215 | +++ gwibber/microblog/plugins/identica/gtk/identica/__init__.py 2012-02-14 18:07:39 +0000 |
216 | @@ -53,11 +53,17 @@ |
217 | if self.dialog.ui: |
218 | self.dialog.ui.get_object("vbox_create").hide() |
219 | |
220 | + def console_message_cb (self, *args): |
221 | + return True |
222 | + |
223 | def on_statusnet_auth_clicked(self, widget, data=None): |
224 | self.winsize = self.window.get_size() |
225 | |
226 | web = WebKit.WebView() |
227 | web.get_settings().set_property("enable-plugins", False) |
228 | + web.get_settings().set_property("enable-developer-extras", False) |
229 | + web.connect("console-message", self.console_message_cb) |
230 | + |
231 | web.load_html_string(_("<p>Please wait...</p>"), "file:///") |
232 | |
233 | self.consumer = oauth.OAuthConsumer("anonymous", "anonymous") |
234 | @@ -198,15 +204,11 @@ |
235 | except: |
236 | pass |
237 | |
238 | - self.scroll.hide () |
239 | - self.window.resize(*self.winsize) |
240 | self.ui.get_object("vbox1").show() |
241 | self.ui.get_object("vbox_advanced").show() |
242 | + self.scroll.destroy () |
243 | + self.window.resize(*self.winsize) |
244 | |
245 | if title.get_title() == "Failure": |
246 | - d = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, |
247 | - Gtk.ButtonsType.OK, _("Authorization failed. Please try again.")) |
248 | - if d.run(): d.destroy() |
249 | - |
250 | - self.scroll.hide () |
251 | + self.scroll.destroy () |
252 | self.window.resize(*self.winsize) |
253 | |
254 | === modified file 'gwibber/microblog/plugins/statusnet/gtk/statusnet/__init__.py' |
255 | --- gwibber/microblog/plugins/statusnet/gtk/statusnet/__init__.py 2012-02-14 03:08:11 +0000 |
256 | +++ gwibber/microblog/plugins/statusnet/gtk/statusnet/__init__.py 2012-02-14 18:07:39 +0000 |
257 | @@ -61,6 +61,9 @@ |
258 | if self.dialog.ui: |
259 | self.dialog.ui.get_object("vbox_create").hide() |
260 | |
261 | + def console_message_cb (self, *args): |
262 | + return True |
263 | + |
264 | def on_statusnet_auth_clicked(self, widget, data=None): |
265 | self.url_prefix = self.ui.get_object("url_prefix").get_text() |
266 | pref = "" if self.url_prefix.startswith("http") else "https://" |
267 | @@ -71,6 +74,8 @@ |
268 | |
269 | web = WebKit.WebView() |
270 | web.get_settings().set_property("enable-plugins", False) |
271 | + web.get_settings().set_property("enable-developer-extras", False) |
272 | + web.connect("console-message", self.console_message_cb) |
273 | web.load_html_string(_("<p>Please wait...</p>"), "file:///") |
274 | |
275 | self.consumer = oauth.OAuthConsumer("anonymous", "anonymous") |
276 | @@ -215,16 +220,12 @@ |
277 | except: |
278 | pass |
279 | |
280 | - self.scroll.hide() |
281 | - self.window.resize(*self.winsize) |
282 | self.ui.get_object("table_common_settings").show() |
283 | self.ui.get_object("vbox1").show() |
284 | self.ui.get_object("vbox_advanced").show() |
285 | + self.scroll.destroy() |
286 | + self.window.resize(*self.winsize) |
287 | |
288 | if title.get_title() == "Failure": |
289 | - d = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, |
290 | - Gtk.ButtonsType.OK, _("Authorization failed. Please try again.")) |
291 | - if d.run(): d.destroy() |
292 | - |
293 | - self.scroll.hide() |
294 | + self.scroll.destroy() |
295 | self.window.resize(*self.winsize) |
296 | |
297 | === modified file 'gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py' |
298 | --- gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py 2012-02-14 03:08:11 +0000 |
299 | +++ gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py 2012-02-14 18:07:39 +0000 |
300 | @@ -52,11 +52,16 @@ |
301 | self.dialog.ui.get_object("vbox_create").hide() |
302 | |
303 | |
304 | + def console_message_cb (self, *args): |
305 | + return True |
306 | + |
307 | def on_twitter_auth_clicked(self, widget, data=None): |
308 | self.winsize = self.window.get_size() |
309 | |
310 | web = WebKit.WebView() |
311 | web.get_settings().set_property("enable-plugins", False) |
312 | + web.get_settings().set_property("enable-developer-extras", False) |
313 | + web.connect("console-message", self.console_message_cb) |
314 | web.load_html_string(_("<p>Please wait...</p>"), "file:///") |
315 | |
316 | self.consumer = oauth.OAuthConsumer(*resources.get_twitter_keys()) |
317 | @@ -88,24 +93,25 @@ |
318 | |
319 | def on_twitter_auth_title_change(self, web=None, title=None, data=None): |
320 | saved = False |
321 | + uri = title.get_uri () |
322 | + if hasattr(self.dialog, "infobar_content_area"): |
323 | + for child in self.dialog.infobar_content_area.get_children(): child.destroy() |
324 | + self.dialog.infobar_content_area = self.dialog.infobar.get_content_area() |
325 | + self.dialog.infobar_content_area.show() |
326 | + #self.dialog.infobar.show() |
327 | + |
328 | if title.get_title() == "Success": |
329 | - if "denied" in title.get_uri(): |
330 | - self.scroll.hide() |
331 | + if "denied" in uri: |
332 | + self.scroll.destroy() |
333 | self.window.resize(*self.winsize) |
334 | return |
335 | |
336 | - if hasattr(self.dialog, "infobar_content_area"): |
337 | - for child in self.dialog.infobar_content_area.get_children(): child.destroy() |
338 | - self.dialog.infobar_content_area = self.dialog.infobar.get_content_area() |
339 | - self.dialog.infobar_content_area.show() |
340 | - self.dialog.infobar.show() |
341 | - |
342 | - message_label = Gtk.Label(_("Verifying")) |
343 | + message_label = Gtk.Label (_("Verifying")) |
344 | message_label.set_use_markup(True) |
345 | message_label.set_ellipsize(Pango.EllipsizeMode.END) |
346 | self.dialog.infobar_content_area.add(message_label) |
347 | self.dialog.infobar.show_all() |
348 | - self.scroll.hide() |
349 | + self.scroll.destroy() |
350 | url = web.get_main_frame().get_uri() |
351 | data = urlparse.parse_qs(url.split("?", 1)[1]) |
352 | |
353 | @@ -146,7 +152,9 @@ |
354 | else: |
355 | print "Failed" |
356 | self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR) |
357 | - message_label.set_text(_("Authorization failed. Please try again.")) |
358 | + message_label.set_text (_("Authorization failed. Please try again.")) |
359 | + self.dialog.infobar_content_area.add(message_label) |
360 | + self.dialog.infobar.show_all() |
361 | else: |
362 | print "Failed" |
363 | self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR) |
364 | @@ -165,12 +173,17 @@ |
365 | elif self.dialog.ui and not saved: |
366 | self.dialog.ui.get_object("vbox_create").show() |
367 | |
368 | - self.window.resize(*self.winsize) |
369 | + self.window.resize(*self.winsize) |
370 | |
371 | if title.get_title() == "Failure": |
372 | - self.scroll.hide() |
373 | + self.scroll.destroy() |
374 | + self.window.resize(*self.winsize) |
375 | + self.scroll.destroy() |
376 | self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR) |
377 | - message_label.set_text(_("Authorization failed. Please try again.")) |
378 | + message_label = Gtk.Label (_("Authorization failed. Please try again.")) |
379 | + message_label.set_use_markup(True) |
380 | + message_label.set_ellipsize(Pango.EllipsizeMode.END) |
381 | + self.dialog.infobar_content_area.add(message_label) |
382 | self.dialog.infobar.show_all() |
383 | |
384 | self.ui.get_object("vbox1").show() |