From 44e1a39afeb1bef3eebec5655f8ffbd9420fbd96 Mon Sep 17 00:00:00 2001 From: Anna Date: Thu, 6 May 2010 16:28:24 -0400 Subject: [PATCH] Implemented handler for the new signals, but there's a problem when the active tab is closed... --- mytwitter.py | 31 +++++++++++++++++++++++++++---- twitterwidgets.py | 8 ++++---- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/mytwitter.py b/mytwitter.py index cfc6d61..72c0924 100755 --- a/mytwitter.py +++ b/mytwitter.py @@ -68,6 +68,9 @@ class MyTwitter(): self.reply_id = None + self.following_handler = -1 + self.verified_handler = -1 + # Load up all the GUI stuff self.init_user_interface('./default.glade') self.init_widgets() @@ -330,7 +333,18 @@ class MyTwitter(): def on_tab_change(self, event, page, page_num): + last_page = self.db['active_page'] self.db['active_page'] = page_num + + # Disconnect the old signals + if last_page != page_num: + pane = self.tweet_notebook.get_nth_page(last_page) + if self.following_handler != -1: + pane.disconnect(self.following_handler) + if self.verified_handler != -1: + pane.disconnect(self.verified_handler) + + # Now get the new page, and set everything up pane = self.tweet_notebook.get_nth_page(page_num) pane.set_tweets_read() self.update_follow_button(pane) @@ -338,10 +352,12 @@ class MyTwitter(): self.at_button.show() else: self.at_button.hide() - if pane.get_verified(): - self.verified_label.show() - else: - self.verified_label.hide() + + self.update_verified_label(pane) + + # Follow button and verified label can be returned later if this is a new pane, so set up signals + self.following_handler = pane.connect('following-set', self.update_follow_button) + self.verified_handler = pane.connect('verified-set', self.update_verified_label) def on_tabs_reordered(self, widget, child, page_num): @@ -405,6 +421,13 @@ class MyTwitter(): self.following_button.show() + def update_verified_label(self, pane): + if pane.get_verified(): + self.verified_label.show() + else: + self.verified_label.hide() + + def show_user(self, name): self.add_to_notebook('user: ' + name) diff --git a/twitterwidgets.py b/twitterwidgets.py index f60f46f..953fab6 100644 --- a/twitterwidgets.py +++ b/twitterwidgets.py @@ -190,13 +190,13 @@ class TweetPane(gtk.ScrolledWindow): def set_following(self, following): with self.data_lock: self.following = following - self.emit("following-set", following) + self.emit("following-set") def set_verified(self, verified): with self.data_lock: self.verified = verified - self.emit("verified-set", verified) + self.emit("verified-set") def get_is_user(self): @@ -221,10 +221,10 @@ gobject.signal_new("show-user", TweetPane, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)) gobject.signal_new("following-set", TweetPane, gobject.SIGNAL_RUN_LAST, - gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))) + gobject.TYPE_NONE, ()) gobject.signal_new("verified-set", TweetPane, gobject.SIGNAL_RUN_LAST, - gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))) + gobject.TYPE_NONE, ())