Fixed bug in unread items
authorYves <ymarcoz@n900-sdk.(none)>
Tue, 5 Jan 2010 04:26:33 +0000 (20:26 -0800)
committerYves <ymarcoz@n900-sdk.(none)>
Tue, 5 Jan 2010 04:26:33 +0000 (20:26 -0800)
debian/changelog
src/FeedingIt.py
src/rss.py

index 360ec85..e36aaff 100644 (file)
@@ -1,3 +1,9 @@
+feedingit (0.1.2-1) unstable; urgency=low
+
+  * Added read/unread support
+  
+ -- Yves <yves@marcoz.org>  Sun, 03 Jan 2010 23:09:19 -0800
+
 feedingit (0.1.1-1) unstable; urgency=low
 
   * Adding portrait mode support / Better gtk gui
index 7475f3a..184ef4e 100644 (file)
@@ -125,7 +125,6 @@ class DisplayArticle(hildon.StackableWindow):
         
         self.document.connect("link_clicked", self._signal_link_clicked)
         self.document.connect("request-url", self._signal_request_url)
-        #self.document.connect("ReloadArticle", self.reloadArticle)
         self.connect("destroy", self.destroyWindow)
         
     def destroyWindow(self, *args):
@@ -159,6 +158,10 @@ class DisplayFeed(hildon.StackableWindow):
         button.set_label("Update Feed")
         button.connect("clicked", self.button_update_clicked)
         menu.append(button)
+        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        button.set_label("Mark All As Read")
+        button.connect("clicked", self.buttonReadAllClicked)
+        menu.append(button)
         self.set_app_menu(menu)
         menu.show_all()
         
@@ -167,8 +170,6 @@ class DisplayFeed(hildon.StackableWindow):
         self.connect("destroy", self.destroyWindow)
         
     def destroyWindow(self, *args):
-        for index in range(self.feed.getNumberOfEntries()):
-            self.feed.setEntryRead(index)
         self.feed.saveFeed()
         self.emit("feed-closed", self.key)
         self.destroy()
@@ -184,9 +185,9 @@ class DisplayFeed(hildon.StackableWindow):
             button.set_alignment(0,0)
             label = button.child
             if self.feed.isEntryRead(index):
-                label.modify_font(pango.FontDescription("sans 18"))
+                label.modify_font(pango.FontDescription("sans 16"))
             else:
-                label.modify_font(pango.FontDescription("sans bold 18"))
+                label.modify_font(pango.FontDescription("sans bold 16"))
             label.set_line_wrap(True)
             
             label.set_size_request(self.get_size()[0]-50, -1)
@@ -208,13 +209,20 @@ class DisplayFeed(hildon.StackableWindow):
         
     def onArticleClosed(self, object, index):
         label = self.buttons[index].child
-        label.modify_font(pango.FontDescription("sans 18"))
+        label.modify_font(pango.FontDescription("sans 16"))
         self.buttons[index].show()
 
     def button_update_clicked(self, button):
         self.listing.getFeed(key).updateFeed()
         self.clear()
         self.displayFeed(key)
+        
+    def buttonReadAllClicked(self, button):
+        for index in range(self.feed.getNumberOfEntries()):
+            self.feed.setEntryRead(index)
+            label = self.buttons[index].child
+            label.modify_font(pango.FontDescription("sans 16"))
+            self.buttons[index].show()
 
 
 class FeedingIt:
@@ -325,7 +333,7 @@ class FeedingIt:
             button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT,
                               hildon.BUTTON_ARRANGEMENT_VERTICAL)
             button.set_text(self.listing.getFeedTitle(key), self.listing.getFeedUpdateTime(key) + " / " 
-                            + str(self.listing.getFeedNumberOfUnreadItems(key)) + " Unread Items")
+                            + str(self.listing.getFeedNumberOfUnreadItems(key)) + " Unread Items / " + str(self.listing.getFeed(key).getNumberOfEntries()))
             button.set_alignment(0,0,1,1)
             button.connect("clicked", self.buttonFeedClicked, self, self.window, key)
             self.vboxListing.pack_start(button, expand=False)
index d2a347d..e094678 100644 (file)
@@ -55,13 +55,19 @@ class Feed:
         tmp=feedparser.parse(self.url)
         # Check if the parse was succesful (number of entries > 0, else do nothing)
         if len(tmp["entries"])>0:
+           self.tmpReadItems = self.readItems
+           self.readItems = {}
            self.updateTime = time.asctime()
            self.entries = tmp["entries"]
+           self.countUnread = 0
            # Initialize the new articles to unread
            for index in range(self.getNumberOfEntries()):
-               if not self.readItems.has_key(self.getTitle(index)):
-                   self.countUnread = self.countUnread + 1
+               if not self.tmpReadItems.has_key(self.getTitle(index)):
                    self.readItems[self.getTitle(index)] = False
+               else:
+                   self.readItems[self.getTitle(index)] = self.tmpReadItems[self.getTitle(index)]
+               if self.readItems[self.getTitle(index)]==False:
+                  self.countUnread = self.countUnread + 1
            del tmp
            self.saveFeed()