- !MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (dst_folder))
- goto end;
-
- /* Clean folder on header view before moving it */
- sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
- gtk_tree_selection_unselect_all (sel);
-
- if (TNY_IS_FOLDER (src_folder)) {
- mail_op =
- modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
- G_OBJECT(win),
- modest_ui_actions_move_folder_error_handler,
- NULL);
- modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
- mail_op);
-
- modest_mail_operation_xfer_folder (mail_op,
- TNY_FOLDER (src_folder),
- dst_folder,
- TRUE, NULL, NULL);
- /* Unref mail operation */
- g_object_unref (G_OBJECT (mail_op));
- } else {
- g_warning ("%s: src_folder is not a TnyFolder.\n", __FUNCTION__);
- }
- } else if (gtk_widget_is_focus (header_view)) {
- /* Transfer messages */
- modest_ui_actions_xfer_messages_from_move_to (dst_folder, MODEST_WINDOW (win));
+ !MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (dst_folder)) {
+ do_xfer = FALSE;
+ } else if (!TNY_IS_FOLDER (src_folder)) {
+ g_warning ("%s: src_folder is not a TnyFolder.\n", __FUNCTION__);
+ do_xfer = FALSE;
+ } else if (!online && modest_platform_is_network_folderstore(src_folder)) {
+ guint num_headers = tny_folder_get_all_count(TNY_FOLDER(src_folder));
+ if (!connect_to_get_msg(GTK_WINDOW(win), num_headers)) {
+ do_xfer = FALSE;
+ }
+ }
+
+ if (do_xfer) {
+ /* Clean folder on header view before moving it */
+ sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
+ gtk_tree_selection_unselect_all (sel);
+
+ mail_op =
+ modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
+ G_OBJECT(win),
+ modest_ui_actions_move_folder_error_handler,
+ NULL);
+ modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
+ mail_op);
+
+ modest_mail_operation_xfer_folder (mail_op,
+ TNY_FOLDER (src_folder),
+ dst_folder,
+ TRUE, NULL, NULL);
+ /* Unref mail operation */
+ g_object_unref (G_OBJECT (mail_op));
+ }
+ } else if (gtk_widget_is_focus (GTK_WIDGET(header_view))) {
+ gboolean do_xfer = TRUE;
+ /* Ask for confirmation if the source folder is remote and we're not connected */
+ if (!online && modest_platform_is_network_folderstore(src_folder)) {
+ guint num_headers = modest_header_view_count_selected_headers(header_view);
+ if (!connect_to_get_msg(GTK_WINDOW(win), num_headers)) {
+ do_xfer = FALSE;
+ }
+ }
+ if (do_xfer) /* Transfer messages */
+ modest_ui_actions_xfer_messages_from_move_to (dst_folder, MODEST_WINDOW (win));