Compartmentalized use of CloseTabLabel into TweetPane, and improved handling of unread count text

This commit is contained in:
Anna 2010-04-13 14:49:08 -04:00
parent bbe43d2131
commit ed500d1dc0

View File

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