/[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.83 by jmalonzo, Tue Oct 28 11:16:24 2003 UTC revision 1.84 by jmalonzo, Thu Oct 30 08:58:46 2003 UTC
# Line 40  class ItemView: Line 40  class ItemView:
40      def __init__(self, item_view_container):      def __init__(self, item_view_container):
41          widget_tree = glade.get_widget_tree(item_view_container)          widget_tree = glade.get_widget_tree(item_view_container)
42    
43          self._source_display_frame = widget_tree.get_widget(          self._source_item_hbox = widget_tree.get_widget('item_source_hbox')
44              'source_display_frame')          self._source_subs_hbox = widget_tree.get_widget('item_subscribe_hbox')
45          self._source_name_label = widget_tree.get_widget('source_name_label')          self._source_subscribe_button = widget_tree.get_widget('source_subscribe_button')
46          self._source_url_label = widget_tree.get_widget('source_url_label')          self._source_url = gnome.ui.HRef(url='', text='')
47            self._source_item_hbox.pack_start(self._source_url, expand=gtk.FALSE, fill=gtk.TRUE)
48          widget_tree.signal_connect('on_source_subscribe_button_clicked',          widget_tree.signal_connect('on_source_subscribe_button_clicked',
49                                     self.on_source_subscribe_button_clicked)                                     self.on_source_subscribe_button_clicked)
50    
# Line 89  class ItemView: Line 90  class ItemView:
90              stream.write(image.get_data())              stream.write(image.get_data())
91          except Exception, ex:          except Exception, ex:
92              log(ex)              log(ex)
             #raise  
93    
94          stream.close()          stream.close()
95          return          return
# Line 119  class ItemView: Line 119  class ItemView:
119                  self.htmlify_item(item) +                  self.htmlify_item(item) +
120                  "</body></html>")                  "</body></html>")
121          html = html.encode('utf-8')          html = html.encode('utf-8')
122          self._document.write_stream(html)          self._document.write_stream(html)
123          self._document.close_stream()          self._document.close_stream()
124          va = self._scrolled_window.get_vadjustment()          va = self._scrolled_window.get_vadjustment()
125          va.set_value(va.lower)          va.set_value(va.lower)
126          if item.source is not None:          if item.source is not None:
127              self._source_name_label.set_text(item.source['text'])              self._source_url.set_text(item.source['url'])
128              self._source_url_label.set_text(item.source['url'])              self._source_url.set_url(item.source['url'])
129              self._source_display_frame.show()              self._source_url.show()
130                self._source_item_hbox.show()
131                self._source_subs_hbox.show()
132          else:          else:
133              self._source_display_frame.hide()              self._source_item_hbox.hide()
134                self._source_subs_hbox.hide()
135          self._item = item          self._item = item
136          return          return
137    
# Line 138  class ItemView: Line 141  class ItemView:
141          self._document.write_stream(self.htmlify_empty_feed(feed))          self._document.write_stream(self.htmlify_empty_feed(feed))
142          self._document.close_stream()          self._document.close_stream()
143          self._item = None          self._item = None
144          self._source_display_frame.hide()          self._source_item_hbox.hide()
145            self._source_subs_hbox.hide()
146          return          return
147    
148      def htmlify_empty_feed(self, feed):      def htmlify_empty_feed(self, feed):
# Line 220  class ItemList: Line 224  class ItemList:
224    
225          self.create_item_selection_columns(self._widget)          self.create_item_selection_columns(self._widget)
226    
         #model.set_sort_column_id(5, straw.config.item_order)  
227          widget.get_selection().connect("changed", self.item_selection_changed)          widget.get_selection().connect("changed", self.item_selection_changed)
228    
229          self._feed = None          self._feed = None
# Line 241  class ItemList: Line 244  class ItemList:
244                                      weight=self.COLUMN_BOLD)                                      weight=self.COLUMN_BOLD)
245          column.set_resizable(gtk.TRUE)          column.set_resizable(gtk.TRUE)
246          column.set_reorderable(gtk.TRUE)          column.set_reorderable(gtk.TRUE)
         #column.set_sort_column_id(0)  
         #column.set_sort_order('ascending')  
         #column.set_sort_indicator(gtk.TRUE)  
         #column.clicked()  
247          item_list_view.append_column(column)          item_list_view.append_column(column)
248    
249          return          return
# Line 408  class Toolbar: Line 407  class Toolbar:
407          # set toolbar tooltips          # set toolbar tooltips
408          widget_tree = glade.get_widget_tree(widget)          widget_tree = glade.get_widget_tree(widget)
409          self._widget = widget          self._widget = widget
         self._back = widget_tree.get_widget('toolbar_back_button')  
410          self._forward = widget_tree.get_widget('toolbar_forward_button')          self._forward = widget_tree.get_widget('toolbar_forward_button')
411          self._poll = widget_tree.get_widget('toolbar_poll_button')          self._poll = widget_tree.get_widget('toolbar_poll_button')
412          self._new = widget_tree.get_widget('toolbar_new_feed_button')          self._new = widget_tree.get_widget('toolbar_new_feed_button')
# Line 419  class Toolbar: Line 417  class Toolbar:
417          poll = _("Get news items")          poll = _("Get news items")
418          next = _("Go to next unread feed or item")          next = _("Go to next unread feed or item")
419          new =  _("Subscribe to a new feed")          new =  _("Subscribe to a new feed")
         back = _("Go back to the next feed or item")  
420          find = _("Find a word or a phrase on feeds")          find = _("Find a word or a phrase on feeds")
421    
         self._tooltips.set_tip(self._back, back, back)  
422          self._tooltips.set_tip(self._forward, next, next)          self._tooltips.set_tip(self._forward, next, next)
423          self._tooltips.set_tip(self._poll, poll, poll)          self._tooltips.set_tip(self._poll, poll, poll)
424          self._tooltips.set_tip(self._new, new, new)          self._tooltips.set_tip(self._new, new, new)
# Line 654  class MainWindow: Line 650  class MainWindow:
650          if not self._item_view.scroll_down():          if not self._item_view.scroll_down():
651              straw.main.display_next_unread_item()              straw.main.display_next_unread_item()
652    
     def on_toolbar_back_button_clicked(self, button, *args):  
         # FIXME: item or feed?  
         straw.main.display_previous_item()  
   
653      def on_menu_about_activate(self, menuitem, *args):      def on_menu_about_activate(self, menuitem, *args):
654          whatis = "Straw is a desktop news aggregator for GNOME"          description = "Straw is a desktop news aggregator for GNOME"
655          gnome.ui.About(          gnome.ui.About(
656              straw.APPNAME, straw.VERSION, "Copyright (c) 2002-2003 Juri Pakaste", whatis,              straw.APPNAME, straw.VERSION, "Copyright (c) 2002-2003 Juri Pakaste", description,
657              ["Juri Pakaste <juri@iki.fi>",              ["Juri Pakaste <juri@iki.fi>",
658               "Jan Alonzo <jmalonzo@unpluggable.com>",               "Jan Alonzo <jmalonzo@unpluggable.com>",
659               "rssparser.py and rssfinder.py by Mark Pilgrim",               "Scott Douglas-Watson <sdouglaswatson@yahoo.co.uk>",
660                 "feedparser.py and rssfinder.py by Mark Pilgrim",
661               "Icons by Jakub 'jimmac' Steiner and Juri Pakaste"],               "Icons by Jakub 'jimmac' Steiner and Juri Pakaste"],
662              [],              [],
663              "Juri Pakaste <juri@iki.fi>\n"              "Juri Pakaste <juri@iki.fi>\n"
# Line 817  class MainWindow: Line 810  class MainWindow:
810    
811      def number_of_new(self, feed):      def number_of_new(self, feed):
812          nu = feed.number_of_unread          nu = feed.number_of_unread
813          return ("%s/%s" % (nu, feed.number_of_items), nu)          if nu != 0:
814                return ("(%s)" % nu, nu)
815            else:
816                return (" ", nu)
817            #return ("%s/%s" % (nu, feed.number_of_items), nu)
818    
819      def _select_feed_status_icon(self, feed):      def _select_feed_status_icon(self, feed):
820          if feed.process_status is not straw.Feed.STATUS_IDLE:          if feed.process_status is not straw.Feed.STATUS_IDLE:
# Line 848  class MainWindow: Line 845  class MainWindow:
845                      feed.signal_disconnect(                      feed.signal_disconnect(
846                          straw.FeedStatusChangedSignal, self.feed_updated)                          straw.FeedStatusChangedSignal, self.feed_updated)
847                  except KeyError:                  except KeyError:
848                      pass                      log("Key error in display_feeds in MainWindow")
849                  feed.signal_connect(straw.ItemReadSignal, self.item_read, fc)                  feed.signal_connect(straw.ItemReadSignal, self.item_read, fc)
850                  feed.signal_connect(straw.AllItemsReadSignal,                  feed.signal_connect(straw.AllItemsReadSignal,
851                                      self.all_items_read, fc)                                      self.all_items_read, fc)
# Line 974  class MainWindow: Line 971  class MainWindow:
971  #         self.update_total_unread_indicator()  #         self.update_total_unread_indicator()
972    
973      def create_feed_selection_columns(self, feed_list_view):      def create_feed_selection_columns(self, feed_list_view):
974          renderer = gtk.CellRendererPixbuf()          column = gtk.TreeViewColumn()
975          column = gtk.TreeViewColumn('Status', renderer,          column.set_title("_Subscriptions")
976                                      stock_id=self.COLUMN_STATUS_PIXBUF,  
977                                      visible=self.COLUMN_STATUS_FLAG)          status_renderer = gtk.CellRendererPixbuf()
978          feed_list_view.append_column(column)          column.pack_start(status_renderer, gtk.FALSE)
979          renderer = gtk.CellRendererText()          column.add_attribute(status_renderer, "stock_id", self.COLUMN_STATUS_PIXBUF)
980          column = gtk.TreeViewColumn('Title', renderer, text=self.COLUMN_NAME,          column.add_attribute(status_renderer, "visible", self.COLUMN_STATUS_FLAG)
981                                      weight=self.COLUMN_BOLD)  
982          feed_list_view.append_column(column)          title_renderer = gtk.CellRendererText()
983          renderer = gtk.CellRendererText()          column.pack_start(title_renderer, gtk.TRUE)
984          column = gtk.TreeViewColumn('New', renderer, text=self.COLUMN_UNREAD,          column.add_attribute(title_renderer, "text", self.COLUMN_NAME)
985                                      weight=self.COLUMN_BOLD)          column.add_attribute(title_renderer, "weight", self.COLUMN_BOLD)
986    
987            unread_renderer = gtk.CellRendererText()
988            column.pack_end(unread_renderer, gtk.TRUE)
989            column.add_attribute(unread_renderer, "text", self.COLUMN_UNREAD)
990            column.add_attribute(unread_renderer, "weight", self.COLUMN_BOLD)
991    
992          feed_list_view.append_column(column)          feed_list_view.append_column(column)
993    
994    

Legend:
Removed from v.1.83  
changed lines
  Added in v.1.84

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