Fixed hide read feeds
authorYves Marcoz <yves@marcoz.org>
Sun, 18 Jul 2010 08:04:32 +0000 (01:04 -0700)
committerYves Marcoz <yves@marcoz.org>
Sun, 18 Jul 2010 08:04:32 +0000 (01:04 -0700)
debian/changelog
src/FeedingIt.py
src/rss_sqlite.py

index 7235a43..bdedc03 100644 (file)
@@ -1,3 +1,10 @@
+feedingit (0.8.0-3) unstable; urgency=low
+
+  * Updated feed/article cell size in widget
+  * Updated hide read feed option
+
+ -- Yves <yves@marcoz.org>  Sun, 18 Jul 2010 01:40:19 -0800
+
 feedingit (0.8.0-1) unstable; urgency=low
 
   * Modified storage engine to use sqlite3
index 2e53a52..613d457 100644 (file)
@@ -708,9 +708,14 @@ class DisplayFeed(hildon.StackableWindow):
 
         #self.pannableFeed.set_property("mov-mode", hildon.MOVEMENT_MODE_BOTH)
         hideReadArticles = self.config.getHideReadArticles()
+        if hideReadArticles:
+            articles = self.feed.getIds(onlyUnread=True)
+        else:
+            articles = self.feed.getIds()
+        
         hasArticle = False
         self.current = list()
-        for id in self.feed.getIds():
+        for id in articles:
             isRead = False
             try:
                 isRead = self.feed.isEntryRead(id)
@@ -1063,8 +1068,9 @@ class FeedingIt:
                 gtk.ICON_LOOKUP_USE_BUILTIN)
 
         self.feedItems.clear()
+        hideReadFeed = self.config.getHideReadFeeds()
         order = self.config.getFeedSortOrder()
-        keys = self.listing.getSortedListOfKeys(order)
+        keys = self.listing.getSortedListOfKeys(order, onlyUnread=hideReadFeed)
 
         for key in keys:
             unreadItems = self.listing.getFeedNumberOfUnreadItems(key)
index 3fd2c4d..fb62c4f 100644 (file)
@@ -230,8 +230,11 @@ class Feed:
     def generateUniqueId(self, entry):
         return getId(str(entry["date"]) + str(entry["title"]))
     
-    def getIds(self):
-        rows = self.db.execute("SELECT id FROM feed ORDER BY date DESC;").fetchall()
+    def getIds(self, onlyUnread=False):
+        if onlyUnread:
+            rows = self.db.execute("SELECT id FROM feed where read=0 ORDER BY date DESC;").fetchall()
+        else:
+            rows = self.db.execute("SELECT id FROM feed ORDER BY date DESC;").fetchall()
         ids = []
         for row in rows:
             ids.append(row[0])
@@ -476,23 +479,26 @@ class Listing:
                 keys.append(row[0])
         return keys
     
-    def getSortedListOfKeys(self, order):
+    def getSortedListOfKeys(self, order, onlyUnread=False):
         if   order == "Most unread":
-            tmp = "ORDER BY unread"
+            tmp = "ORDER BY unread DESC"
             #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][1], reverse=True)
         elif order == "Least unread":
-            tmp = "ORDER BY unread DESC"
+            tmp = "ORDER BY unread"
             #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][1])
         elif order == "Most recent":
-            tmp = "ORDER BY updateTime"
+            tmp = "ORDER BY updateTime DESC"
             #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][2], reverse=True)
         elif order == "Least recent":
-            tmp = "ORDER BY updateTime DESC"
+            tmp = "ORDER BY updateTime"
             #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][2])
         else: # order == "Manual" or invalid value...
             tmp = "ORDER BY rank"
             #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][0])
-        sql = "SELECT id FROM feeds " + tmp
+        if onlyUnread:
+            sql = "SELECT id FROM feeds WHERE unread>0 " + tmp
+        else:
+            sql = "SELECT id FROM feeds " + tmp
         rows = self.db.execute(sql)
         keys = []
         for row in rows: