aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/print-message
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@src.gnome.org>2007-04-20 14:57:55 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2007-04-20 14:57:55 +0800
commit4a044a636e418f4c95a85819aa92316e21f58b35 (patch)
treefed737c87045e269aa840b770172fb798682fd10 /plugins/print-message
parentba064da784cd29692e0db6d4560c7e7a8c68aeeb (diff)
downloadgsoc2013-evolution-4a044a636e418f4c95a85819aa92316e21f58b35.tar.gz
gsoc2013-evolution-4a044a636e418f4c95a85819aa92316e21f58b35.tar.zst
gsoc2013-evolution-4a044a636e418f4c95a85819aa92316e21f58b35.zip
Clean up printing in Evolution (bug #426816)
svn path=/trunk/; revision=33440
Diffstat (limited to 'plugins/print-message')
-rw-r--r--plugins/print-message/ChangeLog5
-rw-r--r--plugins/print-message/print-message.c77
2 files changed, 24 insertions, 58 deletions
diff --git a/plugins/print-message/ChangeLog b/plugins/print-message/ChangeLog
index 22020bc06d..506cffce8b 100644
--- a/plugins/print-message/ChangeLog
+++ b/plugins/print-message/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-20 Matthew Barnes <mbarnes@redhat.com>
+
+ * print-message.c:
+ Refactor the printing infrastructure. (#426816)
+
2007-02-12 Srinivasa Ragavan <sragavan@novell.com>
** Print migration updates from Ebby Wiselyn
diff --git a/plugins/print-message/print-message.c b/plugins/print-message/print-message.c
index 087aa82370..14b5e4655f 100644
--- a/plugins/print-message/print-message.c
+++ b/plugins/print-message/print-message.c
@@ -30,7 +30,6 @@
#include "mail/em-format-html-print.h"
#include <glib.h>
#include <glib/gi18n.h>
-#include <libgnomeprintui/gnome-print-dialog.h>
#include "mail/em-menu.h"
#include "mail/em-utils.h"
#include "e-util/e-print.h"
@@ -39,72 +38,34 @@
void org_gnome_compose_print_message (EPlugin *ep, EMMenuTargetWidget *t);
-struct _print_data {
- GtkPrintSettings *config;
- CamelMimeMessage *msg;
- int preview;
-};
-
-static void
-print_response (GtkWidget *w, int resp, struct _print_data *data)
-{
- EMFormatHTMLPrint *print;
-
- switch (resp) {
- case GTK_RESPONSE_APPLY:
- data->preview = TRUE;
- case GTK_RESPONSE_OK:
- print = em_format_html_print_new();
- em_format_html_print_raw_message(print, data->config, data->msg, data->preview);
- g_object_unref(print);
- break;
- }
-
- if (w)
- gtk_widget_destroy(w);
-
- e_print_save_settings (data->config);
- g_object_unref(data->config);
- g_free(data);
-
-}
-
-void org_gnome_print_message (EPlugin *ep, EMMenuTargetWidget *t);
-
void
org_gnome_print_message (EPlugin *ep, EMMenuTargetWidget *t)
{
-
EMsgComposer *composer = (EMsgComposer *)t->target.widget;
- struct _print_data *data;
- GtkDialog *dialog;
-
- data = g_malloc0(sizeof(*data));
- data->config = e_print_load_settings ();
- data->preview = 0;
-
- data->msg = e_msg_composer_get_message (composer, 1);
- dialog = (GtkDialog *)e_print_get_dialog_with_config (_("Print Message"), 0, data->config);
- gtk_dialog_set_default_response(dialog, GTK_RESPONSE_OK);
- e_dialog_set_transient_for ((GtkWindow *) dialog, (GtkWidget *) composer);
- print_response (dialog, GTK_RESPONSE_OK, data);
-}
+ GtkPrintOperationAction action;
+ CamelMimeMessage *message;
+ EMFormatHTMLPrint *efhp;
-void org_gnome_print_preview (EPlugin *ep, EMMenuTargetWidget *t);
+ action = GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG;
+ message = e_msg_composer_get_message (composer, 1);
+
+ efhp = em_format_html_print_new (NULL, action);
+ em_format_html_print_raw_message (efhp, message);
+ g_object_unref (efhp);
+}
void
org_gnome_print_preview (EPlugin *ep, EMMenuTargetWidget *t)
{
EMsgComposer *composer = (EMsgComposer *)t->target.widget;
- struct _print_data *data;
-
- data = g_malloc0(sizeof(*data));
- data->config = e_print_load_settings ();
- data->preview = 0;
-
- data->msg = e_msg_composer_get_message (composer, 1);
-
- print_response(NULL, GTK_RESPONSE_APPLY, data);
-}
+ GtkPrintOperationAction action;
+ CamelMimeMessage *message;
+ EMFormatHTMLPrint *efhp;
+ action = GTK_PRINT_OPERATION_ACTION_PREVIEW;
+ message = e_msg_composer_get_message (composer, 1);
+ efhp = em_format_html_print_new (NULL, action);
+ em_format_html_print_raw_message (efhp, message);
+ g_object_unref (efhp);
+}