/[straw]/straw/src/lib/MainWindow.py
ViewVC logotype

Diff of /straw/src/lib/MainWindow.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.74 by juri, Mon Sep 8 16:20:57 2003 UTC revision 1.75 by jmalonzo, Tue Sep 23 23:46:00 2003 UTC
# Line 294  class ItemList: Line 294  class ItemList:
294    
295      def __init__(self, widget):      def __init__(self, widget):
296          self._widget = widget          self._widget = widget
297    
298          model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_OBJECT,          model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_OBJECT,
299                                gobject.TYPE_PYOBJECT, gobject.TYPE_INT,                                gobject.TYPE_PYOBJECT, gobject.TYPE_INT,
300                                gobject.TYPE_BOOLEAN)                                gobject.TYPE_BOOLEAN)
301    
302          widget.set_model(model)          widget.set_model(model)
303          widget.set_rules_hint(gtk.TRUE)          widget.set_rules_hint(gtk.TRUE)
304    
305          self.create_item_selection_columns(self._widget)          self.create_item_selection_columns(self._widget)
306    
307            #model.set_sort_column_id(5, straw.config.item_order)
308          widget.get_selection().connect("changed", self.item_selection_changed)          widget.get_selection().connect("changed", self.item_selection_changed)
309    
310          self._feed = None          self._feed = None
311          return          return
312    
313      def create_item_selection_columns(self, item_list_view):      def create_item_selection_columns(self, item_list_view):
314            renderer = gtk.CellRendererToggle()
315            column = gtk.TreeViewColumn(_('Keep'), renderer,
316                                        active=self.COLUMN_STICKY_FLAG)
317            column.set_resizable(gtk.TRUE)
318            column.set_reorderable(gtk.TRUE)
319            item_list_view.append_column(column)
320            renderer.connect('toggled', self.sticky_toggled)
321    
322          renderer = gtk.CellRendererText()          renderer = gtk.CellRendererText()
323          column = gtk.TreeViewColumn(_('Title'), renderer,          column = gtk.TreeViewColumn(_('Title'), renderer,
324                                      text=self.COLUMN_TITLE,                                      text=self.COLUMN_TITLE,
325                                      weight=self.COLUMN_BOLD)                                      weight=self.COLUMN_BOLD)
326          column.set_min_width(int(550))          column.set_resizable(gtk.TRUE)
327            column.set_reorderable(gtk.TRUE)
328            #column.set_sort_column_id(0)
329            #column.set_sort_order('ascending')
330            #column.set_sort_indicator(gtk.TRUE)
331            #column.clicked()
332          item_list_view.append_column(column)          item_list_view.append_column(column)
333    
         renderer = gtk.CellRendererToggle()  
         column = gtk.TreeViewColumn(_('Keep'), renderer,  
                                     active=self.COLUMN_STICKY_FLAG)  
         column.set_max_width(int(50))  
         item_list_view.append_column(column)  
         renderer.connect('toggled', self.sticky_toggled)  
334          return          return
335    
336      def sticky_toggled(self, cell, path):      def sticky_toggled(self, cell, path):
# Line 334  class ItemList: Line 347  class ItemList:
347          model.clear()          model.clear()
348          count = 0          count = 0
349          for item in feed.items:          for item in feed.items:
350    
351              title = ""              title = ""
352    
353              if item.title is not None and item.title != "":              if item.title is not None and item.title != "":
354                  title = convert_entities(item.title)                  title = convert_entities(item.title)
355              elif item.description is not None and item.description != "":              elif item.description is not None and item.description != "":
# Line 344  class ItemList: Line 359  class ItemList:
359              else:              else:
360                  # empty title, empty description, let's not show it                  # empty title, empty description, let's not show it
361                  continue                  continue
362    
363              count += 1              count += 1
364    
365              if item.seen:              if item.seen:
366                  bold = pango.WEIGHT_NORMAL                  bold = pango.WEIGHT_NORMAL
367              else:              else:
368                  bold = pango.WEIGHT_BOLD                  bold = pango.WEIGHT_BOLD
369    
370              iter = model.append()              iter = model.append()
371              model.set(iter, self.COLUMN_TITLE, title, self.COLUMN_ITEM, item,              model.set(iter, self.COLUMN_TITLE, title, self.COLUMN_ITEM, item,
372                        self.COLUMN_BOLD, bold,                        self.COLUMN_BOLD, bold, self.COLUMN_STICKY_FLAG, item.sticky)
                       self.COLUMN_STICKY_FLAG, item.sticky)  
373    
         self._widget.columns_autosize()  
374          return count          return count
375    
376      def display_feed(self, feed, select_first = 1):      def display_feed(self, feed, select_first = 1):
# Line 471  class OfflineToggle: Line 487  class OfflineToggle:
487      def mode_changed(self, signal):      def mode_changed(self, signal):
488          self.show()          self.show()
489    
 class StatusTime:  
     def __init__(self, widget):  
         self.time_label = widget  
         straw.config.signal_connect(straw.LastPollChangedSignal, self.next_poll)  
   
     def next_poll(self, *args):  
         now = time.localtime()  
         npoll = time.localtime(straw.config.last_poll + straw.config.poll_frequency)  
         x  = now[3]  
         a = now[2]  
         y = npoll[3]  
         b = npoll[2]  
         if straw.config.last_poll is None or x > y and a == b:  
             self.hide()  
             return  
         elif x > y and a != b:  
             format = '%d %b %H:%M'  
         else:  
             format = '%H:%M'  
         npoll_sane = _("Next poll: <b>%s</b>" %  time.strftime(format,npoll))  
         self.time_label.set_text(npoll_sane)  
         self.time_label.set_property("use_markup", True)  
         self.time_label.show()  
   
         return  
   
     def show(self):  
         self.next_poll()  
         return  
   
     def hide(self):  
         self.time_label.hide()  
         return  
   
490  class Toolbar:  class Toolbar:
491      def __init__(self,widget):      def __init__(self,widget):
492          # set toolbar tooltips          # set toolbar tooltips
# Line 537  class FeedInfoDisplay: Line 519  class FeedInfoDisplay:
519          self._widget = widget          self._widget = widget
520          self._state_indicator = widget_tree.get_widget('feed_info_arrow')          self._state_indicator = widget_tree.get_widget('feed_info_arrow')
521          self._drawer = widget_tree.get_widget('feed_info_drawer')          self._drawer = widget_tree.get_widget('feed_info_drawer')
522          self._switch_button = widget_tree.get_widget(          self._switch_button = widget_tree.get_widget('feed_info_visibility_button')
             'feed_info_visibility_button')  
523          self._title_display = widget_tree.get_widget('feed_info_title')          self._title_display = widget_tree.get_widget('feed_info_title')
524          self._link_display = widget_tree.get_widget('feed_info_link')          self._url_hbox = widget_tree.get_widget('feed_info_hbox')
525          self._description_display = widget_tree.get_widget(          self._link_display = gnome.ui.HRef(url='', text='')
526              'feed_info_description')          self._description_display = widget_tree.get_widget('feed_info_description')
527          self._copyright_display = widget_tree.get_widget('feed_info_copyright')          self._copyright_display = widget_tree.get_widget('feed_info_copyright')
528    
529          self._tooltips = gtk.Tooltips()          self._tooltips = gtk.Tooltips()
530            self._url_hbox.pack_start(self._link_display,expand=gtk.FALSE,fill=gtk.FALSE, padding=6)
531    
532          self._visible = 0          self._visible = 0
533          self.set_indicator(self._visible)          self.set_indicator(self._visible)
534    
# Line 596  class FeedInfoDisplay: Line 580  class FeedInfoDisplay:
580    
581          link = feed.channel_link          link = feed.channel_link
582          self._link_display.set_url(link)          self._link_display.set_url(link)
583          self._link_display.set_property("label", link)          self._link_display.set_text(link)
584          if len(link):          if len(link):
585              self._link_display.show()              self._link_display.show()
586          else:          else:
# Line 693  class MainWindow: Line 677  class MainWindow:
677              xml.get_widget('offline_toggle'))              xml.get_widget('offline_toggle'))
678          self._toolbar = Toolbar(          self._toolbar = Toolbar(
679              xml.get_widget('toolbar_default'))              xml.get_widget('toolbar_default'))
         self._timestats = StatusTime(  
             xml.get_widget('status_next_poll'))  
680          self._offline_toggle.show()          self._offline_toggle.show()
681          self._toolbar.show_tips()          self._toolbar.show_tips()
         self._timestats.show()  
682          self.create_ui(xml)          self.create_ui(xml)
683          # status messages are queued and displayed with a half a second          # status messages are queued and displayed with a half a second
684          # timeout, so the user can see what's happening. the timeout is only          # timeout, so the user can see what's happening. the timeout is only
# Line 785  class MainWindow: Line 766  class MainWindow:
766          straw.main.show_preferences_dialog()          straw.main.show_preferences_dialog()
767          return          return
768    
     def on_menu_subscriptions_activate(self, *args):  
         straw.main.show_subscriptions_dialog()  
         return  
   
769      def on_menu_poll_all_activate(self, *args):      def on_menu_poll_all_activate(self, *args):
770          straw.poll_manager.poll()          straw.poll_manager.poll()
771    

Legend:
Removed from v.1.74  
changed lines
  Added in v.1.75

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26