From: Thomas Thurman Date: Sun, 30 Aug 2009 17:58:07 +0000 (-0400) Subject: Bookmarks (adding, not searching) X-Git-Url: http://vcs.maemo.org/git/?p=belltower;a=commitdiff_plain;h=cb988c68d2b6355b74ed4b60b50fdda1f342300b Bookmarks (adding, not searching) --- diff --git a/belltower.c b/belltower.c index 78ed46f..6a890b5 100644 --- a/belltower.c +++ b/belltower.c @@ -18,6 +18,7 @@ #define MAX_FIELDS 50 #define CONFIG_GENERAL_GROUP "General" +#define CONFIG_BOOKMARK_GROUP "Bookmarks" #define CONFIG_SEEN_CREDITS_KEY "seen_credits" #define CONFIG_DIRECTORY "/home/user/.config/belltower" #define CONFIG_FILENAME CONFIG_DIRECTORY "/belltower.ini" @@ -139,6 +140,8 @@ save_config (void) data = g_key_file_to_data (config, NULL, NULL); + show_message (data); + if (!g_file_set_contents (CONFIG_FILENAME, data, -1, @@ -286,17 +289,54 @@ add_button (char *label, } +char *tower_displayed = NULL; +char *tower_website = NULL; +char *tower_map = NULL; +char *tower_directions = NULL; +char *peals_list = NULL; + +#define BUTTON_BOOKMARKED_YES "Remove from bookmarks" +#define BUTTON_BOOKMARKED_NO "Bookmark" + static void bookmark_toggled (GtkButton *button, gpointer dummy) { - show_message ("Bookmarks are not yet implemented."); -} + if (g_key_file_get_boolean (config, + CONFIG_BOOKMARK_GROUP, + tower_displayed, + NULL)) + { -char *tower_website = NULL; -char *tower_map = NULL; -char *tower_directions = NULL; -char *peals_list = NULL; + /* it's bookmarked; remove the bookmark */ + + if (!g_key_file_remove_key (config, + CONFIG_BOOKMARK_GROUP, + tower_displayed, + NULL)) + { + show_message ("Could not remove bookmark."); + return; + } + + save_config (); + gtk_button_set_label (button, + BUTTON_BOOKMARKED_NO); + } + else + { + /* it's not bookmarked; add a bookmark */ + + g_key_file_set_boolean (config, + CONFIG_BOOKMARK_GROUP, + tower_displayed, + TRUE); + + save_config (); + gtk_button_set_label (button, + BUTTON_BOOKMARKED_YES); + } +} static void show_tower_website (void) @@ -511,7 +551,12 @@ single_tower_cb (tower *details, /* don't use a toggle button: it looks stupid */ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL, - "Bookmark", NULL); + g_key_file_get_boolean (config, + CONFIG_BOOKMARK_GROUP, + tower_displayed, + NULL)? + BUTTON_BOOKMARKED_YES: BUTTON_BOOKMARKED_NO, + NULL); g_signal_connect (button, "clicked", G_CALLBACK (bookmark_toggled), NULL); gtk_box_pack_start (GTK_BOX (buttons), button, FALSE, FALSE, 0); @@ -532,6 +577,9 @@ single_tower_cb (tower *details, tower_map = g_strdup_printf ("http://maps.google.com/maps?q=%s,%s", details->fields[FieldLat], details->fields[FieldLong]); + g_free (tower_displayed); + tower_displayed = g_strdup (details->fields[FieldPrimaryKey]); + gtk_widget_show_all (GTK_WIDGET (tower_window)); return FILTER_STOP;