From 0b05edb04fdef579fa268243c391e75c145991b6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 16 Jun 2006 16:57:02 +0000 Subject: [PATCH] Move the registration of the gtk-print-preview-command setting from 2006-06-16 Matthias Clasen * gtk/gtkprintoperation-unix.c: * gtk/gtkprintbackend.c: Move the registration of the gtk-print-preview-command setting from gtkprintbackend.c to gtkprintoperation-unix.c, to make sure it is registered before the first use. Also, document the two settings. --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ gtk/gtkprintbackend.c | 14 +++++++++----- gtk/gtkprintoperation-unix.c | 31 +++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0e16361522..720ee78641 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2006-06-16 Matthias Clasen + * gtk/gtkprintoperation-unix.c: + * gtk/gtkprintbackend.c: Move the registration of the + gtk-print-preview-command setting from gtkprintbackend.c to + gtkprintoperation-unix.c, to make sure it is registered before + the first use. Also, document the two settings. + * tests/print-editor.c: Add a "Preview" menu item. * gtk/gtkprintoperation-unix.c (handle_print_response): When starting diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 0e16361522..720ee78641 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,11 @@ 2006-06-16 Matthias Clasen + * gtk/gtkprintoperation-unix.c: + * gtk/gtkprintbackend.c: Move the registration of the + gtk-print-preview-command setting from gtkprintbackend.c to + gtkprintoperation-unix.c, to make sure it is registered before + the first use. Also, document the two settings. + * tests/print-editor.c: Add a "Preview" menu item. * gtk/gtkprintoperation-unix.c (handle_print_response): When starting diff --git a/gtk/gtkprintbackend.c b/gtk/gtkprintbackend.c index cbcf21e8fb..a70582b7a1 100644 --- a/gtk/gtkprintbackend.c +++ b/gtk/gtkprintbackend.c @@ -248,17 +248,21 @@ gtk_print_backend_initialize (void) if (!initialized) { + /** + * GtkSettings::gtk-print-backends: + * + * A comma-separated list of print backends to use in the print + * dialog. Available print backends depend on the GTK+ installation, + * and may include "pdf", "cups" or "lpr". + * + * Since: 2.10 + */ gtk_settings_install_property (g_param_spec_string ("gtk-print-backends", P_("Default print backend"), P_("List of the GtkPrintBackend backends to use by default"), GTK_PRINT_BACKENDS, GTK_PARAM_READWRITE)); - gtk_settings_install_property (g_param_spec_string ("gtk-print-preview-command", - P_("Default command to run when displaying a print preview"), - P_("Command to run when displaying a print preview"), - GTK_PRINT_PREVIEW_COMMAND, - GTK_PARAM_READWRITE)); initialized = TRUE; } } diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c index 0de8add643..0b7014b84c 100644 --- a/gtk/gtkprintoperation-unix.c +++ b/gtk/gtkprintoperation-unix.c @@ -36,6 +36,7 @@ #include #include +#include "gtkprivate.h" #include "gtkprintunixdialog.h" #include "gtkpagesetupunixdialog.h" #include "gtkprintbackend.h" @@ -164,6 +165,34 @@ shell_command_substitute_file (const gchar *cmd, return result; } +static void +gtk_print_operation_unix_initialize (void) +{ + static gboolean initialized = FALSE; + + if (!initialized) + { + /** + * GtkSettings::gtk-print-preview-command: + * + * A command to run for displaying the print preview. The command + * should contain a %f placeholder, which will get replaced by + * the path to the pdf file. + * + * The preview application is responsible for removing the pdf file + * when it is done. + * + * Since: 2.10 + */ + gtk_settings_install_property (g_param_spec_string ("gtk-print-preview-command", + P_("Default command to run when displaying a print preview"), + P_("Command to run when displaying a print preview"), + GTK_PRINT_PREVIEW_COMMAND, + GTK_PARAM_READWRITE)); + initialized = TRUE; + } +} + void _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op, cairo_surface_t *surface, @@ -179,6 +208,8 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op, GdkScreen *screen; GError *error = NULL; + gtk_print_operation_unix_initialize (); + cairo_surface_destroy (surface); settings = gtk_settings_get_default ();