]> spindle.queued.net Git - midori/commitdiff
Add 'Last open tabs' option to Clear Private Data
authorChristian Dywan <christian@twotoasts.de>
Sun, 24 Jul 2011 19:41:47 +0000 (21:41 +0200)
committerChristian Dywan <christian@twotoasts.de>
Sun, 24 Jul 2011 19:41:47 +0000 (21:41 +0200)
Fixes: https://bugs.launchpad.net/midori/+bug/814739
midori/main.c
midori/midori-browser.c
midori/midori-websettings.h

index ba0b04b668bac126a9db32f9808ce27a826152f5..3afa9c2eb9bd0200e9b5c65dc863507619a3a0f2 100644 (file)
@@ -2571,6 +2571,7 @@ main (int    argc,
         GList* data_items = sokoke_register_privacy_item (NULL, NULL, NULL);
         gchar* clear_data = katze_object_get_string (settings, "clear-data");
 
+        midori_remove_config_file (clear_prefs, MIDORI_CLEAR_SESSION, "session.xbel");
         midori_remove_config_file (clear_prefs, MIDORI_CLEAR_HISTORY, "history.db");
         midori_remove_config_file (clear_prefs, MIDORI_CLEAR_TRASH, "tabtrash.xbel");
 
index fe95d9ece2cce619ffc63a621c6e223b8c4c1049..aafa450f8b23b11c7c51a813676cc343aecdbf99 100644 (file)
@@ -4293,6 +4293,15 @@ midori_browser_clear_private_data_response_cb (GtkWidget*     dialog,
         GString* clear_data = g_string_new (NULL);
         g_object_get (browser->settings, "clear-private-data", &saved_prefs, NULL);
 
+        button = g_object_get_data (G_OBJECT (dialog), "session");
+        if (gtk_toggle_button_get_active (button))
+        {
+            GList* tabs = gtk_container_get_children (GTK_CONTAINER (browser->notebook));
+            for (; tabs != NULL; tabs = g_list_next (tabs))
+                gtk_widget_destroy (tabs->data);
+            g_list_free (tabs);
+            clear_prefs |= MIDORI_CLEAR_SESSION;
+        }
         button = g_object_get_data (G_OBJECT (dialog), "history");
         if (gtk_toggle_button_get_active (button))
         {
@@ -4394,6 +4403,11 @@ _action_clear_private_data_activate (GtkAction*     action,
         vbox = gtk_vbox_new (TRUE, 4);
         alignment = gtk_alignment_new (0, 0, 1, 1);
         gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 6, 12, 0);
+        button = gtk_check_button_new_with_mnemonic (_("Last open _tabs"));
+        if ((clear_prefs & MIDORI_CLEAR_SESSION) == MIDORI_CLEAR_SESSION)
+            gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
+        g_object_set_data (G_OBJECT (dialog), "session", button);
+        gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
         /* i18n: Browsing history, visited web pages */
         button = gtk_check_button_new_with_mnemonic (_("_History"));
         if ((clear_prefs & MIDORI_CLEAR_HISTORY) == MIDORI_CLEAR_HISTORY)
index f35a12c8b40d0375a04371f27f3aaf300b498753..180942576edfa3b020abdaf790e61d9e5139d8c6 100644 (file)
@@ -44,6 +44,7 @@ enum
     MIDORI_CLEAR_TRASH = 16,
     MIDORI_CLEAR_ON_QUIT = 32,
     MIDORI_CLEAR_WEB_CACHE = 64, /* deprecated */
+    MIDORI_CLEAR_SESSION = 128,
 };
 
 typedef enum