aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-composer-utils.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-01-22 06:40:22 +0800
committerMatthew Barnes <mbarnes@redhat.com>2011-01-22 06:40:22 +0800
commit54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3 (patch)
tree6ccb94678a99f3e6ab8b464a170893aa16df3726 /mail/em-composer-utils.c
parentb1565f53d797fe4dbbf7256eca060eb4d8ee9ee4 (diff)
downloadgsoc2013-evolution-54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3.tar
gsoc2013-evolution-54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3.tar.gz
gsoc2013-evolution-54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3.tar.bz2
gsoc2013-evolution-54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3.tar.lz
gsoc2013-evolution-54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3.tar.xz
gsoc2013-evolution-54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3.tar.zst
gsoc2013-evolution-54ae8f0a7dfd79bed00757ef1f17f0ede085a7a3.zip
Bug 640091 - Improve error handling during send post-processing
If a newly-composed message was successfully sent but an error occurred during post-processing (outgoing filters or appending to a Sent folder), close the composer window and show an alert in the main window.
Diffstat (limited to 'mail/em-composer-utils.c')
-rw-r--r--mail/em-composer-utils.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 5dfa1ffa05..2668e2f1e0 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -489,7 +489,21 @@ composer_send_completed (EMailSession *session,
goto exit;
}
- if (error != NULL) {
+ /* Post-processing errors are shown in the shell window. */
+ if (g_error_matches (error, E_MAIL_ERROR, E_MAIL_ERROR_POST_PROCESSING)) {
+ EAlert *alert;
+ EShell *shell;
+
+ shell = e_msg_composer_get_shell (context->composer);
+
+ alert = e_alert_new (
+ "mail-composer:send-post-processing-error",
+ error->message, NULL);
+ e_shell_submit_alert (shell, alert);
+ g_object_unref (alert);
+
+ /* All other errors are shown in the composer window. */
+ } else if (error != NULL) {
gint response;
/* Clear the activity bar before