From 22d5f7f5db0da38a71d22ff058495b581e9998ad Mon Sep 17 00:00:00 2001 From: Yves Date: Mon, 4 Jan 2010 20:26:33 -0800 Subject: [PATCH] Fixed bug in unread items --- debian/changelog | 6 ++++++ src/FeedingIt.py | 22 +++++++++++++++------- src/rss.py | 10 ++++++++-- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index 360ec85..e36aaff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +feedingit (0.1.2-1) unstable; urgency=low + + * Added read/unread support + + -- Yves Sun, 03 Jan 2010 23:09:19 -0800 + feedingit (0.1.1-1) unstable; urgency=low * Adding portrait mode support / Better gtk gui diff --git a/src/FeedingIt.py b/src/FeedingIt.py index 7475f3a..184ef4e 100644 --- a/src/FeedingIt.py +++ b/src/FeedingIt.py @@ -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) diff --git a/src/rss.py b/src/rss.py index d2a347d..e094678 100644 --- a/src/rss.py +++ b/src/rss.py @@ -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() -- 1.7.9.5