[PATCH] Deleting messages



This is a rework of a patch I submitted a few weeks ago, to give the 
user more control over deleting messages. It provides two new options 
(in Settings->Preferences->Misc):

  - delete immediately and irretrievably: if this is selected, Balsa has
    the current behavior; if not, deleted messages are left in the
    mailbox message list until either the mailbox is closed or changes
    are committed.

  - hide deleted messages: when deleted messages are left in the mailbox
    index (marked with the trashcan icon), it can get cluttered; when
    this option is set, Balsa leaves them out of the displayed mailbox
    index, without permanently deleting them.

Comments and suggestions?

diff -u -r1.38 balsa.sgml
--- help/C/balsa.sgml	2001/12/06 22:51:11	1.38
+++ help/C/balsa.sgml	2002/01/16 08:52:52
@@ -2564,6 +2564,51 @@
   </listitem>
 </varlistentry>
 
+<varlistentry>
+  <term><guilabel>Automatically close mailbox</guilabel></term>
+  <listitem>
+    <para>&Balsa; can close mailboxes for you after the specified time.</para>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term><guilabel>Drag-and-drop moves messages by default</guilabel></term>
+  <listitem>
+    <para>When you drag and drop a message to a destination mailbox, it
+    may be moved (not leaving a copy in the source mailbox) or copied.
+    This option sets the default action; use the Control key when
+    dragging to have the opposite effect.</para>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term><guilabel>Delete immediately</guilabel></term> <listitem>
+    <para>When you delete a message or messages, &Balsa; can either
+      delete them immediately, or flag them as deleted and actually delete
+      them later. If they are flagged as deleted, you can then go back
+      and Undelete them if you change your mind. Messages flagged as
+      deleted are removed when you close the mailbox or when you commit
+      changes.</para>
+    <para>This option has no effect on trashing messages by moving
+      them to the Trash folder;
+      a message may always be retrieved from the Trash,
+      until the Trash folder is emptied.</para>
+    <para>You should be aware that &Balsa; <emphasis>moves</emphasis>
+      a message from one mailbox to another by first making a copy
+      in the new mailbox, and then deleting the original.
+      This option affects the handling of such a deleted message,
+      as well as messages that you delete explicitly.</para>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term><guilabel>Hide deleted messages</guilabel></term> <listitem>
+  <para>When &Balsa; is not deleting messages immediately, you can use
+    this option to control whether deleted messages are shown in the
+    mailbox index.</para>
+  </listitem>
+</varlistentry>
+
 </variablelist>
 </sect1>
 
Index: libbalsa/mailbox.c
===================================================================
RCS file: /cvs/gnome/balsa/libbalsa/mailbox.c,v
retrieving revision 1.187
diff -u -r1.187 mailbox.c
--- libbalsa/mailbox.c	2002/01/12 23:06:26	1.187
+++ libbalsa/mailbox.c	2002/01/16 08:52:53
@@ -598,19 +598,19 @@
 {
     msg->mailbox = mailbox;
     
-    gtk_signal_connect(GTK_OBJECT(msg), "clear-flags",
+    gtk_signal_connect_after(GTK_OBJECT(msg), "clear-flags",
                        GTK_SIGNAL_FUNC(message_status_changed_cb),
                        mailbox);
-    gtk_signal_connect(GTK_OBJECT(msg), "set-answered",
+    gtk_signal_connect_after(GTK_OBJECT(msg), "set-answered",
                        GTK_SIGNAL_FUNC(message_status_changed_cb),
                        mailbox);
-    gtk_signal_connect(GTK_OBJECT(msg), "set-read",
+    gtk_signal_connect_after(GTK_OBJECT(msg), "set-read",
                        GTK_SIGNAL_FUNC(message_status_changed_cb),
                        mailbox);
-    gtk_signal_connect(GTK_OBJECT(msg), "set-deleted",
+    gtk_signal_connect_after(GTK_OBJECT(msg), "set-deleted",
                        GTK_SIGNAL_FUNC(message_status_changed_cb),
                        mailbox);
-    gtk_signal_connect(GTK_OBJECT(msg), "set-flagged",
+    gtk_signal_connect_after(GTK_OBJECT(msg), "set-flagged",
                        GTK_SIGNAL_FUNC(message_status_changed_cb),
                        mailbox);
 
@@ -647,8 +647,14 @@
     for (msgno = mailbox->messages; mailbox->new_messages > 0; msgno++) {
 	cur = CLIENT_CONTEXT(mailbox)->hdrs[msgno];
 
-	if (!(cur && cur->env && cur->content && !cur->deleted))
+	if (!(cur && cur->env && cur->content)) {
+            /* we'd better decrement mailbox->new_messages, in case this
+             * defective message was included in the count; otherwise,
+             * we'll increment msgno too far, and try to access an
+             * invalid header */
+            mailbox->new_messages--;
 	    continue;
+        }
 
 	if (cur->env->subject &&
 	    !strcmp(cur->env->subject,
@@ -733,6 +739,8 @@
 	return FALSE;
 
     LOCK_MAILBOX_RETURN_VAL(mailbox, FALSE);
+    /* really delete messages before committing: */
+    libbalsa_mailbox_sync_backend_real(mailbox);
     libbalsa_lock_mutt();
     index_hint = CLIENT_CONTEXT(mailbox)->vcount;
     rc = mx_sync_mailbox(CLIENT_CONTEXT(mailbox), &index_hint);
Index: libbalsa/mailbox_imap.c
===================================================================
RCS file: /cvs/gnome/balsa/libbalsa/mailbox_imap.c,v
retrieving revision 1.52
diff -u -r1.52 mailbox_imap.c
--- libbalsa/mailbox_imap.c	2002/01/07 10:22:28	1.52
+++ libbalsa/mailbox_imap.c	2002/01/16 08:52:53
@@ -637,8 +637,7 @@
 	mailbox->messages = 0;
 	mailbox->total_messages = 0;
 	mailbox->unread_messages = 0;
-	mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount
-	- CLIENT_CONTEXT(mailbox)->deleted;
+	mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount;
         LIBBALSA_MAILBOX_IMAP(mailbox)->uid_validity = 
             ((IMAP_DATA*)CLIENT_CONTEXT(mailbox)->data)->uid_validity;
 	if(mailbox->open_ref == 0)
Index: libbalsa/mailbox_local.c
===================================================================
RCS file: /cvs/gnome/balsa/libbalsa/mailbox_local.c,v
retrieving revision 1.36
diff -u -r1.36 mailbox_local.c
--- libbalsa/mailbox_local.c	2002/01/05 12:48:30	1.36
+++ libbalsa/mailbox_local.c	2002/01/16 08:52:53
@@ -270,8 +270,7 @@
     mailbox->messages = 0;
     mailbox->total_messages = 0;
     mailbox->unread_messages = 0;
-    mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount
-	- CLIENT_CONTEXT(mailbox)->deleted;
+    mailbox->new_messages = CLIENT_CONTEXT(mailbox)->msgcount;
     mailbox->open_ref++;
     UNLOCK_MAILBOX(mailbox);
     gdk_threads_enter();
Index: src/balsa-app.h
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-app.h,v
retrieving revision 1.165
diff -u -r1.165 balsa-app.h
--- src/balsa-app.h	2002/01/08 23:09:35	1.165
+++ src/balsa-app.h	2002/01/16 08:52:54
@@ -353,6 +353,8 @@
 
     GList *folder_mru;
     gint drag_default_is_move;
+    gboolean delete_immediately;
+    gboolean hide_deleted;
 
 } balsa_app;
 
Index: src/balsa-index.c
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-index.c,v
retrieving revision 1.220
diff -u -r1.220 balsa-index.c
--- src/balsa-index.c	2002/01/05 12:48:33	1.220
+++ src/balsa-index.c	2002/01/16 08:52:54
@@ -705,6 +705,11 @@
 
     g_return_if_fail(bindex != NULL);
     g_return_if_fail(message != NULL);
+
+    if (balsa_app.hide_deleted 
+        && message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+        return;
+
     mailbox = bindex->mailbox_node->mailbox;
     
     if (mailbox == NULL)
@@ -1111,6 +1116,7 @@
                            struct BalsaIndexScanInfo *b)
 {
     GList *list;
+    LibBalsaMessage *message;
 
     for (list = b->selection; list; list = g_list_next(list)) {
         if (list->data == node) {
@@ -1126,6 +1132,11 @@
     }
 
     /* this node isn't selected */
+    message = LIBBALSA_MESSAGE(gtk_ctree_node_get_row_data(ctree, node));
+    /* skip any DELETED message, as it may really be deleted before we
+     * get a chance to show it */
+    if (message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+        return;
 
     if (b->next == NULL)
         /* save it whether or not it's viewable */
@@ -1223,6 +1234,12 @@
 
     ctree = bindex->ctree;
 
+    if (balsa_app.hide_deleted
+        && message->flags & LIBBALSA_MESSAGE_FLAG_DELETED){
+        gtk_ctree_remove_node(ctree, node);
+        return;
+    }
+
     for(tmp=0; tmp<ELEMENTS(flags) && !(message->flags & flags[tmp].mask);
         tmp++);
     if(tmp<ELEMENTS(flags))
@@ -1795,7 +1812,8 @@
 
         /* sync with backend AFTER adjacent message is selected.
          * Update the style and message counts in the mailbox list */
-        libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
+        if (balsa_app.delete_immediately)
+            libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
         balsa_mblist_update_mailbox(balsa_app.mblist,
                                     index->mailbox_node->mailbox);
         // balsa_index_redraw_current(index);
@@ -1836,13 +1854,6 @@
 	libbalsa_message_delete(message, FALSE);
 	list = list->next;
     }
-
-/* XXX - Not sure this is relevant - this function apparently clears
- * the 'Status: D' flag, but doesn't appear to move messages around.
- */
-    enable_empty_trash(TRASH_CHECK);
-
-    balsa_index_select_next(index);
 }
 
 gint
@@ -1903,7 +1914,8 @@
         (*cb) (message, new_flag);
     }
     gtk_clist_thaw(GTK_CLIST(balsa_app.mblist));
-    libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
+    if (balsa_app.delete_immediately)
+        libbalsa_mailbox_sync_backend(index->mailbox_node->mailbox);
 }
 
 /* This function toggles the FLAGGED attribute of a list of messages
@@ -2071,6 +2083,9 @@
     GtkRequisition req;
     LibBalsaMailbox* mailbox;
     unsigned i;
+    GList *list;
+    gboolean any_deleted = FALSE;
+    gboolean any_not_deleted = FALSE;
  
     BALSA_DEBUG();
     mailbox = bindex->mailbox_node->mailbox;
@@ -2081,14 +2096,27 @@
         create_stock_menu_item(menu, entries[i].icon, _(entries[i].label),
                                entries[i].func, bindex, TRUE);
 
-    create_stock_menu_item(menu, GNOME_STOCK_MENU_TRASH,
-			   _("Delete"), balsa_message_delete, bindex,
-			   !mailbox->readonly);
-    if (mailbox == balsa_app.trash) {
+    for (list = GTK_CLIST(bindex->ctree)->selection; list;
+         list = g_list_next(list)) {
+        LibBalsaMessage *message =
+            LIBBALSA_MESSAGE(gtk_ctree_node_get_row_data
+                             (GTK_CTREE(bindex->ctree), list->data));
+        if (message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+            any_deleted = TRUE;
+        else
+            any_not_deleted = TRUE;
+    }
+    if (any_not_deleted) {
+        create_stock_menu_item(menu, GNOME_STOCK_MENU_TRASH,
+                               _("Delete"), balsa_message_delete, bindex,
+                               !mailbox->readonly);
+    }
+    if (any_deleted) {
 	create_stock_menu_item(menu, GNOME_STOCK_MENU_UNDELETE,
 			       _("Undelete"), balsa_message_undelete,
 			       bindex, !mailbox->readonly);
-    } else {
+    }
+    if (mailbox != balsa_app.trash) {
 	create_stock_menu_item(menu, GNOME_STOCK_MENU_TRASH,
 			       _("Move To Trash"), balsa_message_move_to_trash,
 			       bindex, !mailbox->readonly);
@@ -2231,7 +2259,8 @@
     /* select another message depending on where we are in the list */
     balsa_index_select_next_threaded(bindex);
 
-    libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
+    if (balsa_app.delete_immediately)
+        libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
 
     if (mailbox == balsa_app.trash) {
 	enable_empty_trash(TRASH_FULL);
@@ -2607,4 +2636,38 @@
     if (ret)
         handler.id = 0;
     return ret;
+}
+
+/* balsa_index_hide_deleted:
+ * called from pref manager when balsa_app.hide_deleted is changed.
+ */
+void
+balsa_index_hide_deleted(gboolean hide)
+{
+    gint i;
+    GtkWidget *page;
+
+    for (i = 0; (page =
+                 gtk_notebook_get_nth_page(GTK_NOTEBOOK
+                                           (balsa_app.notebook),
+                                           i)) != NULL; ++i) {
+        LibBalsaMailbox *mailbox =
+            BALSA_INDEX(page)->mailbox_node->mailbox;
+        GList *list;
+        GList *messages = NULL;
+
+        for (list = mailbox->message_list; list; list = g_list_next(list)) {
+            LibBalsaMessage *message = LIBBALSA_MESSAGE(list->data);
+
+            if (message->flags & LIBBALSA_MESSAGE_FLAG_DELETED)
+                messages = g_list_prepend(messages, message);
+        }
+
+        if (hide)
+            mailbox_messages_delete_cb(BALSA_INDEX(page), messages);
+        else
+            mailbox_messages_new_cb(BALSA_INDEX(page), messages);
+
+        g_list_free(messages);
+    }
 }
Index: src/balsa-index.h
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-index.h,v
retrieving revision 1.42
diff -u -r1.42 balsa-index.h
--- src/balsa-index.h	2001/11/25 22:42:13	1.42
+++ src/balsa-index.h	2002/01/16 08:52:55
@@ -141,6 +141,11 @@
 				   gint, gpointer);
     void balsa_index_refresh_size (GtkNotebook *, GtkNotebookPage *,
 				   gint, gpointer);
+
+    /* Change the display of all indexes when balsa_app.hide_deleted is
+     * changed */
+    void balsa_index_hide_deleted(gboolean hide);
+
 #ifdef __cplusplus
 }
 #endif				/* __cplusplus */
Index: src/balsa-mblist.c
===================================================================
RCS file: /cvs/gnome/balsa/src/balsa-mblist.c,v
retrieving revision 1.131
diff -u -r1.131 balsa-mblist.c
--- src/balsa-mblist.c	2001/12/19 13:16:37	1.131
+++ src/balsa-mblist.c	2002/01/16 08:52:55
@@ -1542,7 +1542,8 @@
                 break;
             }
 
-            libbalsa_mailbox_sync_backend (orig_mailbox);
+            if (balsa_app.delete_immediately)
+                libbalsa_mailbox_sync_backend (orig_mailbox);
 	    balsa_mblist_update_mailbox(balsa_app.mblist, mailbox);
 
 	    if (mailbox == balsa_app.trash) {
Index: src/main-window.c
===================================================================
RCS file: /cvs/gnome/balsa/src/main-window.c,v
retrieving revision 1.442
diff -u -r1.442 main-window.c
--- src/main-window.c	2002/01/05 12:48:32	1.442
+++ src/main-window.c	2002/01/16 08:52:56
@@ -3164,7 +3164,8 @@
             break;
         }
         
-        libbalsa_mailbox_sync_backend (orig_mailbox);
+        if (balsa_app.delete_immediately)
+            libbalsa_mailbox_sync_backend (orig_mailbox);
         balsa_mblist_update_mailbox(balsa_app.mblist, orig_mailbox);
 
         if (mailbox == balsa_app.trash) {
Index: src/message-window.c
===================================================================
RCS file: /cvs/gnome/balsa/src/message-window.c,v
retrieving revision 1.40
diff -u -r1.40 message-window.c
--- src/message-window.c	2001/11/04 13:15:38	1.40
+++ src/message-window.c	2002/01/16 08:52:56
@@ -773,7 +773,8 @@
     if(bindex != NULL && bindex->ctree != NULL) {
 	/* select another message depending on where we are in the list */
 	balsa_index_select_next_threaded(bindex);
-	libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
+	if (balsa_app.delete_immediately)
+            libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
     }
     
     balsa_remove_from_folder_mru(mbnode->mailbox->url);
@@ -862,7 +863,8 @@
     if(bindex != NULL && bindex->ctree != NULL) {
 	/* select another message depending on where we are in the list */
 	balsa_index_select_next_threaded(bindex);
-	libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
+	if (balsa_app.delete_immediately)
+            libbalsa_mailbox_sync_backend(bindex->mailbox_node->mailbox);
     }
     
     balsa_remove_from_folder_mru(mailbox->url);
Index: src/pref-manager.c
===================================================================
RCS file: /cvs/gnome/balsa/src/pref-manager.c,v
retrieving revision 1.187
diff -u -r1.187 pref-manager.c
--- src/pref-manager.c	2002/01/08 23:09:35	1.187
+++ src/pref-manager.c	2002/01/16 08:52:57
@@ -1,5 +1,4 @@
 /* -*-mode:c; c-style:k&r; c-basic-offset:4; -*- */
-/* vim:set ts=4 sw=4 ai et: */
 /* Balsa E-Mail Client
  * Copyright (C) 1997-2001 Stuart Parmenter and others,
  *                         See the file AUTHORS for a list.
@@ -70,8 +69,10 @@
     GtkWidget *mdn_reply_clean_menu, *mdn_reply_notclean_menu;
 
     GtkWidget *close_mailbox_auto;
-    GtkWidget *drag_default_is_move;
     GtkWidget *close_mailbox_minutes;
+    GtkWidget *drag_default_is_move;
+    GtkWidget *delete_immediately;
+    GtkWidget *hide_deleted;
 
     GtkWidget *previewpane;
     GtkWidget *alternative_layout;
@@ -386,11 +387,16 @@
     gtk_signal_connect(GTK_OBJECT(pui->close_mailbox_auto), "toggled",
 		       GTK_SIGNAL_FUNC(mailbox_timer_modified_cb), property_box);
 
+    gtk_signal_connect(GTK_OBJECT(pui->close_mailbox_minutes), "changed",
+		       GTK_SIGNAL_FUNC(mailbox_timer_modified_cb), property_box);
+
     gtk_signal_connect(GTK_OBJECT(pui->drag_default_is_move), "toggled",
 		       GTK_SIGNAL_FUNC(properties_modified_cb), property_box);
 
-    gtk_signal_connect(GTK_OBJECT(pui->close_mailbox_minutes), "changed",
-		       GTK_SIGNAL_FUNC(mailbox_timer_modified_cb), property_box);
+    gtk_signal_connect(GTK_OBJECT(pui->delete_immediately), "toggled",
+		       GTK_SIGNAL_FUNC(properties_modified_cb), property_box);
+    gtk_signal_connect(GTK_OBJECT(pui->hide_deleted), "toggled",
+		       GTK_SIGNAL_FUNC(properties_modified_cb), property_box);
 
     gtk_signal_connect(GTK_OBJECT(pui->browse_wrap), "toggled",
 		       GTK_SIGNAL_FUNC(browse_modified_cb), property_box);
@@ -660,11 +666,23 @@
 
     balsa_app.close_mailbox_auto =
 	GTK_TOGGLE_BUTTON(pui->close_mailbox_auto)->active;
-    balsa_app.drag_default_is_move =
-	GTK_TOGGLE_BUTTON(pui->drag_default_is_move)->active;
     balsa_app.close_mailbox_timeout =
 	gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON
 					 (pui->close_mailbox_minutes));
+    balsa_app.drag_default_is_move =
+	GTK_TOGGLE_BUTTON(pui->drag_default_is_move)->active;
+    balsa_app.delete_immediately =
+        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON
+                                     (pui->delete_immediately));
+    {
+        gboolean hide =
+            gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON
+                                         (pui->hide_deleted));
+        if (balsa_app.hide_deleted != hide) {
+            balsa_app.hide_deleted = hide;
+            balsa_index_hide_deleted(hide);
+        }
+    }
 
     /* external editor */
     g_free(balsa_app.extern_editor_command);
@@ -898,11 +916,18 @@
 
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pui->close_mailbox_auto),
 				 balsa_app.close_mailbox_auto);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pui->drag_default_is_move),
-				 balsa_app.drag_default_is_move);
     gtk_spin_button_set_value(GTK_SPIN_BUTTON(pui->close_mailbox_minutes),
 			      (float) balsa_app.close_mailbox_timeout);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pui->drag_default_is_move),
+				 balsa_app.drag_default_is_move);
 
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (pui->delete_immediately),
+                                 balsa_app.delete_immediately);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (pui->hide_deleted),
+                                 balsa_app.hide_deleted);
+
     gtk_widget_set_sensitive(pui->close_mailbox_minutes,
 			     GTK_TOGGLE_BUTTON(pui->close_mailbox_auto)->
     		    	    active);
@@ -2167,6 +2192,27 @@
     gtk_widget_show(pui->drag_default_is_move);
     gtk_box_pack_start(GTK_BOX(vbox10), pui->drag_default_is_move, 
 		       FALSE, FALSE, 0);
+
+    {
+        GtkWidget *frame = gtk_frame_new(_("Deleting Messages"));
+        GtkWidget *vbox = vbox_in_container(frame);
+
+        gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
+        gtk_box_pack_start(GTK_BOX(vbox9), frame, FALSE, FALSE, 0);
+
+        pui->delete_immediately =
+            gtk_check_button_new_with_label(_("Delete immediately "
+                                              "and irretrievably"));
+        gtk_box_pack_start(GTK_BOX(vbox), pui->delete_immediately, FALSE,
+                           FALSE, 0);
+
+        pui->hide_deleted =
+            gtk_check_button_new_with_label(_("Hide deleted messages"));
+        gtk_box_pack_start(GTK_BOX(vbox), pui->hide_deleted, FALSE,
+                           FALSE, 0);
+
+        gtk_widget_show_all(frame);
+    }
 
     return vbox9;
 }
Index: src/save-restore.c
===================================================================
RCS file: /cvs/gnome/balsa/src/save-restore.c,v
retrieving revision 1.226
diff -u -r1.226 save-restore.c
--- src/save-restore.c	2002/01/08 23:09:35	1.226
+++ src/save-restore.c	2002/01/16 08:52:58
@@ -614,6 +614,10 @@
     /* ... Progress Window Dialog */
     balsa_app.pwindow_option = d_get_gint("ProgressWindow", WHILERETR);
     balsa_app.drag_default_is_move = d_get_gint("DragDefaultIsMove", 0);
+    balsa_app.delete_immediately =
+        gnome_config_get_bool("DeleteImmediately=false");
+    balsa_app.hide_deleted =
+        gnome_config_get_bool("HideDeleted=false");
 
     gnome_config_pop_prefix();
 
@@ -902,6 +906,10 @@
     gnome_config_set_bool("PageDownMod", balsa_app.pgdownmod);
     gnome_config_set_int("PageDownPercent", balsa_app.pgdown_percent);
     gnome_config_set_int("DragDefaultIsMove", balsa_app.drag_default_is_move);
+    gnome_config_set_bool("DeleteImmediately",
+                          balsa_app.delete_immediately);
+    gnome_config_set_bool("HideDeleted",
+                          balsa_app.hide_deleted);
 
     gnome_config_pop_prefix();
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]