Compartmentalized use of CloseTabLabel into TweetPane, and improved handling of unread count text
This commit is contained in:
parent
bbe43d2131
commit
ed500d1dc0
36
mytwitter.py
36
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.
|
||||
|
|
Reference in New Issue
Block a user