X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=0bab679d52866c253458b0c0d7d80627dde4da63;hp=171644109e995388f840e5d45398c31e93732350;hb=89e6b2e07630f0a135113c3f69e1185a2154c29c;hpb=ab74ab8f422de49c6cc87f52874b307903b91bde diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 1716441..0bab679 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -143,11 +143,6 @@ static gboolean download_uncached_messages (TnyList *header_list, GtkWindow *win); -/* static gint msgs_move_to_confirmation (GtkWindow *win, */ -/* TnyFolder *dest_folder, */ -/* gboolean delete, */ -/* TnyList *headers); */ - /* Show the account creation wizard dialog. * returns: TRUE if an account was created. FALSE if the user cancelled. @@ -320,14 +315,32 @@ void modest_do_message_delete (TnyHeader *header, ModestWindow *win) g_object_unref (G_OBJECT (mail_op)); } -static void -headers_action_delete (TnyHeader *header, - ModestWindow *win, - gpointer user_data) +/** A convenience method, because deleting a message is + * otherwise complicated, and it's best to change it in one place + * when we change it. + */ +void modest_do_messages_delete (TnyList *headers, ModestWindow *win) { - modest_do_message_delete (header, win); + ModestMailOperation *mail_op = NULL; + mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_DELETE, + win ? G_OBJECT(win) : NULL); + modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), + mail_op); + + /* Always delete. TODO: Move to trash still not supported */ + modest_mail_operation_remove_msgs (mail_op, headers, FALSE); + g_object_unref (G_OBJECT (mail_op)); } +/* static void */ +/* headers_action_delete (TnyHeader *header, */ +/* ModestWindow *win, */ +/* gpointer user_data) */ +/* { */ +/* modest_do_message_delete (header, win); */ + +/* } */ + /** After deleing a message that is currently visible in a window, * show the next message from the list, or close the window if there are no more messages. **/ @@ -432,7 +445,6 @@ modest_ui_actions_on_delete_message (GtkAction *action, ModestWindow *win) GList *sel_list = NULL, *tmp = NULL; GtkTreeRowReference *row_reference = NULL; GtkTreePath *next_path = NULL; - TnyFolder *folder = NULL; GError *err = NULL; /* Find last selected row */ @@ -450,11 +462,21 @@ modest_ui_actions_on_delete_message (GtkAction *action, ModestWindow *win) } } + /* Disable window dimming management */ + modest_window_disable_dimming (MODEST_WINDOW(win)); + /* Remove each header. If it's a view window header_view == NULL */ - do_headers_action (win, headers_action_delete, header_view); +/* do_headers_action (win, headers_action_delete, header_view); */ + modest_do_messages_delete (header_list, win); + - /* refresh the header view (removing marked-as-deleted)*/ - modest_header_view_refilter (MODEST_HEADER_VIEW(header_view)); + /* Enable window dimming management */ + gtk_tree_selection_unselect_all (sel); + modest_window_enable_dimming (MODEST_WINDOW(win)); + + /* FIXME: May be folder_monitor will also refilter treemode on EXPUNGE changes ? */ + /* refresh the header view (removing marked-as-deleted) */ +/* modest_header_view_refilter (MODEST_HEADER_VIEW(header_view)); */ if (MODEST_IS_MSG_VIEW_WINDOW (win)) { modest_ui_actions_refresh_message_window_after_delete (MODEST_MSG_VIEW_WINDOW (win)); @@ -477,29 +499,10 @@ modest_ui_actions_on_delete_message (GtkAction *action, ModestWindow *win) gtk_tree_row_reference_free (row_reference); } - /* Get folder from first header and sync it */ - iter = tny_list_create_iterator (header_list); - header = TNY_HEADER (tny_iterator_get_current (iter)); - folder = tny_header_get_folder (header); - if (TNY_IS_CAMEL_IMAP_FOLDER (folder)) -/* tny_folder_sync_async(folder, FALSE, NULL, NULL, NULL); /\* FALSE --> don't expunge *\/ */ - tny_folder_sync (folder, FALSE, &err); /* FALSE --> don't expunge */ - else if (TNY_IS_CAMEL_POP_FOLDER (folder)) -/* tny_folder_sync_async(folder, FALSE, NULL, NULL, NULL); /\* TRUE --> dont expunge *\/ */ - tny_folder_sync (folder, TRUE, &err); /* TRUE --> expunge */ - else - /* local folders */ -/* tny_folder_sync_async(folder, TRUE, NULL, NULL, NULL); /\* TRUE --> expunge *\/ */ - tny_folder_sync (folder, TRUE, &err); /* TRUE --> expunge */ - if (err != NULL) { printf ("DEBUG: %s: Error: code=%d, text=%s\n", __FUNCTION__, err->code, err->message); g_error_free(err); } - - g_object_unref (header); - g_object_unref (iter); - g_object_unref (folder); /* Update toolbar dimming state */ modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window)); @@ -1834,7 +1837,7 @@ folder_refreshed_cb (ModestMailOperation *mail_op, folder_empty = folder_empty || all_marked_as_deleted ; if (folder_empty) { - printf ("DEBUG: %s: tny_folder_get_all_count() returned 0.\n", __FUNCTION__); + printf ("DEBUG: %s: tny_folder_get_all_count() returned 0.\n", __FUNCTION__); modest_main_window_set_contents_style (win, MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY); } else { @@ -2120,8 +2123,6 @@ modest_ui_actions_on_send (GtkWidget *widget, ModestMsgEditWindow *edit_window) gchar *from = modest_account_mgr_get_from_string (account_mgr, account_name); -/* modest_platform_information_banner (NULL, NULL, _("mcen_ib_outbox_waiting_to_be_sent")); */ - /* Create the mail operation */ ModestMailOperation *mail_operation = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_SEND, G_OBJECT(edit_window)); modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_operation); @@ -3110,16 +3111,25 @@ modest_ui_actions_on_select_all (GtkAction *action, GtkWidget *header_view = focused_widget; GtkTreeSelection *selection = NULL; - if (!(MODEST_IS_HEADER_VIEW (focused_widget))) + if (!(MODEST_IS_HEADER_VIEW (focused_widget))) { header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (window), MODEST_WIDGET_TYPE_HEADER_VIEW); + } + /* Disable window dimming management */ + modest_window_disable_dimming (MODEST_WINDOW(window)); + /* Select all messages */ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(header_view)); gtk_tree_selection_select_all (selection); /* Set focuse on header view */ gtk_widget_grab_focus (header_view); + + + /* Enable window dimming management */ + modest_window_enable_dimming (MODEST_WINDOW(window)); + modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (window)); } }