Handle multiple deletes (change by Peter Williams.)

2000-06-29  Christopher James Lahey  <clahey@helixcode.com>

	* mail-ops.c: Handle multiple deletes (change by Peter Williams.)

svn path=/trunk/; revision=3809
This commit is contained in:
Christopher James Lahey
2000-06-29 21:31:44 +00:00
committed by Chris Lahey
parent c216b49da2
commit 5ca5da26b5
2 changed files with 31 additions and 17 deletions

View File

@ -1,3 +1,7 @@
2000-06-29 Christopher James Lahey <clahey@helixcode.com>
* mail-ops.c: Handle multiple deletes (change by Peter Williams.)
2000-06-29 Jeffrey Stedfast <fejj@helixcode.com>
* folder-browser-factory.c: Changed "Send" to "Compose" to

View File

@ -64,6 +64,9 @@ typedef struct rsm_s {
gboolean ok;
} rsm_t;
static void
real_delete_msg( int model_row, gpointer user_data );
static void
real_fetch_mail( gpointer user_data );
@ -610,27 +613,23 @@ forward_msg (GtkWidget *button, gpointer user_data)
gtk_widget_show (GTK_WIDGET (composer));
}
void
delete_msg (GtkWidget *button, gpointer user_data)
static void
real_delete_msg( int model_row, gpointer user_data )
{
FolderBrowser *fb = user_data;
MessageList *ml = fb->message_list;
CamelMessageInfo *info;
CamelException ex;
guint32 flags;
if (!fb->mail_display->current_message)
return;
camel_exception_init (&ex);
flags = camel_folder_get_message_flags (fb->folder, ml->selected_uid,
&ex);
if (!camel_exception_is_set (&ex)) {
/* Toggle the deleted flag without touching other flags. */
camel_folder_set_message_flags (fb->folder, ml->selected_uid,
CAMEL_MESSAGE_DELETED,
~flags, &ex);
}
g_assert( model_row < ml->summary_table->len );
info = ml->summary_table->pdata[model_row];
/* Toggle the deleted flag without touching other flags. */
camel_folder_set_message_flags (fb->folder, info->uid,
CAMEL_MESSAGE_DELETED,
~(info->flags), &ex);
if (camel_exception_is_set (&ex)) {
mail_exception_dialog ("Could not toggle deleted flag",
@ -639,10 +638,21 @@ delete_msg (GtkWidget *button, gpointer user_data)
return;
}
}
void
delete_msg (GtkWidget *button, gpointer user_data)
{
FolderBrowser *fb = user_data;
MessageList *ml = fb->message_list;
int cursor = e_table_get_cursor_row(ml->etable);
e_table_selected_row_foreach( ml->etable, real_delete_msg, fb );
/* Move the cursor down a row... FIXME: should skip other
* deleted messages.
* deleted messages. FIXME: this implementation is a bit
* questionable
*/
e_table_set_cursor_row (E_TABLE (ml->etable), ml->selected_row + 1);
e_table_set_cursor_row (E_TABLE (ml->etable), cursor + 1);
}
static void real_expunge_folder( gpointer user_data )