}
/* Free */
- if (next_row_reference != NULL)
+ if (gtk_tree_row_reference_valid (next_row_reference))
gtk_tree_row_reference_free (next_row_reference);
if (next_path != NULL)
gtk_tree_path_free (next_path);
- if (prev_row_reference != NULL)
+ if (gtk_tree_row_reference_valid (prev_row_reference))
gtk_tree_row_reference_free (prev_row_reference);
if (prev_path != NULL)
gtk_tree_path_free (prev_path);
signature = modest_account_mgr_get_signature (mgr, account_name, &use_signature);
if (body_str != NULL) {
- body = use_signature ? g_strconcat(body_str, "\n", signature, NULL) : g_strdup(body_str);
+ body = use_signature ? g_strconcat(body_str, "\n--\n", signature, NULL) : g_strdup(body_str);
} else {
- body = use_signature ? g_strconcat("\n", signature, NULL) : g_strdup("");
+ body = use_signature ? g_strconcat("\n--\n", signature, NULL) : g_strdup("");
}
msg = modest_tny_msg_new (to_str, from_str, cc_str, bcc_str, subject_str, body, NULL, NULL);
g_object_unref (source);
}
+ if (error && ((error->code == TNY_SERVICE_ERROR_NO_SUCH_MESSAGE) ||
+ error->code == TNY_SERVICE_ERROR_MESSAGE_NOT_AVAILABLE)) {
+ gchar *subject, *msg;
+ subject = tny_header_dup_subject (header);
+ if (!subject)
+ subject = g_strdup (_("mail_va_no_subject"));
+ msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"),
+ subject);
+ modest_platform_run_information_dialog (NULL, msg, FALSE);
+ g_free (msg);
+ g_free (subject);
+ }
+
/* Remove the header from the preregistered uids */
modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (),
header);
gnome_vfs_uri_unref (cache_dir_uri);
if ((error->code == TNY_SYSTEM_ERROR_MEMORY ||
+ /* When asking for a mail and no space left on device
+ tinymail returns this error */
+ error->code == TNY_SERVICE_ERROR_MESSAGE_NOT_AVAILABLE ||
+ /* When the folder summary could not be read or
+ written */
error->code == TNY_IO_ERROR_WRITE ||
error->code == TNY_IO_ERROR_READ) &&
!enough_free_space) {
ModestWindow *win)
{
/* g_message ("%s %s", __FUNCTION__, link); */
-}
+}
void
void
modest_ui_actions_on_msg_attachment_clicked (ModestMsgView *msgview, TnyMimePart *mime_part,
ModestWindow *win)
-{
+{
/* we check for low-mem; in that case, show a warning, and don't allow
* viewing attachments
*/
g_object_unref(edit_window);
}
-gboolean
-modest_ui_actions_on_save_to_drafts (GtkWidget *widget, ModestMsgEditWindow *edit_window)
+static gboolean
+enough_space_for_message (ModestMsgEditWindow *edit_window,
+ MsgData *data)
{
- TnyTransportAccount *transport_account;
- ModestMailOperation *mail_operation;
- MsgData *data;
- gchar *account_name, *from;
- ModestAccountMgr *account_mgr;
-/* char *info_text; */
- gboolean had_error = FALSE;
+ TnyAccountStore *acc_store;
guint64 available_disk, expected_size;
gint parts_count;
guint64 parts_size;
- ModestMainWindow *win;
-
- g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW(edit_window), FALSE);
-
- data = modest_msg_edit_window_get_msg_data (edit_window);
/* Check size */
- available_disk = modest_folder_available_space (NULL);
+ acc_store = TNY_ACCOUNT_STORE (modest_runtime_get_account_store());
+ available_disk = modest_utils_get_available_space (NULL);
modest_msg_edit_window_get_parts_size (edit_window, &parts_count, &parts_size);
expected_size = modest_tny_msg_estimate_size (data->plain_body,
- data->html_body,
- parts_count,
- parts_size);
+ data->html_body,
+ parts_count,
+ parts_size);
- if ((available_disk != -1) && expected_size > available_disk) {
- modest_msg_edit_window_free_msg_data (edit_window, data);
+ /* Double check: memory full condition or message too big */
+ if (available_disk < MIN_FREE_SPACE ||
+ expected_size > available_disk) {
- modest_platform_information_banner (NULL, NULL, dgettext("ke-recv", "cerm_device_memory_full"));
+ modest_platform_information_banner (NULL, NULL,
+ dgettext("ke-recv",
+ "cerm_device_memory_full"));
return FALSE;
}
* MODEST_MAX_LOW_MEMORY_MESSAGE_SIZE (see modest-defs.h) this
* should still allow for sending anything critical...
*/
- if (expected_size > MODEST_MAX_LOW_MEMORY_MESSAGE_SIZE) {
-
- if (modest_platform_check_memory_low (MODEST_WINDOW(edit_window), TRUE)) {
- modest_msg_edit_window_free_msg_data (edit_window, data);
- return FALSE;
- }
- }
+ if ((expected_size > MODEST_MAX_LOW_MEMORY_MESSAGE_SIZE) &&
+ modest_platform_check_memory_low (MODEST_WINDOW(edit_window), TRUE))
+ return FALSE;
/*
* djcb: we also make sure that the attachments are smaller than the max size
GTK_WINDOW(edit_window),
dgettext("ke-recv","memr_ib_operation_disabled"),
TRUE);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+gboolean
+modest_ui_actions_on_save_to_drafts (GtkWidget *widget, ModestMsgEditWindow *edit_window)
+{
+ TnyTransportAccount *transport_account;
+ ModestMailOperation *mail_operation;
+ MsgData *data;
+ gchar *account_name, *from;
+ ModestAccountMgr *account_mgr;
+ gboolean had_error = FALSE;
+ ModestMainWindow *win;
+
+ g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW(edit_window), FALSE);
+
+ data = modest_msg_edit_window_get_msg_data (edit_window);
+
+ /* Check size */
+ if (!enough_space_for_message (edit_window, data)) {
modest_msg_edit_window_free_msg_data (edit_window, data);
return FALSE;
}
transport_account =
TNY_TRANSPORT_ACCOUNT(modest_tny_account_store_get_server_account
- (modest_runtime_get_account_store(),
+ (modest_runtime_get_account_store (),
account_name,
TNY_ACCOUNT_TYPE_TRANSPORT));
if (!transport_account) {
{
TnyTransportAccount *transport_account = NULL;
gboolean had_error = FALSE;
- guint64 available_disk, expected_size;
- gint parts_count;
- guint64 parts_size;
+ MsgData *data;
+ ModestAccountMgr *account_mgr;
+ gchar *account_name;
+ gchar *from;
+ ModestMailOperation *mail_operation;
g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW(edit_window), TRUE);
if (!modest_msg_edit_window_check_names (edit_window, TRUE))
return TRUE;
- MsgData *data = modest_msg_edit_window_get_msg_data (edit_window);
+ data = modest_msg_edit_window_get_msg_data (edit_window);
/* Check size */
- available_disk = modest_folder_available_space (NULL);
- modest_msg_edit_window_get_parts_size (edit_window, &parts_count, &parts_size);
- expected_size = modest_tny_msg_estimate_size (data->plain_body,
- data->html_body,
- parts_count,
- parts_size);
-
- if ((available_disk != -1) && expected_size > available_disk) {
+ if (!enough_space_for_message (edit_window, data)) {
modest_msg_edit_window_free_msg_data (edit_window, data);
-
- modest_platform_information_banner (NULL, NULL, dgettext("ke-recv", "cerm_device_memory_full"));
return FALSE;
}
-
- /*
- * djcb: if we're in low-memory state, we only allow for sending messages
- * smaller than MODEST_MAX_LOW_MEMORY_MESSAGE_SIZE (see modest-defs.h)
- * this should still allow for sending anything critical...
- */
- if (expected_size > MODEST_MAX_LOW_MEMORY_MESSAGE_SIZE) {
- if (modest_platform_check_memory_low (MODEST_WINDOW(edit_window), TRUE)) {
- modest_msg_edit_window_free_msg_data (edit_window, data);
- return FALSE;
- }
- }
-
- /*
- * djcb: we also make sure that the attachments are smaller than the max size
- * this is for the case where we'd try to forward a message with attachments
- * bigger than our max allowed size, or sending an message from drafts which
- * somehow got past our checks when attaching.
- */
- if (expected_size > MODEST_MAX_ATTACHMENT_SIZE) {
- modest_platform_run_information_dialog (
- GTK_WINDOW(edit_window),
- dgettext("ke-recv","memr_ib_operation_disabled"),
- TRUE);
- modest_msg_edit_window_free_msg_data (edit_window, data);
- return FALSE;
- }
-
- ModestAccountMgr *account_mgr = modest_runtime_get_account_mgr();
- gchar *account_name = g_strdup (data->account_name);
+ account_mgr = modest_runtime_get_account_mgr();
+ account_name = g_strdup (data->account_name);
if (!account_name)
account_name = g_strdup(modest_window_get_active_account (MODEST_WINDOW(edit_window)));
/* Get the currently-active transport account for this modest account: */
if (strcmp (account_name, MODEST_LOCAL_FOLDERS_ACCOUNT_ID) != 0) {
- transport_account = TNY_TRANSPORT_ACCOUNT(modest_tny_account_store_get_server_account
- (modest_runtime_get_account_store(),
- account_name, TNY_ACCOUNT_TYPE_TRANSPORT));
+ transport_account =
+ TNY_TRANSPORT_ACCOUNT(modest_tny_account_store_get_server_account
+ (modest_runtime_get_account_store (),
+ account_name, TNY_ACCOUNT_TYPE_TRANSPORT));
}
if (!transport_account) {
return TRUE;
}
- gchar *from = modest_account_mgr_get_from_string (account_mgr, account_name);
/* Create the mail operation */
- ModestMailOperation *mail_operation = modest_mail_operation_new_with_error_handling (NULL, modest_ui_actions_disk_operations_error_handler, NULL, NULL);
+ from = modest_account_mgr_get_from_string (account_mgr, account_name);
+ mail_operation = modest_mail_operation_new_with_error_handling (NULL, modest_ui_actions_disk_operations_error_handler, NULL, NULL);
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_operation);
modest_mail_operation_send_new_mail (mail_operation,
case MODEST_MAIL_OPERATION_ERROR_FOLDER_EXISTS:
message = _CS("ckdg_ib_folder_already_exists");
break;
+ case TNY_SERVICE_ERROR_STATE:
+ /* This means that the folder is already in use (a
+ message is opened for example */
+ message = _("emev_ni_internal_error");
+ break;
default:
message = _("emev_ib_ui_imap_unable_to_rename");
}
/* Clear the headers view */
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
- gtk_tree_selection_unselect_all (sel);
+ gtk_tree_selection_unselect_all (sel);
/* Actually rename the folder */
modest_mail_operation_rename_folder (mail_op,
(const gchar *) (data->new_name),
on_rename_folder_cb,
folder_view);
+ g_object_unref (data->folder);
g_object_unref (mail_op);
}
do_rename = FALSE;
} else {
RenameFolderInfo *rename_folder_data = g_new0 (RenameFolderInfo, 1);
- rename_folder_data->folder = folder;
+ rename_folder_data->folder = g_object_ref (folder);
rename_folder_data->new_name = folder_name;
modest_platform_connect_if_remote_and_perform (GTK_WINDOW(main_window), TRUE,
folder, on_rename_folder_performer, rename_folder_data);
/* No more messages to view, so close this window */
modest_ui_actions_on_close_window (NULL, MODEST_WINDOW(self));
}
- } else if (MODEST_IS_MAIN_WINDOW (object) && helper->reference != NULL) {
+ } else if (MODEST_IS_MAIN_WINDOW (object) &&
+ gtk_tree_row_reference_valid (helper->reference)) {
GtkWidget *header_view;
GtkTreePath *path;
GtkTreeSelection *sel;
/* Close the "Pasting" information banner */
gtk_widget_destroy (GTK_WIDGET(helper->banner));
g_object_unref (helper->banner);
- if (helper->reference != NULL)
+ if (gtk_tree_row_reference_valid (helper->reference))
gtk_tree_row_reference_free (helper->reference);
g_free (helper);
}
NULL, NULL);
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
modest_mail_operation_get_msg (mail_op, header, FALSE, open_msg_for_purge_cb, win);
-
+
g_object_unref (mail_op);
}
if (header)
/* Create and run the dialog */
dialog = create_move_to_dialog (GTK_WINDOW (win), folder_view, &tree_view);
modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (tree_view));
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog));
result = gtk_dialog_run (GTK_DIALOG(dialog));
g_object_ref (tree_view);
gtk_widget_destroy (dialog);
/* Rerun dimming rules, because the message could become deletable for example */
modest_window_check_dimming_rules_group (MODEST_WINDOW (main_window),
MODEST_DIMMING_RULES_TOOLBAR);
+ modest_window_check_dimming_rules_group (MODEST_WINDOW (main_window),
+ MODEST_DIMMING_RULES_MENU);
/* Free */
frees: