static void reply_forward (ReplyForwardAction action, ModestWindow *win);
+static void folder_refreshed_cb (ModestMailOperation *mail_op,
+ TnyFolder *folder,
+ gpointer user_data);
static void _on_send_receive_progress_changed (ModestMailOperation *mail_op,
ModestMailOperationState *state,
widget = modest_main_window_get_child_widget (main_window,
MODEST_WIDGET_TYPE_HEADER_VIEW);
modest_header_view_refilter (MODEST_HEADER_VIEW (widget));
- }
- /* Update toolbar dimming state */
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (win));
+ /* Update toolbar dimming state */
+ modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
+ }
}
/* free */
/* If not, allow the user to create an account before trying to send/receive. */
if (!accounts_exist)
modest_ui_actions_on_accounts (NULL, win);
+
+ /* Refresh currently selected folder. Note that if we only
+ want to retrive the headers, then the refresh only will
+ invoke a poke_status over all folders, i.e., only the
+ total/unread count will be updated */
+ if (MODEST_IS_MAIN_WINDOW (win)) {
+ GtkWidget *header_view, *folder_view;
+ TnyFolderStore *folder_store;
+
+ /* Get folder and header view */
+ folder_view =
+ modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
+ MODEST_WIDGET_TYPE_FOLDER_VIEW);
+
+ folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
+
+ if (TNY_IS_FOLDER (folder_store)) {
+ header_view =
+ modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
+ MODEST_WIDGET_TYPE_HEADER_VIEW);
+
+ /* We do not need to set the contents style
+ because it hasn't changed. We also do not
+ need to save the widget status. Just force
+ a refresh */
+ modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view),
+ TNY_FOLDER (folder_store),
+ folder_refreshed_cb,
+ MODEST_MAIN_WINDOW (win));
+ }
+ g_object_unref (folder_store);
+ }
/* Refresh the active account */
modest_ui_actions_do_send_receive (NULL, win);
static void
-folder_refreshed_cb (const GObject *obj,
+folder_refreshed_cb (ModestMailOperation *mail_op,
TnyFolder *folder,
gpointer user_data)
{
gchar *account_name, *from;
ModestAccountMgr *account_mgr;
gchar *info_text = NULL;
+ TnyMsg *new_draft = NULL;
g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW(edit_window));
mail_operation = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_INFO, G_OBJECT(edit_window));
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_operation);
- modest_mail_operation_save_to_drafts (mail_operation,
- transport_account,
- data->draft_msg,
- from,
- data->to,
- data->cc,
- data->bcc,
- data->subject,
- data->plain_body,
- data->html_body,
- data->attachments,
- data->priority_flags);
+ new_draft = modest_mail_operation_save_to_drafts (mail_operation,
+ transport_account,
+ data->draft_msg,
+ from,
+ data->to,
+ data->cc,
+ data->bcc,
+ data->subject,
+ data->plain_body,
+ data->html_body,
+ data->attachments,
+ data->priority_flags);
/* Frees */
g_free (from);
g_free (account_name);
modest_msg_edit_window_free_msg_data (edit_window, data);
+ modest_msg_edit_window_set_draft (edit_window, new_draft);
+ if (new_draft != NULL)
+ g_object_unref (new_draft);
+
info_text = g_strdup_printf (_("mail_va_saved_to_drafts"), _("mcen_me_folder_drafts"));
modest_platform_information_banner (NULL, NULL, info_text);
g_free (info_text);
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (focused_widget));
gtk_text_buffer_cut_clipboard (buffer, clipboard, TRUE);
+ gtk_clipboard_set_can_store (clipboard, NULL, 0);
} else if (MODEST_IS_HEADER_VIEW (focused_widget)) {
modest_header_view_cut_selection (MODEST_HEADER_VIEW (focused_widget));
} else if (MODEST_IS_FOLDER_VIEW (focused_widget)) {
GtkTextBuffer *buffer;
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (focused_widget));
gtk_text_buffer_copy_clipboard (buffer, clipboard);
- modest_header_view_copy_selection (MODEST_HEADER_VIEW (focused_widget));
+ gtk_clipboard_set_can_store (clipboard, NULL, 0);
} else if (MODEST_IS_HEADER_VIEW (focused_widget)) {
TnyList *header_list = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW (focused_widget));
TnyIterator *iter = tny_list_create_iterator (header_list);
/* Get the folder view */
folder_view = modest_main_window_get_child_widget (win,
MODEST_WIDGET_TYPE_FOLDER_VIEW);
+
+ TnyFolderStore *src_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
+
+ /* Offer the connection dialog if necessary, if the source folder is in a networked account: */
+ if (!modest_platform_connect_and_wait_if_network_folderstore (GTK_WINDOW (win), src_folder)) {
+ if (src_folder) {
+ g_object_unref (src_folder);
+ }
+
+ return;
+ }
/* Get header view */
header_view = modest_main_window_get_child_widget (win,
goto end;
/* Offer the connection dialog if necessary: */
- if (modest_platform_connect_and_wait_if_network_folderstore (GTK_WINDOW (win), folder_store)) {
+ if (!modest_platform_connect_and_wait_if_network_folderstore (GTK_WINDOW (win), folder_store)) {
goto end;
}
/* Get folder or messages to transfer */
if (gtk_widget_is_focus (folder_view)) {
- TnyFolderStore *src_folder;
- src_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
-
- /* Offer the connection dialog if necessary: */
- if (modest_platform_connect_and_wait_if_network_folderstore (GTK_WINDOW (win), src_folder)) {
-
- /* Clean folder on header view before moving it */
- modest_header_view_clear (MODEST_HEADER_VIEW (header_view));
-
- 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);
+
+ /* Clean folder on header view before moving it */
+ modest_header_view_clear (MODEST_HEADER_VIEW (header_view));
- modest_mail_operation_xfer_folder (mail_op,
- TNY_FOLDER (src_folder),
- folder_store,
- TRUE, NULL, NULL);
- /* Unref mail operation */
- g_object_unref (G_OBJECT (mail_op));
- }
+ 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);
- /* Frees */
- g_object_unref (G_OBJECT (src_folder));
+ modest_mail_operation_xfer_folder (mail_op,
+ TNY_FOLDER (src_folder),
+ folder_store,
+ 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)) {
}
end:
- if (folder_store != NULL)
+ if (src_folder)
+ g_object_unref (src_folder);
+
+ if (folder_store)
g_object_unref (folder_store);
gtk_widget_destroy (dialog);