uncached_messages));
if (response == GTK_RESPONSE_CANCEL)
retval = FALSE;
+ else {
+ /* If a download will be necessary, make sure that we have a connection: */
+ retval = modest_platform_connect_and_wait(win);
+ }
}
return retval;
}
g_object_unref (header);
g_printerr ("modest: no message found\n");
return;
- } else
+ } else {
reply_forward_cb (NULL, header, msg, rf_helper);
+ }
} else {
TnyHeader *header;
TnyIterator *iter;
modest_msg_edit_window_set_sent (edit_window, TRUE);
/* Save settings and close the window: */
- gtk_widget_destroy (GTK_WIDGET (edit_window));
+ modest_ui_actions_on_close_window (NULL, MODEST_WINDOW (edit_window));
}
void
return;
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 (NULL, folder)) {
+ g_object_unref (G_OBJECT (folder));
+ return;
+ }
+
if (folder && TNY_IS_FOLDER (folder)) {
gchar *folder_name;
if (!TNY_IS_FOLDER (folder)) {
modest_platform_run_information_dialog (GTK_WINDOW (main_window),
_("mail_in_ui_folder_delete_error"));
+ g_object_unref (G_OBJECT (folder));
return ;
}
+ /* Offer the connection dialog if necessary: */
+ if (!modest_platform_connect_and_wait_if_network_folderstore (NULL, folder)) {
+ g_object_unref (G_OBJECT (folder));
+ return;
+ }
+
/* Ask the user */
message = g_strdup_printf (_("mcen_nc_delete_folder_text"),
tny_folder_get_name (TNY_FOLDER (folder)));
}
void
+modest_ui_actions_on_redo (GtkAction *action,
+ ModestWindow *window)
+{
+ if (MODEST_IS_MSG_EDIT_WINDOW (window)) {
+ modest_msg_edit_window_redo (MODEST_MSG_EDIT_WINDOW (window));
+ }
+ else {
+ g_return_if_reached ();
+ }
+}
+
+
+static void
+paste_msgs_cb (const GObject *object, gpointer user_data)
+{
+ g_return_if_fail (MODEST_IS_MAIN_WINDOW (object));
+ g_return_if_fail (GTK_IS_WIDGET (user_data));
+
+ /* destroy information note */
+ gtk_widget_destroy (GTK_WIDGET(user_data));
+}
+
+void
modest_ui_actions_on_paste (GtkAction *action,
ModestWindow *window)
{
- GtkWidget *focused_widget;
+ GtkWidget *focused_widget = NULL;
+ GtkWidget *inf_note = NULL;
ModestMailOperation *mail_op = NULL;
focused_widget = gtk_window_get_focus (GTK_WINDOW (window));
/* 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,
- NULL,
- NULL);
+ paste_msgs_cb,
+ inf_note);
} else if (src_folder != NULL) {
modest_mail_operation_xfer_folder (mail_op,
src_folder,
folder_store,
- delete);
+ delete,
+ paste_msgs_cb,
+ inf_note);
}
/* Free */
}
}
+
void
modest_ui_actions_on_select_all (GtkAction *action,
ModestWindow *window)
}
+
static void
transfer_msgs_from_viewer_cb (const GObject *object, gpointer user_data)
{
if (error->message != NULL)
g_printerr ("modest: %s\n", error->message);
else
- g_printerr ("modest: unkonw error on sedn&receive operation");
+ g_printerr ("modest: unkonw error on send&receive operation");
/* Show error message */
- 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);
+/* 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
{
GtkWidget *dialog = NULL, *folder_view = NULL, *tree_view = NULL;
GtkWidget *header_view = NULL;
- gint result;
+ gint result = 0;
TnyFolderStore *folder_store = NULL;
ModestMailOperation *mail_op = NULL;
!MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (folder_store))
goto end;
+ /* Offer the connection dialog if necessary: */
+ 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));
- /* Clean folder on header view before moving it */
- modest_header_view_clear (MODEST_HEADER_VIEW (header_view));
+ /* Offer the connection dialog if necessary: */
+ if (modest_platform_connect_and_wait_if_network_folderstore (GTK_WINDOW (win), src_folder)) {
- if (TNY_IS_FOLDER (src_folder)) {
- mail_op =
- modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
+ /* 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);
+ modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
- modest_mail_operation_xfer_folder (mail_op,
- TNY_FOLDER (src_folder),
- folder_store,
- TRUE);
- /* Unref mail operation */
- g_object_unref (G_OBJECT (mail_op));
- }
+ 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));
+ }
- /* Frees */
- g_object_unref (G_OBJECT (src_folder));
+ /* Frees */
+ g_object_unref (G_OBJECT (src_folder));
+ }
} else {
if (gtk_widget_is_focus (header_view)) {
- TnyList *headers;
- gint response;
+ TnyList *headers = NULL;
+ gint response = 0;
+ /* TODO: Check for connection if the headers are on a network account. */
headers = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW (header_view));
/* Ask for user confirmation */
g_object_unref (headers);
}
}
+
end:
if (folder_store != NULL)
g_object_unref (folder_store);
+
gtk_widget_destroy (dialog);
}
ModestMsgViewWindow *win)
{
GtkWidget *dialog, *folder_view, *tree_view = NULL;
- gint result;
- ModestMainWindow *main_window;
- TnyHeader *header;
- TnyList *headers;
+ gint result = 0;
+ ModestMainWindow *main_window = NULL;
+ TnyHeader *header = NULL;
+ TnyList *headers = NULL;
/* Get the folder view */
main_window = MODEST_MAIN_WINDOW (modest_window_mgr_get_main_window (modest_runtime_get_window_mgr ()));
/* Create and run the dialog */
dialog = create_move_to_dialog (MODEST_WINDOW (win), folder_view, &tree_view);
result = gtk_dialog_run (GTK_DIALOG(dialog));
- g_object_ref (tree_view);
if (result == GTK_RESPONSE_ACCEPT) {
TnyFolderStore *folder_store;
gint response;
- folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (tree_view));
-
/* Create header list */
header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (win));
+ g_return_if_fail (header != NULL);
+
+ /* Offer the connection dialog if necessary: */
+ /* TODO: What's the extra g_object_ref() for? Isn't this leaking a ref? */
+ folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (g_object_ref (tree_view)));
+ TnyFolder *header_folder = tny_header_get_folder(header);
+ if (modest_platform_connect_and_wait_if_network_folderstore (NULL, folder_store) &&
+ modest_platform_connect_and_wait_if_network_folderstore (NULL, TNY_FOLDER_STORE (header_folder))) {
- headers = tny_simple_list_new ();
- tny_list_prepend (headers, G_OBJECT (header));
- g_object_unref (header);
+ headers = tny_simple_list_new ();
+ tny_list_prepend (headers, G_OBJECT (header));
+ g_object_unref (header);
- /* Ask user for confirmation. MSG-NOT404 */
- response = msgs_move_to_confirmation (GTK_WINDOW (win),
+ /* Ask user for confirmation. MSG-NOT404 */
+ response = msgs_move_to_confirmation (GTK_WINDOW (win),
TNY_FOLDER (folder_store),
headers);
- /* Transfer current msg */
- if (response == GTK_RESPONSE_OK) {
- ModestMailOperation *mail_op;
+ /* Transfer current msg */
+ if (response == GTK_RESPONSE_OK) {
+ ModestMailOperation *mail_op;
- /* Create mail op */
- mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(win));
- modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
+ /* Create mail op */
+ mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(win));
+ modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
mail_op);
- /* Transfer messages */
- modest_mail_operation_xfer_msgs (mail_op,
+ /* Transfer messages */
+ modest_mail_operation_xfer_msgs (mail_op,
headers,
TNY_FOLDER (folder_store),
TRUE,
transfer_msgs_from_viewer_cb,
NULL);
- g_object_unref (G_OBJECT (mail_op));
+ g_object_unref (G_OBJECT (mail_op));
+ }
}
- g_object_unref (headers);
- g_object_unref (folder_store);
+
+ if (header_folder)
+ g_object_unref (header_folder);
+
+ if (headers)
+ g_object_unref (headers);
+
+ if (folder_store)
+ g_object_unref (folder_store);
}
+
gtk_widget_destroy (dialog);
}