gboolean reply_fwd);
+static gint
+msgs_move_to_confirmation (GtkWindow *win,
+ TnyFolder *dest_folder,
+ gboolean delete,
+ TnyList *headers);
+
+
static void
run_account_setup_wizard (ModestWindow *win)
{
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)) */
+ 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 *\/ */
+ tny_folder_sync (folder, TRUE, &err); /* TRUE --> expunge */
else
/* local folders */
/* tny_folder_sync_async(folder, TRUE, NULL, NULL, NULL); /\* TRUE --> expunge *\/ */
if (MODEST_IS_MAIN_WINDOW (window)) {
GtkWidget *header_view;
- header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(window),
- MODEST_WIDGET_TYPE_HEADER_VIEW);
+ header_view = modest_main_window_get_child_widget (
+ MODEST_MAIN_WINDOW(window),
+ MODEST_WIDGET_TYPE_HEADER_VIEW);
if (!header_view)
return;
- modest_header_view_select_next (MODEST_HEADER_VIEW(header_view));
+ modest_header_view_select_next (
+ MODEST_HEADER_VIEW(header_view));
} else if (MODEST_IS_MSG_VIEW_WINDOW (window)) {
- modest_msg_view_window_select_next_message (MODEST_MSG_VIEW_WINDOW (window));
+ modest_msg_view_window_select_next_message (
+ MODEST_MSG_VIEW_WINDOW (window));
} else {
g_return_if_reached ();
}
gint new_messages,
gpointer user_data)
{
- if (new_messages == 0)
- return;
+ ModestMainWindow *win = NULL;
+ GtkWidget *folder_view = NULL;
+ TnyFolderStore *folder = NULL;
+ gboolean folder_empty = FALSE;
- modest_platform_on_new_msg ();
+ g_return_if_fail (MODEST_IS_MAIN_WINDOW (user_data));
+ win = MODEST_MAIN_WINDOW (user_data);
+
+ /* Set contents style of headers view */
+ if (modest_main_window_get_contents_style (win) == MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY) {
+ folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
+ MODEST_WIDGET_TYPE_FOLDER_VIEW);
+ folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
+
+
+ folder_empty = (tny_folder_get_all_count (TNY_FOLDER (folder)) == 0);
+
+ if (!folder_empty)
+ modest_main_window_set_contents_style (win,
+ MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS);
+ }
+
+ /* Notify new messages have been downloaded */
+ if (new_messages > 0)
+ modest_platform_on_new_msg ();
}
/*
internally, so the progress objects will receive the proper
progress information */
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
- modest_mail_operation_update_account (mail_op, acc_name, new_messages_arrived, NULL);
+ modest_mail_operation_update_account (mail_op, acc_name, new_messages_arrived, win);
g_object_unref (G_OBJECT (mail_op));
/* Free */
ModestMainWindow *win = NULL;
GtkWidget *header_view;
TnyFolder *current_folder;
+ gboolean folder_empty = TRUE;
+ gboolean all_marked_as_deleted = TRUE;
g_return_if_fail (TNY_IS_FOLDER (folder));
}
/* Check if folder is empty and set headers view contents style */
- if (tny_folder_get_all_count (folder) == 0) {
+ folder_empty = (tny_folder_get_all_count (folder) == 0);
+ all_marked_as_deleted = modest_header_view_is_empty (MODEST_HEADER_VIEW(header_view));
+ folder_empty = folder_empty || all_marked_as_deleted ;
+ if (folder_empty) {
+
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);
/* Create a new mail operation */
mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
- modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
- mail_op);
/* Get destination folder */
folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (focused_widget));
- /* Launch notification */
- inf_note = modest_platform_animation_banner (GTK_WIDGET (window), NULL,
- _CS("ckct_nw_pasting"));
- if (inf_note != NULL) {
- gtk_window_set_modal (GTK_WINDOW(inf_note), FALSE);
- gtk_widget_show (GTK_WIDGET(inf_note));
- }
-
/* transfer messages */
if (data != NULL) {
- modest_mail_operation_xfer_msgs (mail_op,
- data,
- TNY_FOLDER (folder_store),
- delete,
- paste_msgs_cb,
- inf_note);
+ gint response = 0;
+
+ /* Ask for user confirmation */
+ response = msgs_move_to_confirmation (GTK_WINDOW (window),
+ TNY_FOLDER (folder_store),
+ delete,
+ data);
+
+ if (response == GTK_RESPONSE_OK) {
+ /* Launch notification */
+ inf_note = modest_platform_animation_banner (GTK_WIDGET (window), NULL,
+ _CS("ckct_nw_pasting"));
+ if (inf_note != NULL) {
+ gtk_window_set_modal (GTK_WINDOW(inf_note), FALSE);
+ gtk_widget_show (GTK_WIDGET(inf_note));
+ }
+
+ modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
+ modest_mail_operation_xfer_msgs (mail_op,
+ data,
+ TNY_FOLDER (folder_store),
+ delete,
+ paste_msgs_cb,
+ inf_note);
+ } else {
+ g_object_unref (mail_op);
+ }
} else if (src_folder != NULL) {
+ /* Launch notification */
+ inf_note = modest_platform_animation_banner (GTK_WIDGET (window), NULL,
+ _CS("ckct_nw_pasting"));
+ if (inf_note != NULL) {
+ gtk_window_set_modal (GTK_WINDOW(inf_note), FALSE);
+ gtk_widget_show (GTK_WIDGET(inf_note));
+ }
+
+ modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
modest_mail_operation_xfer_folder (mail_op,
src_folder,
folder_store,
gboolean found = FALSE;
iter = tny_list_create_iterator (list);
- while (tny_iterator_is_done (iter) && !found) {
+ while (!tny_iterator_is_done (iter) && !found) {
TnyHeader *header;
TnyHeaderFlags flags = 0;
header = TNY_HEADER (tny_iterator_get_current (iter));
if (header) {
flags = tny_header_get_flags (header);
- if (!(flags & TNY_HEADER_FLAG_PARTIAL))
+ if (flags & TNY_HEADER_FLAG_CACHED)
+/* if (!(flags & TNY_HEADER_FLAG_PARTIAL)) */
found = TRUE;
g_object_unref (header);
static gint
msgs_move_to_confirmation (GtkWindow *win,
TnyFolder *dest_folder,
+ gboolean delete,
TnyList *headers)
{
gint response = GTK_RESPONSE_OK;
- /* If the destination is a local folder */
- if (modest_tny_folder_is_local_folder (dest_folder)) {
+ /* If the destination is a local folder (or MMC folder )*/
+ if (!modest_tny_folder_is_remote_folder (dest_folder)) {
+/* if (modest_tny_folder_is_local_folder (dest_folder)) { */
TnyFolder *src_folder = NULL;
TnyIterator *iter = NULL;
TnyHeader *header = NULL;
return GTK_RESPONSE_CANCEL;
/* If the source is a remote folder */
- if (!modest_tny_folder_is_local_folder (src_folder)) {
- const gchar *message;
-
- if (has_retrieved_msgs (headers))
+/* if (!modest_tny_folder_is_local_folder (src_folder)) { */
+ if (modest_tny_folder_is_remote_folder (src_folder)) {
+ const gchar *message = NULL;
+ gboolean cached = has_retrieved_msgs (headers);
+ if (cached)
message = ngettext ("mcen_nc_move_retrieve", "mcen_nc_move_retrieves",
tny_list_get_length (headers));
else
message = ngettext ("mcen_nc_move_header", "mcen_nc_move_headers",
tny_list_get_length (headers));
-
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
- (const gchar *) message);
+
+ if (cached && !delete)
+ response = GTK_RESPONSE_OK;
+ else
+ response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
+ (const gchar *) message);
}
g_object_unref (src_folder);
/* Ask for user confirmation */
response = msgs_move_to_confirmation (GTK_WINDOW (win),
TNY_FOLDER (dst_folder),
+ TRUE,
headers);
/* Transfer messages */