aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-msg-composer.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-08-31 02:23:33 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-08-31 02:26:00 +0800
commit035fbcd84177cf592a48e41ca0ca7689aaaa9d17 (patch)
treeff895767b9b3f55ae67fe0aa764102e526c85e41 /composer/e-msg-composer.c
parent680c58a7660020c614690421ff0e37ee55b2c9aa (diff)
downloadgsoc2013-evolution-035fbcd84177cf592a48e41ca0ca7689aaaa9d17.tar
gsoc2013-evolution-035fbcd84177cf592a48e41ca0ca7689aaaa9d17.tar.gz
gsoc2013-evolution-035fbcd84177cf592a48e41ca0ca7689aaaa9d17.tar.bz2
gsoc2013-evolution-035fbcd84177cf592a48e41ca0ca7689aaaa9d17.tar.lz
gsoc2013-evolution-035fbcd84177cf592a48e41ca0ca7689aaaa9d17.tar.xz
gsoc2013-evolution-035fbcd84177cf592a48e41ca0ca7689aaaa9d17.tar.zst
gsoc2013-evolution-035fbcd84177cf592a48e41ca0ca7689aaaa9d17.zip
Composer autosave cleanups.
This simplifies the async autosave logic and improves error handling. Hoping this will solve bug #616987 but I've yet to reproduce it myself.
Diffstat (limited to 'composer/e-msg-composer.c')
-rw-r--r--composer/e-msg-composer.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 9c80a193b9..65523677e9 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -596,7 +596,8 @@ account_hash_algo_to_camel_hash (const gchar *hash_algo)
static CamelMimeMessage *
build_message (EMsgComposer *composer,
gboolean html_content,
- gboolean save_html_object_data)
+ gboolean save_html_object_data,
+ GError **error)
{
GtkhtmlEditor *editor;
EMsgComposerPrivate *p = composer->priv;
@@ -1149,20 +1150,14 @@ exception:
g_object_unref (new);
- if (!g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
- e_alert_run_dialog_for_args (
- (GtkWindow *) composer,
- "mail-composer:no-build-message",
- local_error->message, NULL);
-
- g_error_free (local_error);
-
if (recipients) {
for (i=0; i<recipients->len; i++)
g_free (recipients->pdata[i]);
g_ptr_array_free (recipients, TRUE);
}
+ g_propagate_error (error, local_error);
+
return NULL;
}
@@ -3781,7 +3776,8 @@ e_msg_composer_add_inline_image_from_mime_part (EMsgComposer *composer,
**/
CamelMimeMessage *
e_msg_composer_get_message (EMsgComposer *composer,
- gboolean save_html_object_data)
+ gboolean save_html_object_data,
+ GError **error)
{
EAttachmentView *view;
EAttachmentStore *store;
@@ -3803,7 +3799,9 @@ e_msg_composer_get_message (EMsgComposer *composer,
editor = GTKHTML_EDITOR (composer);
html_content = gtkhtml_editor_get_html_mode (editor);
- return build_message (composer, html_content, save_html_object_data);
+ return build_message (
+ composer, html_content,
+ save_html_object_data, error);
}
static gchar *
@@ -3859,7 +3857,8 @@ e_msg_composer_get_message_print (EMsgComposer *composer,
editor = GTKHTML_EDITOR (composer);
html_content = gtkhtml_editor_get_html_mode (editor);
- msg = build_message (composer, html_content, save_html_object_data);
+ msg = build_message (
+ composer, html_content, save_html_object_data, NULL);
if (msg == NULL)
return NULL;
@@ -3871,7 +3870,8 @@ e_msg_composer_get_message_print (EMsgComposer *composer,
flags = msg_composer_get_message_print_helper (
temp_composer, html_content);
- msg = build_message (temp_composer, TRUE, save_html_object_data);
+ msg = build_message (
+ temp_composer, TRUE, save_html_object_data, NULL);
if (msg != NULL)
camel_medium_set_header (
CAMEL_MEDIUM (msg), "X-Evolution-Format", flags);
@@ -3883,7 +3883,8 @@ e_msg_composer_get_message_print (EMsgComposer *composer,
}
CamelMimeMessage *
-e_msg_composer_get_message_draft (EMsgComposer *composer)
+e_msg_composer_get_message_draft (EMsgComposer *composer,
+ GError **error)
{
GtkhtmlEditor *editor;
EComposerHeaderTable *table;
@@ -3917,7 +3918,7 @@ e_msg_composer_get_message_draft (EMsgComposer *composer)
smime_encrypt = gtk_toggle_action_get_active (action);
gtk_toggle_action_set_active (action, FALSE);
- msg = build_message (composer, TRUE, TRUE);
+ msg = build_message (composer, TRUE, TRUE, error);
if (msg == NULL)
return NULL;
@@ -3933,9 +3934,6 @@ e_msg_composer_get_message_draft (EMsgComposer *composer)
action = GTK_TOGGLE_ACTION (ACTION (SMIME_ENCRYPT));
gtk_toggle_action_set_active (action, smime_encrypt);
- if (msg == NULL)
- return NULL;
-
/* Attach account info to the draft. */
account = e_composer_header_table_get_account (table);
if (account && account->name)