diff options
Diffstat (limited to 'composer')
-rw-r--r-- | composer/e-composer-actions.c | 17 | ||||
-rw-r--r-- | composer/e-msg-composer.c | 30 | ||||
-rw-r--r-- | composer/e-msg-composer.h | 2 |
3 files changed, 32 insertions, 17 deletions
diff --git a/composer/e-composer-actions.c b/composer/e-composer-actions.c index ecf9f179f6..71065d6996 100644 --- a/composer/e-composer-actions.c +++ b/composer/e-composer-actions.c @@ -22,7 +22,6 @@ #include <fcntl.h> #include <e-util/e-error.h> #include <mail/em-event.h> -#include <mail/em-format-html-print.h> #include <mail/em-composer-utils.h> #include "misc/e-charset-picker.h" @@ -184,15 +183,9 @@ action_print_cb (GtkAction *action, EMsgComposer *composer) { GtkPrintOperationAction print_action; - CamelMimeMessage *message; - EMFormatHTMLPrint *efhp; print_action = GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG; - message = e_msg_composer_get_message (composer, 1); - - efhp = em_format_html_print_new (NULL, print_action); - em_format_html_print_raw_message (efhp, message); - g_object_unref (efhp); + e_msg_composer_print (composer, print_action); } static void @@ -200,15 +193,9 @@ action_print_preview_cb (GtkAction *action, EMsgComposer *composer) { GtkPrintOperationAction print_action; - CamelMimeMessage *message; - EMFormatHTMLPrint *efhp; print_action = GTK_PRINT_OPERATION_ACTION_PREVIEW; - message = e_msg_composer_get_message_print (composer, 1); - - efhp = em_format_html_print_new (NULL, print_action); - em_format_html_print_raw_message (efhp, message); - g_object_unref (efhp); + e_msg_composer_print (composer, print_action); } static void diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index dee28d0691..8eb72649ac 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -132,6 +132,7 @@ typedef enum { enum { SEND, SAVE_DRAFT, + PRINT, LAST_SIGNAL }; @@ -2695,7 +2696,7 @@ msg_composer_class_init (EMsgComposerClass *class) signals[SEND] = g_signal_new ( "send", - E_TYPE_MSG_COMPOSER, + G_OBJECT_CLASS_TYPE (class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, @@ -2703,11 +2704,20 @@ msg_composer_class_init (EMsgComposerClass *class) signals[SAVE_DRAFT] = g_signal_new ( "save-draft", - E_TYPE_MSG_COMPOSER, + G_OBJECT_CLASS_TYPE (class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + signals[PRINT] = g_signal_new ( + "print", + G_OBJECT_CLASS_TYPE (class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__ENUM, + G_TYPE_NONE, 1, + GTK_TYPE_PRINT_OPERATION_ACTION); } static void @@ -3785,6 +3795,22 @@ e_msg_composer_save_draft (EMsgComposer *composer) e_composer_autosave_set_saved (composer, FALSE); } +/** + * e_msg_composer_print: + * @composer: an #EMsgComposer + * @action: the print action to start + * + * Print the message in @composer. + **/ +void +e_msg_composer_print (EMsgComposer *composer, + GtkPrintOperationAction action) +{ + g_return_if_fail (E_IS_MSG_COMPOSER (composer)); + + g_signal_emit (composer, signals[PRINT], 0, action); +} + static GList * add_recipients (GList *list, const gchar *recips) { diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h index c37845b5ca..5252f691e4 100644 --- a/composer/e-msg-composer.h +++ b/composer/e-msg-composer.h @@ -83,6 +83,8 @@ CamelSession * e_msg_composer_get_session (EMsgComposer *composer); void e_msg_composer_send (EMsgComposer *composer); void e_msg_composer_save_draft (EMsgComposer *composer); +void e_msg_composer_print (EMsgComposer *composer, + GtkPrintOperationAction action); void e_msg_composer_set_alternative (EMsgComposer *composer, gboolean alt); |