/[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.68 by jmalonzo, Thu Aug 7 14:45:17 2003 UTC revision 1.69 by jmalonzo, Sat Aug 16 10:41:04 2003 UTC
# Line 37  class DummyDocStream(StringIO.StringIO): Line 37  class DummyDocStream(StringIO.StringIO):
37      def write_stream(self, s):      def write_stream(self, s):
38          self.write(s)          self.write(s)
39    
 url_re = re.compile('^\w+://')  
40  def is_url(text):  def is_url(text):
41        url_re = re.compile('^\w+://')
42      return url_re.match(text)      return url_re.match(text)
43    
44  class ItemView:  class ItemView:
# Line 88  class ItemView: Line 88  class ItemView:
88              image = straw.ImageCache.retrieve(              image = straw.ImageCache.retrieve(
89                  straw.main.get_visible_feed().complete_url(url))                  straw.main.get_visible_feed().complete_url(url))
90              stream.write(image.get_data())              stream.write(image.get_data())
             stream.close()  
91          except Exception, ex:          except Exception, ex:
             stream.close()  
92              raise              raise
93    
94            stream.close()
95            return
96    
97      def on_source_subscribe_button_clicked(self, button, *data):      def on_source_subscribe_button_clicked(self, button, *data):
98          f = straw.Feed(self._item.source['text'],          f = straw.Feed(self._item.source['text'],
99                         location = self._item.source['url'])                         location = self._item.source['url'])
# Line 336  class ItemList: Line 337  class ItemList:
337          count = 0          count = 0
338          for item in feed.items:          for item in feed.items:
339              title = ""              title = ""
             # None is not == to an empty string, so we'll check for an empty  
             # string as well.  
340              if item.title is not None and item.title != "":              if item.title is not None and item.title != "":
341                  title = convert_entities(item.title)                  title = convert_entities(item.title)
342              elif item.description is not None and item.description != "":              elif item.description is not None and item.description != "":
# Line 345  class ItemList: Line 344  class ItemList:
344                  title = convert_entities(desc)                  title = convert_entities(desc)
345                  title += " ..."                  title += " ..."
346              else:              else:
347                    # empty title, empty description, let's not show it
348                  continue                  continue
349              count += 1              count += 1
350              if item.seen:              if item.seen:
# Line 473  class OfflineToggle: Line 473  class OfflineToggle:
473      def mode_changed(self, signal):      def mode_changed(self, signal):
474          self.show()          self.show()
475    
476    class Toolbar:
477        def __init__(self,widget):
478            # set toolbar tooltips
479            widget_tree = glade.get_widget_tree(widget)
480            self._widget = widget
481            self._back = widget_tree.get_widget('toolbar_back_button')
482            self._forward = widget_tree.get_widget('toolbar_forward_button')
483            self._poll = widget_tree.get_widget('toolbar_poll_button')
484            self._new = widget_tree.get_widget('toolbar_new_feed_button')
485            self._prefs = widget_tree.get_widget('toolbar_preferences_show_button')
486            self._find = widget_tree.get_widget('toolbar_find_button')
487            self._tooltips = gtk.Tooltips()
488    
489        def show_tips(self):
490            prefs = _("Change settings")
491            poll = _("Get news items")
492            next = _("Go to next unread feed or item")
493            new =  _("Subscribe to a new feed")
494            back = _("Go back to the next feed or item")
495            find = _("Find a word or a phrase on feeds")
496    
497            self._tooltips.set_tip(self._back, back, back)
498            self._tooltips.set_tip(self._forward, next, next)
499            self._tooltips.set_tip(self._poll, poll, poll)
500            self._tooltips.set_tip(self._new, new, new)
501            self._tooltips.set_tip(self._prefs, prefs, prefs)
502            self._tooltips.set_tip(self._find, find, find)
503            self._tooltips.enable()
504    
505  class FeedInfoDisplay:  class FeedInfoDisplay:
506      def __init__(self, widget):      def __init__(self, widget):
507          widget_tree = glade.get_widget_tree(widget)          widget_tree = glade.get_widget_tree(widget)
# Line 630  class MainWindow: Line 659  class MainWindow:
659              xml.get_widget('find_results_treeview'))              xml.get_widget('find_results_treeview'))
660          self._offline_toggle = OfflineToggle(          self._offline_toggle = OfflineToggle(
661              xml.get_widget('offline_toggle'))              xml.get_widget('offline_toggle'))
662            self._toolbar = Toolbar(
663                xml.get_widget('toolbar_default'))
664          self._offline_toggle.show()          self._offline_toggle.show()
665            self._toolbar.show_tips()
666          self.create_ui(xml)          self.create_ui(xml)
667          # status messages are queued and displayed with a half a second          # status messages are queued and displayed with a half a second
668          # 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 645  class MainWindow: Line 677  class MainWindow:
677          return straw.main.quit()          return straw.main.quit()
678    
679      def on_straw_main_delete_event(self, *args):      def on_straw_main_delete_event(self, *args):
680          # FALSE emits destroy_event          return straw.main.quit()
         return gtk.FALSE  
681    
682      def on_straw_main_configure_event(self, widget, event, *args):      def on_straw_main_configure_event(self, widget, event, *args):
683          def check_size((width, height, widget)):          def check_size((width, height, widget)):
# Line 655  class MainWindow: Line 686  class MainWindow:
686          if event.width != widget.allocation.width or event.height != widget.allocation.height:          if event.width != widget.allocation.width or event.height != widget.allocation.height:
687              gtk.timeout_add(1000, check_size, (              gtk.timeout_add(1000, check_size, (
688                  (event.width, event.height, widget)))                  (event.width, event.height, widget)))
689            return gtk.FALSE
690    
691      def on_main_main_pane_size_allocate(self, widget, *args):      def on_main_main_pane_size_allocate(self, widget, *args):
692          def check_position((position, widget)):          def check_position((position, widget)):
# Line 683  class MainWindow: Line 715  class MainWindow:
715      def on_toolbar_find_button_clicked(self, button, *args):      def on_toolbar_find_button_clicked(self, button, *args):
716          self.show_find_mode()          self.show_find_mode()
717    
718      def on_subscribe_new_feed_button_clicked(self, button, *args):      def on_toolbar_new_feed_button_clicked(self, button, *args):
719          straw.main.show_subscribe_dialog()          straw.main.show_subscribe_dialog()
720    
721        def on_toolbar_forward_button_clicked(self, button, *args):
722            if not self._item_view.scroll_down():
723                straw.main.display_next_unread_item()
724    
725        def on_toolbar_back_button_clicked(self, button, *args):
726            # FIXME: item or feed?
727            straw.main.display_previous_item()
728    
729      def on_menu_about_activate(self, menuitem, *args):      def on_menu_about_activate(self, menuitem, *args):
730          gnome.ui.About(          gnome.ui.About(
731              straw.APPNAME, straw.VERSION, "Copyright (c) 2002 Juri Pakaste", "",              straw.APPNAME, straw.VERSION, "Copyright (c) 2002 Juri Pakaste", "",
# Line 998  class MainWindow: Line 1038  class MainWindow:
1038  #         self.update_total_unread_indicator()  #         self.update_total_unread_indicator()
1039    
1040      def create_feed_selection_columns(self, feed_list_view):      def create_feed_selection_columns(self, feed_list_view):
1041            renderer = gtk.CellRendererPixbuf()
1042            column = gtk.TreeViewColumn('Status', renderer,
1043                                        stock_id=self.COLUMN_STATUS_PIXBUF,
1044                                        visible=self.COLUMN_STATUS_FLAG)
1045            feed_list_view.append_column(column)
1046          renderer = gtk.CellRendererText()          renderer = gtk.CellRendererText()
1047          column = gtk.TreeViewColumn('Title', renderer, text=self.COLUMN_NAME,          column = gtk.TreeViewColumn('Title', renderer, text=self.COLUMN_NAME,
1048                                      weight=self.COLUMN_BOLD)                                      weight=self.COLUMN_BOLD)
# Line 1006  class MainWindow: Line 1051  class MainWindow:
1051          column = gtk.TreeViewColumn('New', renderer, text=self.COLUMN_UNREAD,          column = gtk.TreeViewColumn('New', renderer, text=self.COLUMN_UNREAD,
1052                                      weight=self.COLUMN_BOLD)                                      weight=self.COLUMN_BOLD)
1053          feed_list_view.append_column(column)          feed_list_view.append_column(column)
         renderer = gtk.CellRendererPixbuf()  
         column = gtk.TreeViewColumn('Status', renderer,  
                                     stock_id=self.COLUMN_STATUS_PIXBUF,  
                                     visible=self.COLUMN_STATUS_FLAG)  
         feed_list_view.append_column(column)  
1054          return          return
1055    
1056      def create_ui(self, xml):      def create_ui(self, xml):

Legend:
Removed from v.1.68  
changed lines
  Added in v.1.69

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