diff --git a/midori/main.c b/midori/main.c index be99b4b8..bae48102 100644 --- a/midori/main.c +++ b/midori/main.c @@ -712,6 +712,104 @@ midori_browser_show_preferences_cb (MidoriBrowser* browser, gtk_box_pack_start (GTK_BOX (page), scrolled, TRUE, TRUE, 4); } +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); +} + +static void +midori_browser_privacy_preferences_cb (MidoriBrowser* browser, + KatzePreferences* preferences, + MidoriApp* app) +{ + MidoriWebSettings* settings = midori_browser_get_settings (browser); + GtkWidget* button; + GtkWidget* label; + gint max_age = katze_object_get_int (settings, "maximum-cookie-age"); + guint active; + gchar* markup; + + katze_preferences_add_category (preferences, _("Privacy"), GTK_STOCK_INDEX); + katze_preferences_add_group (preferences, _("Web Cookies")); + button = gtk_check_button_new_with_mnemonic (_("Delete cookies when quitting Midori")); + katze_preferences_add_widget (preferences, button, "indented"); + 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")); + + 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); + katze_preferences_add_widget (preferences, button, "spanned"); + + markup = g_strdup_printf ("%s", + _("Cookies store login data, saved games, " + "or user profiles for advertisement purposes.")); + label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + katze_preferences_add_widget (preferences, label, "filled"); + #if WEBKIT_CHECK_VERSION (1, 1, 13) + button = katze_property_proxy (settings, "enable-offline-web-application-cache", NULL); + katze_preferences_add_widget (preferences, button, "indented"); + #endif + #if WEBKIT_CHECK_VERSION (1, 1, 8) + button = katze_property_proxy (settings, "enable-html5-local-storage", NULL); + katze_preferences_add_widget (preferences, button, "spanned"); + #if !WEBKIT_CHECK_VERSION (1, 1, 14) + button = katze_property_proxy (settings, "enable-html5-database", NULL); + katze_preferences_add_widget (preferences, button, "indented"); + #endif + #endif + katze_preferences_add_group (preferences, _("History")); + button = katze_property_label (settings, "maximum-history-age"); + katze_preferences_add_widget (preferences, button, "indented"); + button = katze_property_proxy (settings, "maximum-history-age", NULL); + katze_preferences_add_widget (preferences, button, "spanned"); + label = gtk_label_new (_("days")); + katze_preferences_add_widget (preferences, label, "spanned"); +} + static void midori_app_add_browser_cb (MidoriApp* app, MidoriBrowser* browser, @@ -740,6 +838,8 @@ midori_app_add_browser_cb (MidoriApp* app, #endif /* Extensions */ + g_signal_connect (browser, "show-preferences", + G_CALLBACK (midori_browser_privacy_preferences_cb), app); g_signal_connect (browser, "show-preferences", G_CALLBACK (midori_browser_show_preferences_cb), app); diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c index 04e44769..c62a75bf 100644 --- a/midori/midori-preferences.c +++ b/midori/midori-preferences.c @@ -197,34 +197,6 @@ 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, @@ -496,63 +468,4 @@ midori_preferences_set_settings (MidoriPreferences* preferences, entry = katze_property_proxy (settings, "news-aggregator", "application-News"); SPANNED_ADD (entry); #endif - - /* Page "Privacy" */ - PAGE_NEW (GTK_STOCK_INDEX, _("Privacy")); - FRAME_NEW (_("Web Cookies")); - 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); - { - gchar* markup = g_strdup_printf ("%s", - _("Cookies store login data, saved games, " - "or user profiles for advertisement purposes.")); - label = gtk_label_new (NULL); - gtk_label_set_markup (GTK_LABEL (label), markup); - g_free (markup); - } - FILLED_ADD (label); - #if WEBKIT_CHECK_VERSION (1, 1, 13) - INDENTED_ADD (katze_property_proxy (settings, "enable-offline-web-application-cache", NULL)); - #endif - #if WEBKIT_CHECK_VERSION (1, 1, 8) - SPANNED_ADD (katze_property_proxy (settings, "enable-html5-local-storage", NULL)); - #if !WEBKIT_CHECK_VERSION (1, 1, 14) - INDENTED_ADD (katze_property_proxy (settings, "enable-html5-database", NULL)); - #endif - #endif - FRAME_NEW (_("History")); - button = katze_property_label (settings, "maximum-history-age"); - INDENTED_ADD (button); - button = katze_property_proxy (settings, "maximum-history-age", NULL); - SPANNED_ADD (button); - label = gtk_label_new (_("days")); - SPANNED_ADD (label); }