aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-composer-utils.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-05-10 23:08:19 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-05-11 00:24:13 +0800
commit16a95bfa16b3864268e0ab0916bb6c02ec626fe0 (patch)
treecf790b2179506c4eab10bad7fb41880379c2e872 /mail/em-composer-utils.c
parent3acb2d672821efd599d1fad0a55808de6b9bd495 (diff)
downloadgsoc2013-evolution-16a95bfa16b3864268e0ab0916bb6c02ec626fe0.tar
gsoc2013-evolution-16a95bfa16b3864268e0ab0916bb6c02ec626fe0.tar.gz
gsoc2013-evolution-16a95bfa16b3864268e0ab0916bb6c02ec626fe0.tar.bz2
gsoc2013-evolution-16a95bfa16b3864268e0ab0916bb6c02ec626fe0.tar.lz
gsoc2013-evolution-16a95bfa16b3864268e0ab0916bb6c02ec626fe0.tar.xz
gsoc2013-evolution-16a95bfa16b3864268e0ab0916bb6c02ec626fe0.tar.zst
gsoc2013-evolution-16a95bfa16b3864268e0ab0916bb6c02ec626fe0.zip
Convert e_mail_printer_print() to a proper async function.
This adds a GAsyncReadyCallback and a closure to e_mail_printer_print(), and trades the "done" signal for e_mail_printer_print_finish() so that EMailPrinter is a little more reentrant.
Diffstat (limited to 'mail/em-composer-utils.c')
-rw-r--r--mail/em-composer-utils.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 5d6ba26c5f..0f801b4266 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -958,38 +958,27 @@ em_utils_composer_save_to_outbox_cb (EMsgComposer *composer,
}
static void
-composer_print_done_cb (EMailPrinter *emp,
- GtkPrintOperation *operation,
- GtkPrintOperationResult result,
- gpointer user_data)
-{
- g_object_unref (emp);
-}
-
-static void
em_utils_composer_print_cb (EMsgComposer *composer,
GtkPrintOperationAction action,
CamelMimeMessage *message,
EActivity *activity,
EMailSession *session)
{
- EMailPrinter *emp;
EMailParser *parser;
EMailPartList *parts;
+ EMailPrinter *printer;
const gchar *message_id;
parser = e_mail_parser_new (CAMEL_SESSION (session));
message_id = camel_mime_message_get_message_id (message);
- parts = e_mail_parser_parse_sync (parser, NULL, g_strdup (message_id), message, NULL);
-
- /* Use EMailPrinter and WebKit to print the message */
- emp = e_mail_printer_new (parts);
- g_signal_connect (
- emp, "done",
- G_CALLBACK (composer_print_done_cb), NULL);
+ parts = e_mail_parser_parse_sync (
+ parser, NULL, g_strdup (message_id), message, NULL);
- e_mail_printer_print (emp, action, NULL, NULL);
+ /* FIXME Show an alert on error. */
+ printer = e_mail_printer_new (parts);
+ e_mail_printer_print (printer, action, NULL, NULL, NULL, NULL);
+ g_object_unref (printer);
g_object_unref (parts);
}