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

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

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

revision 1.18 by jmalonzo, Tue Sep 23 23:56:12 2003 UTC revision 1.19 by jmalonzo, Sun Sep 28 12:31:27 2003 UTC
# Line 20  class SubscribeDialog: Line 20  class SubscribeDialog:
20      def __init__(self, xml):      def __init__(self, xml):
21          self._window = xml.get_widget("subscribe_dialog")          self._window = xml.get_widget("subscribe_dialog")
22          self._window.set_transient_for(straw.main_window.get_window())          self._window.set_transient_for(straw.main_window.get_window())
23            self._feed_url = ""
24          self._feed_count = 0          self._feed_count = 0
25          self._feed_is_parsed = bool(0)          self._feed_is_parsed = bool(0)
26    
# Line 41  class SubscribeDialog: Line 42  class SubscribeDialog:
42          model = gtk.ListStore(          model = gtk.ListStore(
43              gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING,              gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING,
44              gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT)              gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT)
45    
46          self._subscribe_multiple_match_view.set_model(model)          self._subscribe_multiple_match_view.set_model(model)
47          self.create_columns(self._subscribe_multiple_match_view)          self.create_columns(self._subscribe_multiple_match_view)
48    
49      def on_start_page_next(self, widget, data):      def on_start_page_next(self, widget, data):
50          self._find_assistant.set_page(self._location_page)          self._find_assistant.set_page(self._location_page)
51    
52          ltext = self._subscribe_site_entry.get_text()          if self._feed_url == "" or self._feed_url is None:
53                self.disable_button(next=gtk.FALSE)
         if ltext == "" or ltext is None:  
             self._find_assistant.set_buttons_sensitive(gtk.TRUE, gtk.FALSE, gtk.TRUE, gtk.FALSE)  
54    
55          return gtk.TRUE          return gtk.TRUE
56    
# Line 59  class SubscribeDialog: Line 59  class SubscribeDialog:
59    
60      def on_location_page_next(self, widget, data):      def on_location_page_next(self, widget, data):
61          url = self._subscribe_site_entry.get_text()          url = self._subscribe_site_entry.get_text()
62          if not self._feed_is_parsed:          if self._feed_url == url:
63                if self._feed_count > 1:
64                    self._find_assistant.set_page(self._multiple_feed_page)
65                else:
66                    self._find_assistant.set_page(self._last_page)
67            else:
68              rw = gtk.gdk.get_default_root_window()              rw = gtk.gdk.get_default_root_window()
69              rw.set_cursor(busy_cursor)              rw.set_cursor(busy_cursor)
70              self.find_site(url)              self.find_site(url)
71              rw.set_cursor(ready_cursor)              rw.set_cursor(ready_cursor)
72                self._feed_url = url
         if self._feed_count > 1:  
             self._find_assistant.set_page(self._multiple_feed_page)  
         else:  
             self._find_assistant.set_page(self._last_page)  
73    
74          return gtk.TRUE          return gtk.TRUE
75    
# Line 110  class SubscribeDialog: Line 111  class SubscribeDialog:
111          return          return
112    
113      def entry_delete(self):      def entry_delete(self):
         print "entry delete"  
114          text = self._subscribe_site_entry.get_text()          text = self._subscribe_site_entry.get_text()
115          if text == "" or text is None:          if text == "":
116              # FIXME: gtk.Entry.set_text("") emits a delete_text signal :(              # FIXME: gtk.Entry.set_text("") emits a delete_text signal :(
117              #self._find_assistant.set_buttons_sensitive(gtk.TRUE, gtk.FALSE, gtk.TRUE, gtk.FALSE)              #self._find_assistant.set_buttons_sensitive(gtk.TRUE, gtk.FALSE, gtk.TRUE, gtk.FALSE)
118              return              return
119    
120      def on_subscribe_site_entry_key_press_event(self, widget, event):      def on_subscribe_site_entry_key_press_event(self, widget, event):
121          self._find_assistant.set_buttons_sensitive(gtk.TRUE, gtk.TRUE, gtk.TRUE, gtk.FALSE)          self.disable_button(next=gtk.TRUE)
122          if event.keyval == gtk.keysyms.Return:          if event.keyval == gtk.keysyms.Return:
123              rw = gtk.gdk.get_default_root_window()              url = self._subscribe_site_entry.get_text()
124              rw.set_cursor(busy_cursor)              if self._feed_url == url:
125              self.find_site(self._subscribe_site_entry.get_text())                  if self._feed_count > 1:
126              rw.set_cursor(ready_cursor)                      self._find_assistant.set_page(self._multiple_feed_page)
127                    else:
128                        self._find_assistant.set_page(self._last_page)
129                else:
130                    rw = gtk.gdk.get_default_root_window()
131                    rw.set_cursor(busy_cursor)
132                    self.find_site(url)
133                    rw.set_cursor(ready_cursor)
134                    self._feed_url = url
135    
136      def on_subscribe_feed_url_entry_key_press_event(self, widget, event):              return gtk.TRUE
         if event.keyval == gtk.keysyms.Return:  
             self.find_rss()  
137    
138      def on_subscribe_dialog_delete_event(self, *args):      def on_subscribe_dialog_delete_event(self, *args):
139          self.hide()          self.hide()
140          return gtk.TRUE          return gtk.TRUE
141    
142        def disable_button(self, back=gtk.TRUE, next=gtk.TRUE, cancel=gtk.TRUE, help=gtk.TRUE ):
143            # next will be synonymous to finish
144            self._find_assistant.set_buttons_sensitive(back, next, cancel, help)
145    
146      def show(self, url):      def show(self, url):
147          self._start_page.show()          self._start_page.show()
148          self._last_page.show()          self._last_page.show()
# Line 144  class SubscribeDialog: Line 154  class SubscribeDialog:
154          self._new_feed = None          self._new_feed = None
155          self._find_assistant.set_page(self._start_page)          self._find_assistant.set_page(self._start_page)
156          self._subscribe_site_entry.set_text("")          self._subscribe_site_entry.set_text("")
157            self._feed_url = ""
158          self._feed_count = 0          self._feed_count = 0
159          self._feed_is_parsed = bool(0)          self._feed_is_parsed = bool(0)
160    
# Line 163  class SubscribeDialog: Line 174  class SubscribeDialog:
174          #self._subscribe_feed_found_url.set_text(feed.access_info[0])          #self._subscribe_feed_found_url.set_text(feed.access_info[0])
175          if feed is not None and ps is not None:          if feed is not None and ps is not None:
176              self._find_assistant.set_page(self._last_page)              self._find_assistant.set_page(self._last_page)
177              text = "Press 'Finish' if you want to subscribe to the feed below.\n\n"              text = _("Press the Apply button if you want to subscribe to the feed below.\n\n")
178              if len(feed.title):              if len(feed.title):
179                  text += "Title: %s \n" % feed.title                  text += _("Title: %s \n") % feed.title
180              if len(feed.channel_description):              if len(feed.channel_description):
181                  text += "Description: %s \n" % feed.channel_description                  text += _("Description: %s \n") % feed.channel_description
182    
183              self._last_page.set_title("Feed Found")              self._last_page.set_title(_("Feed Found"))
184              self._last_page.set_text(text)              self._last_page.set_text(text)
185    
186              self._new_feed = (feed, ps)              self._new_feed = (feed, ps)
# Line 195  class SubscribeDialog: Line 206  class SubscribeDialog:
206                        self.COLUMN_TITLE, feed.title,                        self.COLUMN_TITLE, feed.title,
207                        self.COLUMN_DESCRIPTION, feed.channel_description,                        self.COLUMN_DESCRIPTION, feed.channel_description,
208                        self.COLUMN_FEED, feed, self.COLUMN_PARSEDSUMMARY, ps)                        self.COLUMN_FEED, feed, self.COLUMN_PARSEDSUMMARY, ps)
         print "setting to multiple page"  
209          self._find_assistant.set_page(self._multiple_feed_page)          self._find_assistant.set_page(self._multiple_feed_page)
210    
211      def display_error(self, title, body):      def display_error(self, title, body):
212          self._find_assistant.set_page(self._last_page)          self._find_assistant.set_page(self._last_page)
213          self._last_page.set_title(title)          self._last_page.set_title(title)
214          self._last_page.set_text("%s" % body)          self._last_page.set_text("%s" % body)
215          self._find_assistant.set_buttons_sensitive(gtk.TRUE, gtk.FALSE, gtk.TRUE, gtk.FALSE)          self.disable_button(next=gtk.FALSE)
216          return          return
217    
218    
# Line 212  class SubscribeDialog: Line 222  class SubscribeDialog:
222          try:          try:
223              feeds = straw.rssfinder.getFeeds(site)              feeds = straw.rssfinder.getFeeds(site)
224          except IOError, e:          except IOError, e:
225              self.display_error("Cannot Find Host", ("Straw cannot find %s. Please check your connection then try again" % site))              self.display_error(_("Cannot Find Host"),(_("Straw cannot find %s. Please check your connection then try again") % site))
226              return              return
227          except Exception, e:          except Exception, e:
228              log("caught an exception: ", e)              log("caught an exception: ", e)
229              traceback.print_exc()              traceback.print_exc()
230              self.display_error("Fatal Error", "A fatal error occurred while processing this feed. Please report it to the maintainer")              self.display_error(_("Fatal Error"),_("A fatal error occurred while processing this feed. Please report it to the maintainer"))
231              return              return
232    
233          len_feeds = len(feeds)          len_feeds = len(feeds)
234          self._feed_count = int(len_feeds)          self._feed_count = int(len_feeds)
235    
236          if len_feeds < 1:          if len_feeds < 1:
237              self.display_error("Feed Not Found",("No feed was found in %s. Please make sure you typed the correct location." % site))              self.display_error(_("Feed Not Found"),(_("No feed was found in %s. Please make sure you typed the correct location.") % site))
238              return              return
239          if len_feeds == 1:          if len_feeds == 1:
240              feed = straw.Feed("temporary feed", feeds[0][0])              feed = straw.Feed("temporary feed", feeds[0][0])

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19

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