Show correct print preview

Modify print preview according to settings from print dialog.
Similar approach as during real print is applied to the preview
process (#592582).
This commit is contained in:
Marek Kasik
2009-10-26 17:47:37 +01:00
parent 567b23229f
commit 6b5912a213
3 changed files with 117 additions and 72 deletions

View File

@ -207,7 +207,7 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
gchar *cmd;
gchar *preview_cmd;
GtkSettings *settings;
GtkPrintSettings *print_settings;
GtkPrintSettings *print_settings = NULL;
GtkPageSetup *page_setup;
GKeyFile *key_file = NULL;
gchar *data = NULL;
@ -235,8 +235,28 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
key_file = g_key_file_new ();
print_settings = gtk_print_operation_get_print_settings (op);
gtk_print_settings_to_key_file (print_settings, key_file, NULL);
print_settings = gtk_print_settings_copy (gtk_print_operation_get_print_settings (op));
if (print_settings != NULL)
{
gtk_print_settings_set_reverse (print_settings, FALSE);
gtk_print_settings_set_page_set (print_settings, GTK_PAGE_SET_ALL);
gtk_print_settings_set_scale (print_settings, 1.0);
gtk_print_settings_set_number_up (print_settings, 1);
gtk_print_settings_set_number_up_layout (print_settings, GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM);
/* These removals are neccessary because cups-* settings have higher priority
* than normal settings.
*/
gtk_print_settings_unset (print_settings, "cups-reverse");
gtk_print_settings_unset (print_settings, "cups-page-set");
gtk_print_settings_unset (print_settings, "cups-scale");
gtk_print_settings_unset (print_settings, "cups-number-up");
gtk_print_settings_unset (print_settings, "cups-number-up-layout");
gtk_print_settings_to_key_file (print_settings, key_file, NULL);
g_object_unref (print_settings);
}
page_setup = gtk_print_context_get_page_setup (op->priv->print_context);
gtk_page_setup_to_key_file (page_setup, key_file, NULL);