From ff347335436c929c79e893c181ecdddbbdce305b Mon Sep 17 00:00:00 2001 From: Javier Fernandez Garcia-Boente Date: Mon, 2 Jul 2007 08:33:26 +0000 Subject: [PATCH] * Fixes some bugs in modest-ui-actions, related with mail operation IDs. * Add a tree_model_filter_refilter call after remove_message mail operation. pmo-trunk-r2521 --- src/maemo/modest-main-window.c | 88 ++++++++++++++++++++-------------------- src/modest-ui-actions.c | 34 ++++++++++------ 2 files changed, 66 insertions(+), 56 deletions(-) diff --git a/src/maemo/modest-main-window.c b/src/maemo/modest-main-window.c index 36237be..bfab9c1 100644 --- a/src/maemo/modest-main-window.c +++ b/src/maemo/modest-main-window.c @@ -1786,64 +1786,64 @@ set_toolbar_mode (ModestMainWindow *self, /* Show and hide toolbar items */ switch (mode) { case TOOLBAR_MODE_NORMAL: -/* if (sort_action) */ -/* gtk_action_set_visible (sort_action, TRUE); */ -/* if (refresh_action) */ -/* gtk_action_set_visible (refresh_action, TRUE); */ -/* if (priv->progress_toolitem) { */ -/* gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), FALSE); */ -/* gtk_widget_hide (priv->progress_toolitem); */ -/* } */ -/* if (priv->progress_bar) */ -/* gtk_widget_hide (priv->progress_bar); */ - -/* if (cancel_action) */ -/* gtk_action_set_visible (cancel_action, FALSE); */ - if (priv->sort_toolitem) - gtk_widget_show (priv->sort_toolitem); - - if (priv->refresh_toolitem) - gtk_widget_show (priv->refresh_toolitem); - - if (priv->progress_toolitem) + if (sort_action) + gtk_action_set_visible (sort_action, TRUE); + if (refresh_action) + gtk_action_set_visible (refresh_action, TRUE); + if (priv->progress_toolitem) { gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), FALSE); + gtk_widget_hide (priv->progress_toolitem); + } if (priv->progress_bar) gtk_widget_hide (priv->progress_bar); + + if (cancel_action) + gtk_action_set_visible (cancel_action, FALSE); +/* if (priv->sort_toolitem) */ +/* gtk_widget_show (priv->sort_toolitem); */ + +/* if (priv->refresh_toolitem) */ +/* gtk_widget_show (priv->refresh_toolitem); */ + +/* if (priv->progress_toolitem) */ +/* gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), FALSE); */ +/* if (priv->progress_bar) */ +/* gtk_widget_hide (priv->progress_bar); */ - if (priv->cancel_toolitem) - gtk_widget_hide (priv->cancel_toolitem); +/* if (priv->cancel_toolitem) */ +/* gtk_widget_hide (priv->cancel_toolitem); */ /* Hide toolbar if optimized view is enabled */ if (priv->optimized_view) gtk_widget_hide (GTK_WIDGET(parent_priv->toolbar)); break; case TOOLBAR_MODE_TRANSFER: -/* if (sort_action) */ -/* gtk_action_set_visible (sort_action, FALSE); */ -/* if (refresh_action) */ -/* gtk_action_set_visible (refresh_action, FALSE); */ -/* if (cancel_action) */ -/* gtk_action_set_visible (cancel_action, TRUE); */ -/* if (priv->progress_toolitem) { */ -/* gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), TRUE); */ -/* gtk_widget_show (priv->progress_toolitem); */ -/* } */ -/* if (priv->progress_bar) */ -/* gtk_widget_show (priv->progress_bar); */ - - if (priv->sort_toolitem) - gtk_widget_hide (priv->sort_toolitem); - - if (priv->refresh_toolitem) - gtk_widget_hide (priv->refresh_toolitem); - - if (priv->progress_toolitem) + if (sort_action) + gtk_action_set_visible (sort_action, FALSE); + if (refresh_action) + gtk_action_set_visible (refresh_action, FALSE); + if (cancel_action) + gtk_action_set_visible (cancel_action, TRUE); + if (priv->progress_toolitem) { gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), TRUE); + gtk_widget_show (priv->progress_toolitem); + } if (priv->progress_bar) gtk_widget_show (priv->progress_bar); + +/* if (priv->sort_toolitem) */ +/* gtk_widget_hide (priv->sort_toolitem); */ + +/* if (priv->refresh_toolitem) */ +/* gtk_widget_hide (priv->refresh_toolitem); */ + +/* if (priv->progress_toolitem) */ +/* gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), TRUE); */ +/* if (priv->progress_bar) */ +/* gtk_widget_show (priv->progress_bar); */ - if (priv->cancel_toolitem) - gtk_widget_show (priv->cancel_toolitem); +/* if (priv->cancel_toolitem) */ +/* gtk_widget_show (priv->cancel_toolitem); */ /* Show toolbar if it's hiden (optimized view ) */ if (priv->optimized_view) diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 4d1cd29..97a3de7 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -242,6 +242,7 @@ headers_action_delete (TnyHeader *header, gpointer user_data) { ModestMailOperation *mail_op = NULL; + GtkTreeModel *model = NULL; mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_DELETE, G_OBJECT(win)); modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), @@ -250,6 +251,12 @@ headers_action_delete (TnyHeader *header, /* Always delete. TODO: Move to trash still not supported */ modest_mail_operation_remove_msg (mail_op, header, FALSE); g_object_unref (G_OBJECT (mail_op)); + + /* refilter treemodel to hide marked-as-deleted rows */ + if (MODEST_IS_HEADER_VIEW (user_data)) { + model = gtk_tree_view_get_model (GTK_TREE_VIEW (user_data)); + gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (model)); + } } void @@ -266,15 +273,15 @@ modest_ui_actions_on_delete (GtkAction *action, ModestWindow *win) GtkWidget *header_view; g_return_if_fail (MODEST_IS_WINDOW(win)); - + header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win), + MODEST_WIDGET_TYPE_HEADER_VIEW); + /* Check first if the header view has the focus */ if (MODEST_IS_MAIN_WINDOW (win)) { - header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win), - MODEST_WIDGET_TYPE_HEADER_VIEW); if (!gtk_widget_is_focus (header_view)) return; } - + header_list = get_selected_headers (win); if (!header_list) return; @@ -328,7 +335,7 @@ modest_ui_actions_on_delete (GtkAction *action, ModestWindow *win) } /* Remove each header */ - do_headers_action (win, headers_action_delete, NULL); + do_headers_action (win, headers_action_delete, header_view); if (MODEST_IS_MSG_VIEW_WINDOW (win)) { gtk_widget_destroy (GTK_WIDGET(win)); @@ -792,7 +799,7 @@ _modest_ui_actions_open (TnyList *headers, ModestWindow *win) /* Open each cached message */ if (tny_list_get_length (not_opened_cached_headers) > 0) { - mail_op2 = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_OPEN, + mail_op2 = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT (win), modest_ui_actions_get_msgs_full_error_handler, NULL); @@ -1205,8 +1212,7 @@ modest_ui_actions_do_send_receive (const gchar *account_name, ModestWindow *win) /* Set send/receive operation in progress */ modest_main_window_notify_send_receive_initied (MODEST_MAIN_WINDOW(win)); -/* mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(win)); */ - mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_OPEN, + mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT (win), modest_ui_actions_send_receive_error_handler, NULL); @@ -2948,9 +2954,13 @@ modest_ui_actions_send_receive_error_handler (ModestMailOperation *mail_op, g_printerr ("modest: unkonw error on sedn&receive operation"); /* Show error message */ - modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL, - _CS("sfil_ib_unable_to_send")); -/* g_object_unref (win); */ + if (modest_mail_operation_get_id (mail_op) == MODEST_MAIL_OPERATION_TYPE_RECEIVE) + modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL, + _CS("sfil_ib_unable_to_receive")); + else + modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL, + _CS("sfil_ib_unable_to_send")); + g_object_unref (win); } static void @@ -3064,7 +3074,7 @@ modest_ui_actions_on_main_window_remove_attachments (GtkAction *action, } else { ModestMailOperation *mail_op = NULL; modest_window_mgr_register_header (modest_runtime_get_window_mgr (), header); - mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_OPEN, + mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT (win), modest_ui_actions_get_msgs_full_error_handler, NULL); -- 1.7.9.5