Force-hide all deleted messages before expunging. (expunged_folder):

2001-07-12  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (expunge_folder): Force-hide all deleted
	messages before expunging.
	(expunged_folder): Restore the user's "hide deleted messages"
	preference.

svn path=/trunk/; revision=11056
This commit is contained in:
Jeffrey Stedfast
2001-07-12 19:50:59 +00:00
committed by Jeffrey Stedfast
parent 459023a2b9
commit d1a65232c9
2 changed files with 49 additions and 24 deletions

View File

@ -1,3 +1,10 @@
2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (expunge_folder): Force-hide all deleted
messages before expunging.
(expunged_folder): Restore the user's "hide deleted messages"
preference.
2001-07-12 Jason Leach <jleach@ximian.com> 2001-07-12 Jason Leach <jleach@ximian.com>
* mail-callbacks.c (expunge_folder): Only blank the mail display * mail-callbacks.c (expunge_folder): Only blank the mail display
@ -18,9 +25,9 @@
2001-07-10 Federico Mena Quintero <federico@ximian.com> 2001-07-10 Federico Mena Quintero <federico@ximian.com>
* mail-display.c (link_copy_location): Set the CLIPBOARD * mail-display.c (link_copy_location): Set the CLIPBOARD selection
selection as well as the primary selection so that Edit/Paste will as well as the primary selection so that Edit/Paste will work in
work in other programs (e.g. Netscape). other programs (e.g. Netscape).
(mail_display_new): Add the target for the CLIPBOARD selection. (mail_display_new): Add the target for the CLIPBOARD selection.
2001-07-10 Jason Leach <jleach@ximian.com> 2001-07-10 Jason Leach <jleach@ximian.com>
@ -48,20 +55,23 @@
2001-07-10 Peter Williams <peterw@ximian.com> 2001-07-10 Peter Williams <peterw@ximian.com>
* mail-format.c (attachment_header): Took the logic of whether or not * mail-format.c (attachment_header): Took the logic of whether or
to make the attachment header out of the actual function. not to make the attachment header out of the actual function.
(mail_part_is_displayed_inline): Return if the part is being displayed (mail_part_is_displayed_inline): Return if the part is being
inline (regardless of whether it is actually inline). displayed inline (regardless of whether it is actually inline).
(mail_part_toggle_displayed): Toggle whether it's displayed inline or not. (mail_part_toggle_displayed): Toggle whether it's displayed inline
(get_inline_flags): Determine whether the part is displayed inline and whether or not.
it is actually inline. (get_inline_flags): Determine whether the part is displayed inline
(mail_format_mime_message): Initialize the attachment_status hash table. and whether it is actually inline.
(mail_format_mime_message): Initialize the attachment_status hash
table.
* mail-display.c (inline_cb): Instead of modifying the CamelMimePart, * mail-display.c (inline_cb): Instead of modifying the
use mail_part_toggle_displayed CamelMimePart, use mail_part_toggle_displayed
(button_press): As above. (button_press): As above.
(pixmap_press): Use mail_part_is_displayed_inline instead of (pixmap_press): Use mail_part_is_displayed_inline instead of
mail_part_is_inline. Get the MailDisplay from the popup to do this. mail_part_is_inline. Get the MailDisplay from the popup to do
this.
* mail.h: Add prototypes. * mail.h: Add prototypes.

View File

@ -1618,12 +1618,21 @@ previous_flagged_msg (GtkWidget *button, gpointer user_data)
CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED); CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED);
} }
struct _expunged_folder_data {
FolderBrowser *fb;
gboolean hidedeleted;
};
static void static void
expunged_folder (CamelFolder *f, void *data) expunged_folder (CamelFolder *f, void *data)
{ {
FolderBrowser *fb = data; FolderBrowser *fb = ((struct _expunged_folder_data *) data)->fb;
gboolean hidedeleted = ((struct _expunged_folder_data *) data)->hidedeleted;
fb->expunging = NULL; fb->expunging = NULL;
message_list_set_hidedeleted (fb->message_list, hidedeleted);
g_free (data);
} }
void void
@ -1631,11 +1640,17 @@ expunge_folder (BonoboUIComponent *uih, void *user_data, const char *path)
{ {
FolderBrowser *fb = FOLDER_BROWSER (user_data); FolderBrowser *fb = FOLDER_BROWSER (user_data);
if (fb->folder if (fb->folder && (fb->expunging == NULL || fb->folder != fb->expunging)) {
&& (fb->expunging == NULL struct _expunged_folder_data *data;
|| fb->folder != fb->expunging)) {
CamelMessageInfo *info; CamelMessageInfo *info;
data = g_malloc (sizeof (*data));
data->fb = fb;
data->hidedeleted = fb->message_list->hidedeleted;
/* hide the deleted messages so user can't click on them while we expunge */
message_list_set_hidedeleted (fb->message_list, TRUE);
/* Only blank the mail display if the message being /* Only blank the mail display if the message being
viewed is one of those to be expunged */ viewed is one of those to be expunged */
info = camel_folder_get_message_info (fb->folder, fb->loaded_uid); info = camel_folder_get_message_info (fb->folder, fb->loaded_uid);
@ -1643,7 +1658,7 @@ expunge_folder (BonoboUIComponent *uih, void *user_data, const char *path)
mail_display_set_message (fb->mail_display, NULL); mail_display_set_message (fb->mail_display, NULL);
fb->expunging = fb->folder; fb->expunging = fb->folder;
mail_expunge_folder(fb->folder, expunged_folder, fb); mail_expunge_folder (fb->folder, expunged_folder, data);
} }
} }