X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=2c7e70a26c480d7c9e8a35cc3d13fc3ebfc2e509;hb=53ab62ff00918879c9a64dc54d1221310b2017ad;hp=df8fd8bdccc99b8658373988cd0ada5e2036b482;hpb=5f177809566702383a927c41ef000d93bde99727;p=modest diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index df8fd8b..2c7e70a 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -240,13 +240,16 @@ modest_ui_actions_run_account_setup_wizard (ModestWindow *win) window_list = modest_window_mgr_get_window_list (mgr); if (window_list == NULL) { win = MODEST_WINDOW (modest_accounts_window_new ()); - modest_window_mgr_register_window (mgr, win, NULL); - gtk_widget_show_all (GTK_WIDGET (win)); + if (modest_window_mgr_register_window (mgr, win, NULL)) + gtk_widget_show_all (GTK_WIDGET (win)); + else + gtk_widget_destroy (GTK_WIDGET (win)); win = MODEST_WINDOW (modest_folder_window_new (NULL)); - modest_window_mgr_register_window (mgr, win, NULL); - - gtk_widget_show_all (GTK_WIDGET (win)); + if (modest_window_mgr_register_window (mgr, win, NULL)) + gtk_widget_show_all (GTK_WIDGET (win)); + else + gtk_widget_destroy (GTK_WIDGET (win)); } else { g_list_free (window_list); } @@ -918,7 +921,7 @@ modest_ui_actions_msg_retrieval_check (ModestMailOperation *mail_op, proto = modest_tny_account_get_protocol_type (account); protocol = modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (), proto); if (protocol) - format = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_MSG_NOT_AVAILABLE); + format = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_MSG_NOT_AVAILABLE, subject); g_object_unref (account); } @@ -1195,7 +1198,7 @@ check_memory_full_error (GtkWidget *parent_window, GError *err) else if (err->code == TNY_SYSTEM_ERROR_MEMORY) /* If the account was created in memory full conditions then tinymail won't be able to - connect so it'll return this error code */ + connect so it'll return this error code */ modest_platform_information_banner (parent_window, NULL, _("emev_ui_imap_inbox_select_error")); else @@ -3458,7 +3461,7 @@ modest_ui_actions_rename_folder_error_handler (ModestMailOperation *mail_op, message is opened for example */ message = _("emev_ni_internal_error"); } else { - message = _CS("ckdg_ib_unable_to_remove"); + message = _CS("ckdg_ib_unable_to_rename"); } /* We don't set a parent for the dialog because the dialog @@ -3510,7 +3513,7 @@ on_rename_folder_performer (gboolean canceled, check_memory_full_error ((GtkWidget *) parent_window, err); } else { - mail_op = + mail_op = modest_mail_operation_new_with_error_handling (G_OBJECT(parent_window), modest_ui_actions_rename_folder_error_handler, parent_window, NULL); @@ -3523,13 +3526,17 @@ on_rename_folder_performer (gboolean canceled, folder_view = modest_main_window_get_child_widget ( MODEST_MAIN_WINDOW (parent_window), MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW); - - /* Clear the headers view */ - sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view)); - gtk_tree_selection_unselect_all (sel); - } else { - folder_view = NULL; + } +#ifdef MODEST_TOOLKIT_HILDON2 + else if (MODEST_IS_FOLDER_WINDOW (parent_window)) { + ModestFolderWindow *folder_window = (ModestFolderWindow *) parent_window; + folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (folder_window)); } +#endif + + /* Clear the folders view */ + sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view)); + gtk_tree_selection_unselect_all (sel); /* Actually rename the folder */ modest_mail_operation_rename_folder (mail_op, @@ -3537,10 +3544,10 @@ on_rename_folder_performer (gboolean canceled, (const gchar *) (data->new_name), on_rename_folder_cb, folder_view); - g_object_unref (data->folder); g_object_unref (mail_op); } + g_object_unref (data->folder); g_free (data->new_name); g_free (data); } @@ -3703,6 +3710,9 @@ delete_folder (ModestWindow *window, gboolean move_to_trash) folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view)); + if (!folder) + return FALSE; + /* Show an error if it's an account */ if (!TNY_IS_FOLDER (folder)) { modest_platform_run_information_dialog (GTK_WINDOW (window), @@ -3712,7 +3722,7 @@ delete_folder (ModestWindow *window, gboolean move_to_trash) return FALSE; } - /* Ask the user */ + /* Ask the user */ message = g_strdup_printf (_("mcen_nc_delete_folder_text"), tny_folder_get_name (TNY_FOLDER (folder))); response = modest_platform_run_confirmation_dialog (GTK_WINDOW (window), @@ -4519,7 +4529,7 @@ modest_ui_actions_on_change_fullscreen (GtkAction *action, * Used by modest_ui_actions_on_details to call do_headers_action */ static void -headers_action_show_details (TnyHeader *header, +headers_action_show_details (TnyHeader *header, ModestWindow *window, gpointer user_data) @@ -4530,36 +4540,24 @@ headers_action_show_details (TnyHeader *header, /* * Show the header details in a ModestDetailsDialog widget */ -void -modest_ui_actions_on_details (GtkAction *action, +void +modest_ui_actions_on_details (GtkAction *action, ModestWindow *win) { - TnyList * headers_list; - TnyIterator *iter; - TnyHeader *header; - if (MODEST_IS_MSG_VIEW_WINDOW (win)) { TnyMsg *msg; + TnyHeader *header; msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW (win)); if (!msg) return; - g_object_unref (msg); - headers_list = get_selected_headers (win); - if (!headers_list) - return; - - iter = tny_list_create_iterator (headers_list); - - header = TNY_HEADER (tny_iterator_get_current (iter)); + header = tny_msg_get_header (msg); if (header) { headers_action_show_details (header, win, NULL); g_object_unref (header); } - - g_object_unref (iter); - g_object_unref (headers_list); + g_object_unref (msg); } else if (MODEST_IS_MAIN_WINDOW (win)) { GtkWidget *folder_view, *header_view; @@ -4866,7 +4864,7 @@ on_move_to_dialog_response (GtkDialog *dialog, TnyFolderStore *dst_folder; case MODEST_GTK_RESPONSE_NEW_FOLDER: - modest_ui_actions_create_folder (GTK_WIDGET (parent_win), folder_view); + modest_ui_actions_create_folder (GTK_WIDGET (dialog), folder_view); return; case GTK_RESPONSE_NONE: case GTK_RESPONSE_CANCEL: @@ -5322,7 +5320,7 @@ modest_ui_actions_on_main_window_remove_attachments (GtkAction *action, * Checks if we need a connection to do the transfer and if the user * wants to connect to complete it */ -void +static void modest_ui_actions_xfer_messages_check (GtkWindow *parent_window, TnyFolderStore *src_folder, TnyList *headers, @@ -5334,8 +5332,6 @@ modest_ui_actions_xfer_messages_check (GtkWindow *parent_window, TnyAccount *src_account; gint uncached_msgs = 0; - uncached_msgs = header_list_count_uncached_msgs (headers); - /* We don't need any further check if * * 1- the source folder is local OR @@ -5357,6 +5353,7 @@ modest_ui_actions_xfer_messages_check (GtkWindow *parent_window, * offline, it'll take place the next time we get a * connection) */ + uncached_msgs = header_list_count_uncached_msgs (headers); src_account = get_account_from_folder_store (src_folder); if (uncached_msgs > 0) { guint num_headers; @@ -5379,11 +5376,11 @@ modest_ui_actions_xfer_messages_check (GtkWindow *parent_window, if (remote_folder_has_leave_on_server (src_folder) && delete_originals) { const gchar *account_name; gboolean leave_on_server; - + account_name = modest_tny_account_get_parent_modest_account_name_for_server_account (src_account); leave_on_server = modest_account_mgr_get_leave_on_server (modest_runtime_get_account_mgr (), account_name); - + if (leave_on_server == TRUE) { *need_connection = FALSE; } else { @@ -5402,10 +5399,19 @@ static void xfer_messages_error_handler (ModestMailOperation *mail_op, gpointer user_data) { - GObject *win = modest_mail_operation_get_source (mail_op); - modest_platform_run_information_dialog ((GtkWindow *) win, - _("mail_in_ui_folder_move_target_error"), - FALSE); + GObject *win; + const GError *error; + + win = modest_mail_operation_get_source (mail_op); + error = modest_mail_operation_get_error (mail_op); + + if (error && is_memory_full_error ((GError *) error)) + modest_platform_information_banner ((GtkWidget *) win, + NULL, _KR("cerm_device_memory_full")); + else + modest_platform_run_information_dialog ((GtkWindow *) win, + _("mail_in_ui_folder_move_target_error"), + FALSE); if (win) g_object_unref (win); } @@ -5820,13 +5826,6 @@ modest_ui_actions_on_edit_mode_move_to (ModestWindow *win) main_window = MODEST_MAIN_WINDOW (modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (), FALSE)); /* don't create */ - - /* Get the folder view widget if exists */ - if (main_window) - folder_view = modest_main_window_get_child_widget (main_window, - MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW); - else - folder_view = NULL; #endif list_to_move = modest_platform_get_list_to_move (MODEST_WINDOW (win));