Merge lp:~ken-vandine/gwibber/gtk3-pybits into lp:~dobey/gwibber/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
Reviewer Review Type Date Requested Status
dobey Pending
Review via email: mp+93043@code.launchpad.net

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()

Subscribers

People subscribed via source and target branches

to all changes: