Searching by bookmarks
authorThomas Thurman <tthurman@gnome.org>
Sun, 30 Aug 2009 18:19:23 +0000 (14:19 -0400)
committerThomas Thurman <tthurman@gnome.org>
Sun, 30 Aug 2009 18:19:23 +0000 (14:19 -0400)
belltower.c

index 6a890b5..f09b7bf 100644 (file)
@@ -140,8 +140,6 @@ save_config (void)
 
   data = g_key_file_to_data (config, NULL, NULL);
 
-  show_message (data);
-
   if (!g_file_set_contents (CONFIG_FILENAME,
                            data,
                            -1,
@@ -465,6 +463,23 @@ get_towers_by_search_cb (tower *details,
 }
 
 static FilterResult
+get_bookmarked_towers_cb (tower *details,
+                         gpointer data)
+{
+  if (g_key_file_get_boolean (config,
+                             CONFIG_BOOKMARK_GROUP,
+                             details->fields[FieldPrimaryKey],
+                             NULL))
+    {
+      return FILTER_ACCEPT;
+    }
+  else
+    {
+      return FILTER_IGNORE;
+    }
+}
+
+static FilterResult
 single_tower_cb (tower *details,
                 gpointer data)
 {
@@ -553,7 +568,7 @@ single_tower_cb (tower *details,
                                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
                                        g_key_file_get_boolean (config,
                                                                CONFIG_BOOKMARK_GROUP,
-                                                               tower_displayed,
+                                                               details->fields[FieldPrimaryKey],
                                                                NULL)?
                                        BUTTON_BOOKMARKED_YES: BUTTON_BOOKMARKED_NO,
                                        NULL);
@@ -913,10 +928,13 @@ towers_by_area (void)
 static void
 show_bookmarks (void)
 {
-  /* well, there are currently no bookmarks,
-     because you can't set them. */
+  GSList *matches = NULL;
 
-  show_towers_from_list (NULL);
+  parse_dove (get_bookmarked_towers_cb,
+             &matches,
+             NULL);
+
+  show_towers_from_list (matches);
 }
 
 static void