From a37c1df18d7b2f2027236cafa6d8bb423b615492 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Sun, 3 Oct 2010 06:18:06 +0200 Subject: [PATCH] Simplify cookie privacy preferences Instead of choosing what cookies to accept, there is a tick box if cookies should be deleted when quitting, or in other words pretending all cookies are session cookies. The choice of maximum age was replaced with a combo box. --- midori/midori-preferences.c | 67 +++++++++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c index c24f60b9..6d9294ca 100644 --- a/midori/midori-preferences.c +++ b/midori/midori-preferences.c @@ -196,6 +196,34 @@ midori_preferences_notify_proxy_type_cb (MidoriWebSettings* settings, } #endif +static void +midori_preferences_delete_cookies_toggled_cb (GtkToggleButton* button, + MidoriWebSettings* settings) +{ + gboolean toggled = gtk_toggle_button_get_active (button); + g_object_set (settings, "accept-cookies", + toggled ? MIDORI_ACCEPT_COOKIES_SESSION : MIDORI_ACCEPT_COOKIES_ALL, NULL); +} + +static void +midori_preferences_delete_cookies_changed_cb (GtkComboBox* combo, + MidoriWebSettings* settings) +{ + gint active = gtk_combo_box_get_active (combo); + gint max_age; + switch (active) + { + case 0: max_age = 0; break; + case 1: max_age = 1; break; + case 2: max_age = 7; break; + case 3: max_age = 30; break; + case 4: max_age = 365; break; + default: + max_age = 30; + } + g_object_set (settings, "maximum-cookie-age", max_age, NULL); +} + #if HAVE_OSX static void midori_preferences_toolbutton_clicked_cb (GtkWidget* toolbutton, @@ -508,20 +536,39 @@ midori_preferences_set_settings (MidoriPreferences* preferences, entry = katze_property_proxy (settings, "preferred-languages", NULL); SPANNED_ADD (entry); - /* Page "Privacy" */ PAGE_NEW (GTK_STOCK_INDEX, _("Privacy")); FRAME_NEW (_("Web Cookies")); - label = katze_property_label (settings, "accept-cookies"); - INDENTED_ADD (label); - button = katze_property_proxy (settings, "accept-cookies", NULL); + button = gtk_check_button_new_with_mnemonic (_("Delete cookies when quitting Midori")); + INDENTED_ADD (button); + if (katze_object_get_enum (settings, "accept-cookies") == MIDORI_ACCEPT_COOKIES_SESSION) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + g_signal_connect (button, "toggled", + G_CALLBACK (midori_preferences_delete_cookies_toggled_cb), settings); + button = gtk_combo_box_new_text (); + gtk_combo_box_append_text (GTK_COMBO_BOX (button), _("Delete old cookies after 1 hour")); + gtk_combo_box_append_text (GTK_COMBO_BOX (button), _("Delete old cookies after 1 day")); + gtk_combo_box_append_text (GTK_COMBO_BOX (button), _("Delete old cookies after 1 week")); + gtk_combo_box_append_text (GTK_COMBO_BOX (button), _("Delete old cookies after 1 month")); + gtk_combo_box_append_text (GTK_COMBO_BOX (button), _("Delete old cookies after 1 year")); + { + gint max_age = katze_object_get_int (settings, "maximum-cookie-age"); + guint active; + switch (max_age) + { + case 0: active = 0; break; + case 1: active = 1; break; + case 7: active = 2; break; + case 30: active = 3; break; + case 365: active = 4; break; + default: + active = 3; + } + gtk_combo_box_set_active (GTK_COMBO_BOX (button), active); + } + g_signal_connect (button, "changed", + G_CALLBACK (midori_preferences_delete_cookies_changed_cb), settings); SPANNED_ADD (button); - label = katze_property_label (settings, "maximum-cookie-age"); - INDENTED_ADD (label); - entry = katze_property_proxy (settings, "maximum-cookie-age", NULL); - SPANNED_ADD (entry); - label = gtk_label_new (_("days")); - SPANNED_ADD (label); #if WEBKIT_CHECK_VERSION (1, 1, 8) INDENTED_ADD (katze_property_proxy (settings, "enable-html5-database", NULL)); SPANNED_ADD (katze_property_proxy (settings, "enable-html5-local-storage", NULL));