From 16a95bfa16b3864268e0ab0916bb6c02ec626fe0 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 10 May 2013 11:08:19 -0400 Subject: 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. --- mail/em-composer-utils.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'mail/em-composer-utils.c') 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 @@ -957,15 +957,6 @@ em_utils_composer_save_to_outbox_cb (EMsgComposer *composer, camel_message_info_free (info); } -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, @@ -973,23 +964,21 @@ em_utils_composer_print_cb (EMsgComposer *composer, 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); } -- cgit v1.2.3