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 01:16:57 +0800
commit13664a883d98f204d3006cc9636551996ea38686 (patch)
treeb374dab076f4cfd5438528c306d2d8ac472c448a /mail/em-composer-utils.c
parent25095070ca8226941e5665609dce3106400a56ff (diff)
downloadgsoc2013-evolution-13664a883d98f204d3006cc9636551996ea38686.tar
gsoc2013-evolution-13664a883d98f204d3006cc9636551996ea38686.tar.gz
gsoc2013-evolution-13664a883d98f204d3006cc9636551996ea38686.tar.bz2
gsoc2013-evolution-13664a883d98f204d3006cc9636551996ea38686.tar.lz
gsoc2013-evolution-13664a883d98f204d3006cc9636551996ea38686.tar.xz
gsoc2013-evolution-13664a883d98f204d3006cc9636551996ea38686.tar.zst
gsoc2013-evolution-13664a883d98f204d3006cc9636551996ea38686.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. (cherry picked from commit 16a95bfa16b3864268e0ab0916bb6c02ec626fe0)
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 8729fa4cbc..3e2d3c3595 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -944,38 +944,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);
}