#include "modest-tny-platform-factory.h"
#include "modest-platform.h"
+#include <tny-mime-part.h>
#ifdef MODEST_PLATFORM_MAEMO
#include "maemo/modest-osso-state-saving.h"
gpointer user_data)
{
ModestMailOperation *mail_op = NULL;
+ GtkTreeModel *model = NULL;
mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_DELETE, G_OBJECT(win));
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
/* Always delete. TODO: Move to trash still not supported */
modest_mail_operation_remove_msg (mail_op, header, FALSE);
g_object_unref (G_OBJECT (mail_op));
+
+ /* refilter treemodel to hide marked-as-deleted rows */
+ if (MODEST_IS_HEADER_VIEW (user_data)) {
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (user_data));
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (model));
+ }
}
void
GtkWidget *header_view;
g_return_if_fail (MODEST_IS_WINDOW(win));
-
+ header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
+ MODEST_WIDGET_TYPE_HEADER_VIEW);
+
/* Check first if the header view has the focus */
if (MODEST_IS_MAIN_WINDOW (win)) {
- header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
- MODEST_WIDGET_TYPE_HEADER_VIEW);
if (!gtk_widget_is_focus (header_view))
return;
}
-
+
header_list = get_selected_headers (win);
if (!header_list) return;
}
/* Remove each header */
- do_headers_action (win, headers_action_delete, NULL);
+ do_headers_action (win, headers_action_delete, header_view);
if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
gtk_widget_destroy (GTK_WIDGET(win));
modest_osso_save_state();
#endif /* MODEST_PLATFORM_MAEMO */
- /* FIXME: we need to cancel all actions/threads here,
- so we really quit */
+ g_debug ("closing down, clearing %d item(s) from operation queue",
+ modest_mail_operation_queue_num_elements
+ (modest_runtime_get_mail_operation_queue()));
+
+ /* cancel all outstanding operations */
+ modest_mail_operation_queue_cancel_all
+ (modest_runtime_get_mail_operation_queue());
+
+ g_debug ("queue has been cleared");
+
+ /* note: when modest-tny-account-store is finalized,
+ it will automatically set all network connections
+ to offline */
gtk_main_quit ();
}
void
modest_ui_actions_on_close_window (GtkAction *action, ModestWindow *win)
{
- if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
- gtk_widget_destroy (GTK_WIDGET (win));
- } else if (MODEST_IS_MSG_EDIT_WINDOW (win)) {
- gboolean ret_value;
- g_signal_emit_by_name (G_OBJECT (win), "delete-event", NULL, &ret_value);
- } else if (MODEST_IS_WINDOW (win)) {
- gtk_widget_destroy (GTK_WIDGET (win));
- } else {
- g_return_if_reached ();
- }
+ gboolean ret_value;
+ g_signal_emit_by_name (G_OBJECT (win), "delete-event", NULL, &ret_value);
+
+/* if (MODEST_IS_MSG_VIEW_WINDOW (win)) { */
+/* gtk_widget_destroy (GTK_WIDGET (win)); */
+/* } else if (MODEST_IS_MSG_EDIT_WINDOW (win)) { */
+/* gboolean ret_value; */
+/* g_signal_emit_by_name (G_OBJECT (win), "delete-event", NULL, &ret_value); */
+/* } else if (MODEST_IS_WINDOW (win)) { */
+/* gtk_widget_destroy (GTK_WIDGET (win)); */
+/* } else { */
+/* g_return_if_reached (); */
+/* } */
}
void
/* Open each cached message */
if (tny_list_get_length (not_opened_cached_headers) > 0) {
- mail_op2 = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_OPEN,
+ mail_op2 = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
G_OBJECT (win),
modest_ui_actions_get_msgs_full_error_handler,
NULL);
g_object_unref (G_OBJECT (account));
/* g_object_unref (msg); */
g_object_unref (header);
+ free_reply_forward_helper (rf_helper);
}
/*
} else
reply_forward_cb (NULL, header, msg, rf_helper);
} else {
+ TnyHeader *header;
+ TnyIterator *iter;
+
/* Retrieve messages */
mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
G_OBJECT(win),
modest_ui_actions_get_msgs_full_error_handler,
NULL);
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
- modest_mail_operation_get_msgs_full (mail_op,
- header_list,
- reply_forward_cb,
- rf_helper,
- free_reply_forward_helper);
+
+ /* Only reply/forward to one message */
+ iter = tny_list_create_iterator (header_list);
+ header = TNY_HEADER (tny_iterator_get_current (iter));
+ g_object_unref (iter);
+
+ modest_mail_operation_get_msg (mail_op,
+ header,
+ reply_forward_cb,
+ rf_helper);
+
+/* modest_mail_operation_get_msgs_full (mail_op, */
+/* header_list, */
+/* reply_forward_cb, */
+/* rf_helper, */
+/* free_reply_forward_helper); */
/* Clean */
g_object_unref(mail_op);
/* Set send/receive operation in progress */
modest_main_window_notify_send_receive_initied (MODEST_MAIN_WINDOW(win));
- mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(win));
+ mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
+ G_OBJECT (win),
+ modest_ui_actions_send_receive_error_handler,
+ NULL);
+
g_signal_connect (G_OBJECT(mail_op), "progress-changed",
G_CALLBACK (_on_send_receive_progress_changed),
win);
gpointer user_data)
{
GObject *win = modest_mail_operation_get_source (mail_op);
-
- /* TODO: what should we do in case of this error ? */
- g_warning ("Invalid folder name");
-
+ const GError *error = NULL;
+ const gchar *message = NULL;
+
+ /* Get error message */
+ error = modest_mail_operation_get_error (mail_op);
+ if (error != NULL && error->message != NULL) {
+ message = error->message;
+ } else {
+ message = _("!!! FIXME: Unable to rename");
+ }
+
+ /* Show notification dialog */
+ modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL, message);
g_object_unref (win);
}
if (MODEST_IS_MSG_EDIT_WINDOW (window)) {
modest_msg_edit_window_undo (MODEST_MSG_EDIT_WINDOW (window));
- } if (MODEST_IS_MAIN_WINDOW (window)) {
+ } else if (MODEST_IS_MAIN_WINDOW (window)) {
/* Clear clipboard source */
clipboard = modest_runtime_get_email_clipboard ();
modest_email_clipboard_clear (clipboard);
gpointer user_data)
{
GObject *win = modest_mail_operation_get_source (mail_op);
-
- /* TODO: show error message */
- modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL,
- _("mail_in_ui_folder_move_target_error"));
+ const GError *error = NULL;
+ const gchar *message = NULL;
+
+ /* Get error message */
+ error = modest_mail_operation_get_error (mail_op);
+ if (error != NULL && error->message != NULL) {
+ message = error->message;
+ } else {
+ message = _("mail_in_ui_folder_move_target_error");
+ }
+
+ /* Show notification dialog */
+ modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL, message);
g_object_unref (win);
}
+void
+modest_ui_actions_send_receive_error_handler (ModestMailOperation *mail_op,
+ gpointer user_data)
+{
+ GObject *win = modest_mail_operation_get_source (mail_op);
+ const GError *error = modest_mail_operation_get_error (mail_op);
+
+ g_return_if_fail (error != NULL);
+ if (error->message != NULL)
+ g_printerr ("modest: %s\n", error->message);
+ else
+ g_printerr ("modest: unkonw error on sedn&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);
+}
+
static void
open_msg_for_purge_cb (ModestMailOperation *mail_op,
TnyHeader *header,
} else {
ModestMailOperation *mail_op = NULL;
modest_window_mgr_register_header (modest_runtime_get_window_mgr (), header);
- mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_OPEN,
+ mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
G_OBJECT (win),
modest_ui_actions_get_msgs_full_error_handler,
NULL);
/* Transfer messages */
if (response == GTK_RESPONSE_OK) {
- mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(win));
+ 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);