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

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

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

revision 1.36 by juri, Fri Nov 7 16:39:27 2003 UTC revision 1.37 by juri, Sat Nov 8 14:46:07 2003 UTC
# Line 63  class Main: Line 63  class Main:
63    
64          straw.main_window = straw.MainWindow(          straw.main_window = straw.MainWindow(
65              glade.XML(xmlfile, "straw_main", gettext.textdomain()))              glade.XML(xmlfile, "straw_main", gettext.textdomain()))
66          self.update_feeds(config.feeds)          feedlist = straw.FeedList.get_instance()
67          config.signal_connect(          feedlist.load_data()
68            self.update_feeds(feedlist)
69            feedlist.signal_connect(
70              straw.FeedsChangedSignal, self.feeds_changed)              straw.FeedsChangedSignal, self.feeds_changed)
71          self._itemstore = straw.ItemStore()          self._itemstore = straw.ItemStore()
72          self.restore_feeds(self._itemstore)          self.restore_feeds(self._itemstore)
# Line 100  class Main: Line 102  class Main:
102              locale.setlocale(locale.LC_ALL)              locale.setlocale(locale.LC_ALL)
103    
104      def restore_feeds(self, itemstore):      def restore_feeds(self, itemstore):
105          for f in straw.Config.get_instance().feeds:          feedlist = straw.FeedList.get_instance()
106            for f in feedlist:
107              f.restore_items(itemstore.read_feed_items(f))              f.restore_items(itemstore.read_feed_items(f))
108    
109      # called when FeedsChangedSignal is sent      # called when FeedsChangedSignal is sent
110      def feeds_changed(self, signal):      def feeds_changed(self, signal):
111          self.update_feeds(signal.sender.feeds)          self.update_feeds(signal.sender)
112          return          return
113    
114      def update_feeds(self, feeds):      def update_feeds(self, feeds):
115          straw.main_window.display_feeds(straw.Config.get_instance().feeds, self._visible_feed)          straw.main_window.display_feeds(straw.FeedList.get_instance(), self._visible_feed)
116          return          return
117    
118      def display_feeds(self):      def display_feeds(self):
119          straw.main_window.display_feeds(straw.Config.get_instance().feeds, self._visible_feed)          straw.main_window.display_feeds(straw.FeedList.get_instance(), self._visible_feed)
120          return          return
121    
122      def get_visible_feed(self):      def get_visible_feed(self):
# Line 152  class Main: Line 155  class Main:
155              straw.dashboardfe.item_changed(item)              straw.dashboardfe.item_changed(item)
156    
157      def get_next_item(self, item = None):      def get_next_item(self, item = None):
158          config = straw.Config.get_instance()          feeds = straw.FeedList.get_instance()
159          if item is None:          if item is None:
160              item = self._visible_item              item = self._visible_item
161          if item is None:          if item is None:
162              if not len(config.feeds):              if not len(feeds):
163                  return None                  return None
164              feed = config.feeds[0]              feed = feeds[0]
165              return feed.get_first_item()              return feed.get_first_item()
166          feed = item.feed          feed = item.feed
167          ni = feed.get_next_item(item)          ni = feed.get_next_item(item)
168          if ni is not None:          if ni is not None:
169              return ni              return ni
170          else:          else:
171              feed_idx = config.feeds.index(feed)              feed_idx = feeds.index(feed)
172              fi = 1              fi = 1
173              while fi <= len(config.feeds):              while fi <= len(feeds):
174                  item = config.feeds[                  item = feeds[
175                      (feed_idx + fi) % len(config.feeds)].get_first_item()                      (feed_idx + fi) % len(feeds)].get_first_item()
176                  if item is not None:                  if item is not None:
177                      return item                      return item
178                  fi += 1                  fi += 1
# Line 200  class Main: Line 203  class Main:
203              self.display_item_unselected(item)              self.display_item_unselected(item)
204    
205      def get_previous_item(self, item = None):      def get_previous_item(self, item = None):
206          config = straw.Config.get_instance()          feeds = straw.FeedList.get_instance()
207          if item is None:          if item is None:
208              item = self._visible_item              item = self._visible_item
209          if item is None:          if item is None:
210              if not len(config.feeds):              if not len(feeds):
211                  return None                  return None
212              feed = config.feeds[-1]              feed = feeds[-1]
213              return feed.get_last_item()              return feed.get_last_item()
214          feed = item.feed          feed = item.feed
215          ni = feed.get_previous_item(item)          ni = feed.get_previous_item(item)
216          if ni is not None:          if ni is not None:
217              return ni              return ni
218          else:          else:
219              feed_idx = config.feeds.index(feed)              feed_idx = feeds.index(feed)
220              fd = 1              fd = 1
221              while fd <= len(config.feeds):              while fd <= len(feeds):
222                  item = config.feeds[                  item = feeds[
223                      (feed_idx - fd) % len(config.feeds)].get_last_item()                      (feed_idx - fd) % len(feeds)].get_last_item()
224                  if item is not None:                  if item is not None:
225                      return item                      return item
226                  fd += 1                  fd += 1
# Line 227  class Main: Line 230  class Main:
230          self.display_item_unselected(self.get_previous_item(item))          self.display_item_unselected(self.get_previous_item(item))
231    
232      def get_next_feed(self, item = None):      def get_next_feed(self, item = None):
233          config = straw.Config.get_instance()          feeds = straw.FeedList.get_instance()
234          feed = None          feed = None
235          if item is None:          if item is None:
236              item = self._visible_item              item = self._visible_item
237          if item is None:          if item is None:
238              if len(config.feeds):              if len(feeds):
239                  feed = config.feeds[0]                  feed = feeds[0]
240          else:          else:
241              feed = item.feed              feed = item.feed
242              feed_idx = config.feeds.index(feed)              feed_idx = feeds.index(feed)
243              if feed_idx < len(config.feeds) - 1:              if feed_idx < len(feeds) - 1:
244                  feed_idx += 1                  feed_idx += 1
245              else:              else:
246                  feed_idx = 0                  feed_idx = 0
247              feed = config.feeds[feed_idx]              feed = feeds[feed_idx]
248          return feed          return feed
249    
250      def display_next_unread_feed(self, item = None):      def display_next_unread_feed(self, item = None):
# Line 259  class Main: Line 262  class Main:
262              self.display_item_unselected(item)              self.display_item_unselected(item)
263    
264      def get_previous_feed(self, item = None):      def get_previous_feed(self, item = None):
265          config = straw.Config.get_instance()          feeds = straw.FeedList.get_instance()
266          feed = None          feed = None
267          if item is None:          if item is None:
268              item = self._visible_item              item = self._visible_item
269          if item is None:          if item is None:
270              if len(config.feeds):              if len(feeds):
271                  feed = config.feeds[0]                  feed = feeds[0]
272          else:          else:
273              feed = item.feed              feed = item.feed
274              feed_idx = config.feeds.index(feed)              feed_idx = feeds.index(feed)
275              if feed_idx > 0:              if feed_idx > 0:
276                  feed_idx -= 1                  feed_idx -= 1
277              else:              else:
278                  feed_idx = len(config.feeds) - 1                  feed_idx = len(feeds) - 1
279              feed = config.feeds[feed_idx]              feed = feeds[feed_idx]
280          return feed          return feed
281    
282      def display_previous_feed(self, item = None):      def display_previous_feed(self, item = None):
# Line 331  class Main: Line 334  class Main:
334      def import_opml(self, filename):      def import_opml(self, filename):
335          opml = straw.OPMLImport.read(open(filename))          opml = straw.OPMLImport.read(open(filename))
336          if opml is not None:          if opml is not None:
337              config = straw.Config.get_instance()              feeds = straw.FeedList.get_instance()
338              current_feeds = {}              current_feeds = {}
339              for feed in config.feeds:              for feed in feeds:
340                  current_feeds[feed.access_info[0]] = 1                  current_feeds[feed.access_info[0]] = 1
341              for b in opml:              for b in opml:
342                  if current_feeds.has_key(b.xmlurl):                  if current_feeds.has_key(b.xmlurl):
343                      continue                      continue
344                  if b.type == "rss":                  if b.type == "rss":
345                      config.feeds.append(                      feeds.append(
346                          straw.create_new_feed(b.title, b.xmlurl))                          straw.create_new_feed(b.title, b.xmlurl))
347                  else:                  else:
348                      error = 1                      error = 1

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37

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