r2642 - in trunk/src/target/OM-2007.2/applications/openmoko-feedreader2: . src

zecke at sita.openmoko.org zecke at sita.openmoko.org
Mon Aug 6 00:50:05 CEST 2007


Author: zecke
Date: 2007-08-06 00:50:00 +0200 (Mon, 06 Aug 2007)
New Revision: 2642

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-data.c
Log:
2007-08-06  Holger Hans Peter Freyther  <zecke at selfish.org>

        Remove old feed posts from the model only once the new posts
        were fetched and parsed.

        * src/feed-data.c:
        (remove_old_items):
        (feed_update_thread):
        (feed_data_update_all):



Modified: trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog	2007-08-05 21:44:33 UTC (rev 2641)
+++ trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog	2007-08-05 22:50:00 UTC (rev 2642)
@@ -1,3 +1,13 @@
+2007-08-06  Holger Hans Peter Freyther  <zecke at selfish.org>
+
+        Remove old feed posts from the model only once the new posts
+        were fetched and parsed.
+
+        * src/feed-data.c:
+        (remove_old_items):
+        (feed_update_thread):
+        (feed_data_update_all):
+
 2007-08-05  Holger Hans Peter Freyther  <zecke at selfish.org>
 
         Implement category filtering (and made sure it compiles). Feature wise

Modified: trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-data.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-data.c	2007-08-05 21:44:33 UTC (rev 2641)
+++ trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-data.c	2007-08-05 22:50:00 UTC (rev 2642)
@@ -111,6 +111,28 @@
 }
 
 /*
+ * remove all entries with this category
+ */
+static void
+remove_old_items (FeedData *data, const gchar* delete_category)
+{
+    gdk_threads_enter();
+
+    GtkTreeIter iter;
+    gboolean valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (data), &iter);
+    while (valid) {
+        gchar *category;
+        gtk_tree_model_get (GTK_TREE_MODEL (data), &iter, RSS_READER_COLUMN_CATEGORY, &category, -1);
+        if (category && strcmp(category, delete_category) == 0)
+            valid = gtk_list_store_remove (GTK_LIST_STORE (data), &iter);
+        else
+            valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (data), &iter);
+    }
+
+    gdk_threads_leave();
+}
+
+/*
  * Add items from rss_data to the GtkListStore/FeedData
  */
 static void
@@ -223,6 +245,7 @@
         /*
          * create the new item(s)
          */
+        remove_old_items (data, category);
         add_mrss_item (data, rss_data, url, category);
 
         /*
@@ -322,8 +345,6 @@
 void
 feed_data_update_all (FeedData* data)
 {
-    gtk_list_store_clear (GTK_LIST_STORE (data));
-
     GError *error = NULL;
     (void)g_thread_create( (GThreadFunc)feed_update_thread, data, FALSE, &error );
 





More information about the commitlog mailing list