diff --git a/mytwitter.py b/mytwitter.py index f0ded6b..97b854a 100755 --- a/mytwitter.py +++ b/mytwitter.py @@ -99,12 +99,6 @@ class MyTwitter(): pane.update_window(statuses, using_results=using_results) - # Update the label with the number of unread tweets - pane_text = list_name - if pane.get_num_new_tweets() > 0: - pane_text += ' (' + str(pane.get_num_new_tweets()) + ')' - self.tweet_notebook.get_tab_label(pane).set_label_text(pane_text) - # We have to return true, so the timeout_add event will keep happening return True @@ -183,20 +177,14 @@ class MyTwitter(): # http://www.daa.com.au/pipermail/pygtk/2006-April/012216.html def add_to_notebook(self, name): new_pane = TweetPane(name, self) - - tab_label = CloseTabLabel(name) - self.tweet_notebook.append_page(new_pane, tab_label) - tab_label.connect('label_clicked', new_pane.set_tweets_read_callback) - tab_label.connect('close_clicked', self.remove_view, name) + self.tweet_notebook.append_page(new_pane, new_pane.get_tab_label()) + new_pane.get_tab_label().connect('close_clicked', self.remove_view, name) self.tweet_notebook.set_current_page(-1) # switch to the new pane def on_tab_change(self, event, page, page_num): pane = self.tweet_notebook.get_nth_page(page_num) - tab_label = self.tweet_notebook.get_tab_label(pane) - pane.set_tweets_read() - tab_label.set_label_text(pane.get_list_name()) def on_search(self, event): @@ -229,7 +217,9 @@ class TweetPane(gtk.ScrolledWindow): gtk.ScrolledWindow.__init__(self) self.list_name = list_name + self.mytwitter = mytwitter + self.tab_label = CloseTabLabel(self.list_name) # These handle determining which tweets are unread self.last_tweet_read = None @@ -242,6 +232,8 @@ class TweetPane(gtk.ScrolledWindow): def init_widgets(self): + self.tab_label.connect('label_clicked', self.set_tweets_read_callback) + tweet_box = gtk.VBox() viewport = gtk.Viewport() @@ -290,6 +282,16 @@ class TweetPane(gtk.ScrolledWindow): self.latest_tweet = statuses[0].id + self.update_tab_label() + + + # Update the label with the number of unread tweets + def update_tab_label(self): + pane_text = self.list_name + if self.num_new_tweets > 0: + pane_text += ' (' + str(self.num_new_tweets) + ')' + self.tab_label.set_label_text(pane_text) + def get_list_name(self): return self.list_name @@ -298,15 +300,15 @@ class TweetPane(gtk.ScrolledWindow): def set_tweets_read(self): self.last_tweet_read = self.latest_tweet self.num_new_tweets = 0 + self.update_tab_label() def set_tweets_read_callback(self, event, arg1=None, arg2=None): self.set_tweets_read() - def get_num_new_tweets(self): - return self.num_new_tweets - + def get_tab_label(self): + return self.tab_label # To keep things simple elsewhere and improve code reuse # we'll build a list of home-cooked Status objects out of results.