Implemented handler for the new signals, but there's a problem when the active tab is closed...

This commit is contained in:
Anna 2010-05-06 16:28:24 -04:00
parent 9809e5a96a
commit 44e1a39afe
2 changed files with 31 additions and 8 deletions

View File

@ -68,6 +68,9 @@ class MyTwitter():
self.reply_id = None self.reply_id = None
self.following_handler = -1
self.verified_handler = -1
# Load up all the GUI stuff # Load up all the GUI stuff
self.init_user_interface('./default.glade') self.init_user_interface('./default.glade')
self.init_widgets() self.init_widgets()
@ -330,7 +333,18 @@ class MyTwitter():
def on_tab_change(self, event, page, page_num): def on_tab_change(self, event, page, page_num):
last_page = self.db['active_page']
self.db['active_page'] = page_num 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 = self.tweet_notebook.get_nth_page(page_num)
pane.set_tweets_read() pane.set_tweets_read()
self.update_follow_button(pane) self.update_follow_button(pane)
@ -338,10 +352,12 @@ class MyTwitter():
self.at_button.show() self.at_button.show()
else: else:
self.at_button.hide() self.at_button.hide()
if pane.get_verified():
self.verified_label.show() self.update_verified_label(pane)
else:
self.verified_label.hide() # 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): def on_tabs_reordered(self, widget, child, page_num):
@ -405,6 +421,13 @@ class MyTwitter():
self.following_button.show() 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): def show_user(self, name):
self.add_to_notebook('user: ' + name) self.add_to_notebook('user: ' + name)

View File

@ -190,13 +190,13 @@ class TweetPane(gtk.ScrolledWindow):
def set_following(self, following): def set_following(self, following):
with self.data_lock: with self.data_lock:
self.following = following self.following = following
self.emit("following-set", following) self.emit("following-set")
def set_verified(self, verified): def set_verified(self, verified):
with self.data_lock: with self.data_lock:
self.verified = verified self.verified = verified
self.emit("verified-set", verified) self.emit("verified-set")
def get_is_user(self): def get_is_user(self):
@ -221,10 +221,10 @@ gobject.signal_new("show-user", TweetPane,
gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)) gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))
gobject.signal_new("following-set", TweetPane, gobject.signal_new("following-set", TweetPane,
gobject.SIGNAL_RUN_LAST, gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))) gobject.TYPE_NONE, ())
gobject.signal_new("verified-set", TweetPane, gobject.signal_new("verified-set", TweetPane,
gobject.SIGNAL_RUN_LAST, gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))) gobject.TYPE_NONE, ())