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:
@ -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);
|
||||
|
Reference in New Issue
Block a user