Remove sealed members from GtkPrintJob
Also add accessors for these members, and use them in print backends.
This commit is contained in:
		| @ -6668,6 +6668,26 @@ gtk_print_job_get_surface | ||||
| gtk_print_job_send | ||||
| gtk_print_job_set_track_print_status | ||||
| gtk_print_job_get_track_print_status | ||||
| gtk_print_job_get_pages | ||||
| gtk_print_job_set_pages | ||||
| gtk_print_job_get_page_ranges | ||||
| gtk_print_job_set_page_ranges | ||||
| gtk_print_job_get_page_set | ||||
| gtk_print_job_set_page_set | ||||
| gtk_print_job_get_num_copies | ||||
| gtk_print_job_set_num_copies | ||||
| gtk_print_job_get_scale | ||||
| gtk_print_job_set_scale | ||||
| gtk_print_job_get_n_up | ||||
| gtk_print_job_set_n_up | ||||
| gtk_print_job_get_n_up_layout | ||||
| gtk_print_job_set_n_up_layout | ||||
| gtk_print_job_get_rotate | ||||
| gtk_print_job_set_rotate | ||||
| gtk_print_job_get_collate | ||||
| gtk_print_job_set_collate | ||||
| gtk_print_job_get_reverse | ||||
| gtk_print_job_set_reverse | ||||
|  | ||||
| <SUBSECTION Standard> | ||||
| GTK_TYPE_PRINT_JOB | ||||
|  | ||||
| @ -1776,7 +1776,17 @@ gtk_printer_set_is_paused | ||||
| gtk_printer_set_job_count | ||||
| gtk_printer_set_location | ||||
| gtk_printer_set_state_message | ||||
| gtk_print_job_get_collate | ||||
| gtk_print_job_get_n_up | ||||
| gtk_print_job_get_n_up_layout | ||||
| gtk_print_job_get_num_copies | ||||
| gtk_print_job_get_pages | ||||
| gtk_print_job_get_page_ranges | ||||
| gtk_print_job_get_page_set | ||||
| gtk_print_job_get_printer | ||||
| gtk_print_job_get_reverse | ||||
| gtk_print_job_get_rotate | ||||
| gtk_print_job_get_scale | ||||
| gtk_print_job_get_settings | ||||
| gtk_print_job_get_status | ||||
| gtk_print_job_get_surface | ||||
| @ -1785,6 +1795,16 @@ gtk_print_job_get_track_print_status | ||||
| gtk_print_job_get_type G_GNUC_CONST | ||||
| gtk_print_job_new | ||||
| gtk_print_job_send | ||||
| gtk_print_job_set_collate | ||||
| gtk_print_job_set_n_up | ||||
| gtk_print_job_set_n_up_layout | ||||
| gtk_print_job_set_num_copies | ||||
| gtk_print_job_set_pages | ||||
| gtk_print_job_set_page_ranges | ||||
| gtk_print_job_set_page_set | ||||
| gtk_print_job_set_reverse | ||||
| gtk_print_job_set_rotate | ||||
| gtk_print_job_set_scale | ||||
| gtk_print_job_set_source_file | ||||
| gtk_print_job_set_status | ||||
| gtk_print_job_set_track_print_status | ||||
|  | ||||
| @ -50,17 +50,28 @@ struct _GtkPrintJobPrivate | ||||
|   cairo_surface_t *surface; | ||||
|  | ||||
|   GtkPrintStatus status; | ||||
|   GtkPrintBackend *backend;   | ||||
|   GtkPrintBackend *backend; | ||||
|   GtkPrinter *printer; | ||||
|   GtkPrintSettings *settings; | ||||
|   GtkPageSetup *page_setup; | ||||
|  | ||||
|   guint printer_set : 1; | ||||
|   guint page_setup_set : 1; | ||||
|   guint settings_set  : 1; | ||||
|   guint track_print_status : 1; | ||||
| }; | ||||
|   GtkPrintPages print_pages; | ||||
|   GtkPageRange *page_ranges; | ||||
|   gint num_page_ranges; | ||||
|   GtkPageSet page_set; | ||||
|   gint num_copies; | ||||
|   gdouble scale; | ||||
|   guint number_up; | ||||
|   GtkNumberUpLayout number_up_layout; | ||||
|  | ||||
|   guint printer_set           : 1; | ||||
|   guint page_setup_set        : 1; | ||||
|   guint settings_set          : 1; | ||||
|   guint track_print_status    : 1; | ||||
|   guint rotate_to_orientation : 1; | ||||
|   guint collate               : 1; | ||||
|   guint reverse               : 1; | ||||
| }; | ||||
|  | ||||
| #define GTK_PRINT_JOB_GET_PRIVATE(o)  \ | ||||
|    (G_TYPE_INSTANCE_GET_PRIVATE ((o), GTK_TYPE_PRINT_JOB, GtkPrintJobPrivate)) | ||||
| @ -180,7 +191,7 @@ gtk_print_job_init (GtkPrintJob *job) | ||||
| { | ||||
|   GtkPrintJobPrivate *priv; | ||||
|  | ||||
|   priv = job->priv = GTK_PRINT_JOB_GET_PRIVATE (job);  | ||||
|   priv = job->priv = GTK_PRINT_JOB_GET_PRIVATE (job); | ||||
|  | ||||
|   priv->spool_io = NULL; | ||||
|  | ||||
| @ -194,18 +205,18 @@ gtk_print_job_init (GtkPrintJob *job) | ||||
|   priv->page_setup_set = FALSE; | ||||
|   priv->status = GTK_PRINT_STATUS_INITIAL; | ||||
|   priv->track_print_status = FALSE; | ||||
|    | ||||
|   job->print_pages = GTK_PRINT_PAGES_ALL; | ||||
|   job->page_ranges = NULL; | ||||
|   job->num_page_ranges = 0; | ||||
|   job->collate = FALSE; | ||||
|   job->reverse = FALSE; | ||||
|   job->num_copies = 1; | ||||
|   job->scale = 1.0; | ||||
|   job->page_set = GTK_PAGE_SET_ALL; | ||||
|   job->rotate_to_orientation = FALSE; | ||||
|   job->number_up = 1; | ||||
|   job->number_up_layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM; | ||||
|  | ||||
|   priv->print_pages = GTK_PRINT_PAGES_ALL; | ||||
|   priv->page_ranges = NULL; | ||||
|   priv->num_page_ranges = 0; | ||||
|   priv->collate = FALSE; | ||||
|   priv->reverse = FALSE; | ||||
|   priv->num_copies = 1; | ||||
|   priv->scale = 1.0; | ||||
|   priv->page_set = GTK_PAGE_SET_ALL; | ||||
|   priv->rotate_to_orientation = FALSE; | ||||
|   priv->number_up = 1; | ||||
|   priv->number_up_layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM; | ||||
| } | ||||
|  | ||||
|  | ||||
| @ -250,7 +261,7 @@ gtk_print_job_finalize (GObject *object) | ||||
|       g_io_channel_unref (priv->spool_io); | ||||
|       priv->spool_io = NULL; | ||||
|     } | ||||
|    | ||||
|  | ||||
|   if (priv->backend) | ||||
|     g_object_unref (priv->backend); | ||||
|  | ||||
| @ -262,13 +273,13 @@ gtk_print_job_finalize (GObject *object) | ||||
|  | ||||
|   if (priv->settings) | ||||
|     g_object_unref (priv->settings); | ||||
|    | ||||
|  | ||||
|   if (priv->page_setup) | ||||
|     g_object_unref (priv->page_setup); | ||||
|  | ||||
|   g_free (job->page_ranges); | ||||
|   job->page_ranges = NULL; | ||||
|    | ||||
|   g_free (priv->page_ranges); | ||||
|   priv->page_ranges = NULL; | ||||
|  | ||||
|   g_free (priv->title); | ||||
|   priv->title = NULL; | ||||
|  | ||||
| @ -683,3 +694,330 @@ gtk_print_job_send (GtkPrintJob             *job, | ||||
| 				  priv->spool_io, | ||||
|                                   callback, user_data, dnotify); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_pages: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets the #GtkPrintPages setting for this job. | ||||
|  * | ||||
|  * Returns: the #GtkPrintPages setting | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| GtkPrintPages | ||||
| gtk_print_job_get_pages (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->print_pages; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_pages: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @pages: the #GtkPrintPages setting | ||||
|  * | ||||
|  * Sets the #GtkPrintPages setting for this job. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_pages (GtkPrintJob   *job, | ||||
|                          GtkPrintPages  pages) | ||||
| { | ||||
|   job->priv->print_pages = pages; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_page_ranges: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @n_ranges: (out): return location for the number of ranges | ||||
|  * | ||||
|  * Gets the page ranges for this job. | ||||
|  * | ||||
|  * Returns: a pointer to an array of #GtkPageRange structs | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| GtkPageRange * | ||||
| gtk_print_job_get_page_ranges (GtkPrintJob *job, | ||||
|                                gint        *n_ranges) | ||||
| { | ||||
|   *n_ranges = job->priv->num_page_ranges; | ||||
|   return job->priv->page_ranges; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_page_ranges: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @ranges: pointer to an array of #GtkPageRange structs | ||||
|  * @n_ranges: the length of the @ranges array | ||||
|  * | ||||
|  * Sets the page ranges for this job. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_page_ranges (GtkPrintJob  *job, | ||||
|                                GtkPageRange *ranges, | ||||
|                                gint          n_ranges) | ||||
| { | ||||
|   job->priv->page_ranges = ranges; | ||||
|   job->priv->num_page_ranges = n_ranges; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_page_set: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets the #GtkPageSet setting for this job. | ||||
|  * | ||||
|  * Returns: the #GtkPageSet setting | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| GtkPageSet | ||||
| gtk_print_job_get_page_set (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->page_set; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_page_set: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @page_set: a #GtkPageSet setting | ||||
|  * | ||||
|  * Sets the #GtkPageSet setting for this job. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_page_set (GtkPrintJob *job, | ||||
|                             GtkPageSet   page_set) | ||||
| { | ||||
|   job->priv->page_set = page_set; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_num_copies: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets the number of copies of this job. | ||||
|  * | ||||
|  * Returns: the number of copies | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| gint | ||||
| gtk_print_job_get_num_copies (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->num_copies; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_num_copies: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @num_copies: the number of copies | ||||
|  * | ||||
|  * Sets the number of copies for this job. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_num_copies (GtkPrintJob *job, | ||||
|                               gint         num_copies) | ||||
| { | ||||
|   job->priv->num_copies = num_copies; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_scale: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets the scale for this job (where 1.0 means unscaled). | ||||
|  * | ||||
|  * Returns: the scale | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| gdouble | ||||
| gtk_print_job_get_scale (GtkPrintJob *job) | ||||
|  | ||||
| { | ||||
|   return job->priv->scale; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_scale: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @scale: the scale | ||||
|  * | ||||
|  * Sets the scale for this job (where 1.0 means unscaled). | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_scale (GtkPrintJob *job, | ||||
|                          gdouble      scale) | ||||
| { | ||||
|   job->priv->scale = scale; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_n_up: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets the n-up setting for this job. | ||||
|  * | ||||
|  * Returns: the n-up setting | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| guint | ||||
| gtk_print_job_get_n_up (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->number_up; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_n_up: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @n_up: the n-up value | ||||
|  * | ||||
|  * Sets the n-up setting for this job. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_n_up (GtkPrintJob *job, | ||||
|                         guint        n_up) | ||||
| { | ||||
|   job->priv->number_up = n_up; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_n_up_layout: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets the n-up layout setting for this job. | ||||
|  * | ||||
|  * Returns: the n-up layout | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| GtkNumberUpLayout | ||||
| gtk_print_job_get_n_up_layout (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->number_up_layout; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_n_up_layout: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @layout: the n-up layout setting | ||||
|  * | ||||
|  * Sets the n-up layout setting for this job. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_n_up_layout (GtkPrintJob       *job, | ||||
|                                GtkNumberUpLayout  layout) | ||||
| { | ||||
|   job->priv->number_up_layout = layout; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_rotate: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets whether the job is printed rotated. | ||||
|  * | ||||
|  * Returns: whether the job is printed rotated | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| gboolean | ||||
| gtk_print_job_get_rotate (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->rotate_to_orientation; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_rotate: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @rotate: whether to print rotated | ||||
|  * | ||||
|  * Sets whether this job is printed rotated. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_rotate (GtkPrintJob *job, | ||||
|                           gboolean     rotate) | ||||
| { | ||||
|   job->priv->rotate_to_orientation = rotate; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_collate: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets whether this job is printed collated. | ||||
|  * | ||||
|  * Returns: whether the job is printed collated | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| gboolean | ||||
| gtk_print_job_get_collate (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->collate; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_collated: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @collate: whether the job is printed collated | ||||
|  * | ||||
|  * Sets whether this job is printed collated. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_collate (GtkPrintJob *job, | ||||
|                            gboolean     collate) | ||||
| { | ||||
|   job->priv->collate = collate; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_get_reverse: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * | ||||
|  * Gets whether this job is printed reversed. | ||||
|  * | ||||
|  * Returns: whether the job is printed reversed. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| gboolean | ||||
| gtk_print_job_get_reverse (GtkPrintJob *job) | ||||
| { | ||||
|   return job->priv->reverse; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gtk_print_job_set_reverse: | ||||
|  * @job: a #GtkPrintJob | ||||
|  * @reverse: whether the job is printed reversed | ||||
|  * | ||||
|  * Sets whether this job is printed reversed. | ||||
|  * | ||||
|  * Since: 3.0 | ||||
|  */ | ||||
| void | ||||
| gtk_print_job_set_reverse (GtkPrintJob *job, | ||||
|                            gboolean     reverse) | ||||
| { | ||||
|   job->priv->reverse = reverse; | ||||
| } | ||||
|  | ||||
| @ -52,22 +52,7 @@ struct _GtkPrintJob | ||||
| { | ||||
|   GObject parent_instance; | ||||
|  | ||||
|   GtkPrintJobPrivate *GSEAL (priv); | ||||
|  | ||||
|   /* Settings the client has to implement: | ||||
|    * (These are read-only, set at initialization) | ||||
|    */ | ||||
|   GtkPrintPages GSEAL (print_pages); | ||||
|   GtkPageRange *GSEAL (page_ranges); | ||||
|   gint GSEAL (num_page_ranges); | ||||
|   GtkPageSet GSEAL (page_set); | ||||
|   gint GSEAL (num_copies); | ||||
|   gdouble GSEAL (scale); | ||||
|   guint GSEAL (rotate_to_orientation) : 1; | ||||
|   guint GSEAL (collate)               : 1; | ||||
|   guint GSEAL (reverse)               : 1; | ||||
|   guint GSEAL (number_up); | ||||
|   GtkNumberUpLayout GSEAL (number_up_layout); | ||||
|   GtkPrintJobPrivate *priv; | ||||
| }; | ||||
|  | ||||
| struct _GtkPrintJobClass | ||||
| @ -105,6 +90,39 @@ void                     gtk_print_job_send                   (GtkPrintJob | ||||
| 							       gpointer                  user_data, | ||||
| 							       GDestroyNotify            dnotify); | ||||
|  | ||||
| GtkPrintPages     gtk_print_job_get_pages       (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_pages       (GtkPrintJob       *job, | ||||
|                                                  GtkPrintPages      pages); | ||||
| GtkPageRange *    gtk_print_job_get_page_ranges (GtkPrintJob       *job, | ||||
|                                                  gint              *n_ranges); | ||||
| void              gtk_print_job_set_page_ranges (GtkPrintJob       *job, | ||||
|                                                  GtkPageRange      *ranges, | ||||
|                                                  gint               n_ranges); | ||||
| GtkPageSet        gtk_print_job_get_page_set    (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_page_set    (GtkPrintJob       *job, | ||||
|                                                  GtkPageSet         page_set); | ||||
| gint              gtk_print_job_get_num_copies  (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_num_copies  (GtkPrintJob       *job, | ||||
|                                                  gint               num_copies); | ||||
| gdouble           gtk_print_job_get_scale       (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_scale       (GtkPrintJob       *job, | ||||
|                                                  gdouble            scale); | ||||
| guint             gtk_print_job_get_n_up        (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_n_up        (GtkPrintJob       *job, | ||||
|                                                  guint              n_up); | ||||
| GtkNumberUpLayout gtk_print_job_get_n_up_layout (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_n_up_layout (GtkPrintJob       *job, | ||||
|                                                  GtkNumberUpLayout  layout); | ||||
| gboolean          gtk_print_job_get_rotate      (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_rotate      (GtkPrintJob       *job, | ||||
|                                                  gboolean           rotate); | ||||
| gboolean          gtk_print_job_get_collate     (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_collate     (GtkPrintJob       *job, | ||||
|                                                  gboolean           collate); | ||||
| gboolean          gtk_print_job_get_reverse     (GtkPrintJob       *job); | ||||
| void              gtk_print_job_set_reverse     (GtkPrintJob       *job, | ||||
|                                                  gboolean           reverse); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif /* __GTK_PRINT_JOB_H__ */ | ||||
|  | ||||
| @ -577,18 +577,16 @@ finish_print (PrintResponseData *rdata, | ||||
| 	    g_signal_connect (job, "status-changed", | ||||
| 			      G_CALLBACK (job_status_changed_cb), op); | ||||
| 	   | ||||
|           priv->print_pages = job->print_pages; | ||||
|           priv->page_ranges = job->page_ranges; | ||||
|           priv->num_page_ranges = job->num_page_ranges; | ||||
| 	   | ||||
|           priv->manual_num_copies = job->num_copies; | ||||
|           priv->manual_collation = job->collate; | ||||
|           priv->manual_reverse = job->reverse; | ||||
|           priv->manual_page_set = job->page_set; | ||||
|           priv->manual_scale = job->scale; | ||||
|           priv->manual_orientation = job->rotate_to_orientation; | ||||
|           priv->manual_number_up = job->number_up; | ||||
|           priv->manual_number_up_layout = job->number_up_layout; | ||||
|           priv->print_pages = gtk_print_job_get_pages (job); | ||||
|           priv->page_ranges = gtk_print_job_get_page_ranges (job, &priv->num_page_ranges); | ||||
|           priv->manual_num_copies = gtk_print_job_get_num_copies (job); | ||||
|           priv->manual_collation = gtk_print_job_get_collate (job); | ||||
|           priv->manual_reverse = gtk_print_job_get_reverse (job); | ||||
|           priv->manual_page_set = gtk_print_job_get_page_set (job); | ||||
|           priv->manual_scale = gtk_print_job_get_scale (job); | ||||
|           priv->manual_orientation = gtk_print_job_get_rotate (job); | ||||
|           priv->manual_number_up = gtk_print_job_get_n_up (job); | ||||
|           priv->manual_number_up_layout = gtk_print_job_get_n_up_layout (job); | ||||
|         } | ||||
|     }  | ||||
|  out: | ||||
|  | ||||
| @ -4366,44 +4366,49 @@ cups_printer_prepare_for_print (GtkPrinter       *printer, | ||||
| 				GtkPrintSettings *settings, | ||||
| 				GtkPageSetup     *page_setup) | ||||
| { | ||||
|   GtkPrintPages pages; | ||||
|   GtkPageRange *ranges; | ||||
|   gint n_ranges; | ||||
|   GtkPageSet page_set; | ||||
|   GtkPaperSize *paper_size; | ||||
|   const char *ppd_paper_name; | ||||
|   double scale; | ||||
|  | ||||
|   print_job->print_pages = gtk_print_settings_get_print_pages (settings); | ||||
|   print_job->page_ranges = NULL; | ||||
|   print_job->num_page_ranges = 0; | ||||
|    | ||||
|   if (print_job->print_pages == GTK_PRINT_PAGES_RANGES) | ||||
|     print_job->page_ranges = | ||||
|       gtk_print_settings_get_page_ranges (settings, | ||||
| 					  &print_job->num_page_ranges); | ||||
|    | ||||
|   pages = gtk_print_settings_get_print_pages (settings); | ||||
|   gtk_print_job_set_pages (print_job, pages); | ||||
|  | ||||
|   if (pages == GTK_PRINT_PAGES_RANGES) | ||||
|     ranges = gtk_print_settings_get_page_ranges (settings, &n_ranges); | ||||
|   else | ||||
|     { | ||||
|       ranges = NULL; | ||||
|       n_ranges = 0; | ||||
|     } | ||||
|  | ||||
|   gtk_print_job_set_page_ranges (print_job, ranges, n_ranges); | ||||
|   if (gtk_print_settings_get_collate (settings)) | ||||
|     gtk_print_settings_set (settings, "cups-Collate", "True"); | ||||
|   print_job->collate = FALSE; | ||||
|   gtk_print_job_set_collate (print_job, FALSE); | ||||
|  | ||||
|   if (gtk_print_settings_get_reverse (settings)) | ||||
|     gtk_print_settings_set (settings, "cups-OutputOrder", "Reverse"); | ||||
|   print_job->reverse = FALSE; | ||||
|   gtk_print_job_set_reverse (print_job, FALSE); | ||||
|  | ||||
|   if (gtk_print_settings_get_n_copies (settings) > 1) | ||||
|     gtk_print_settings_set_int (settings, "cups-copies", | ||||
| 				gtk_print_settings_get_n_copies (settings)); | ||||
|   print_job->num_copies = 1; | ||||
|                                 gtk_print_settings_get_n_copies (settings)); | ||||
|   gtk_print_job_set_num_copies (print_job, 1); | ||||
|  | ||||
|   scale = gtk_print_settings_get_scale (settings); | ||||
|   print_job->scale = 1.0; | ||||
|   if (scale != 100.0) | ||||
|     print_job->scale = scale/100.0; | ||||
|     gtk_print_job_set_scale (print_job, scale / 100.0); | ||||
|  | ||||
|   page_set = gtk_print_settings_get_page_set (settings); | ||||
|   if (page_set == GTK_PAGE_SET_EVEN) | ||||
|     gtk_print_settings_set (settings, "cups-page-set", "even"); | ||||
|   else if (page_set == GTK_PAGE_SET_ODD) | ||||
|     gtk_print_settings_set (settings, "cups-page-set", "odd"); | ||||
|   print_job->page_set = GTK_PAGE_SET_ALL; | ||||
|   gtk_print_job_set_page_set (print_job, GTK_PAGE_SET_ALL); | ||||
|  | ||||
|   paper_size = gtk_page_setup_get_paper_size (page_setup); | ||||
|   ppd_paper_name = gtk_paper_size_get_ppd_name (paper_size); | ||||
| @ -4455,7 +4460,7 @@ cups_printer_prepare_for_print (GtkPrinter       *printer, | ||||
|       g_type_class_unref (enum_class); | ||||
|     } | ||||
|  | ||||
|   print_job->rotate_to_orientation = TRUE; | ||||
|   gtk_print_job_set_rotate (print_job, TRUE); | ||||
| } | ||||
|  | ||||
| static GtkPageSetup * | ||||
|  | ||||
| @ -706,28 +706,34 @@ file_printer_prepare_for_print (GtkPrinter       *printer, | ||||
| 				GtkPageSetup     *page_setup) | ||||
| { | ||||
|   gdouble scale; | ||||
|   GtkPrintPages pages; | ||||
|   GtkPageRange *ranges; | ||||
|   gint n_ranges; | ||||
|  | ||||
|   print_job->print_pages = gtk_print_settings_get_print_pages (settings); | ||||
|   print_job->page_ranges = NULL; | ||||
|   print_job->num_page_ranges = 0; | ||||
|    | ||||
|   if (print_job->print_pages == GTK_PRINT_PAGES_RANGES) | ||||
|     print_job->page_ranges = | ||||
|       gtk_print_settings_get_page_ranges (settings, | ||||
| 					  &print_job->num_page_ranges); | ||||
|    | ||||
|   print_job->collate = gtk_print_settings_get_collate (settings); | ||||
|   print_job->reverse = gtk_print_settings_get_reverse (settings); | ||||
|   print_job->num_copies = gtk_print_settings_get_n_copies (settings); | ||||
|   print_job->number_up = gtk_print_settings_get_number_up (settings); | ||||
|   print_job->number_up_layout = gtk_print_settings_get_number_up_layout (settings); | ||||
|   pages = gtk_print_settings_get_print_pages (settings); | ||||
|   gtk_print_job_set_pages (print_job, pages); | ||||
|  | ||||
|   if (pages == GTK_PRINT_PAGES_RANGES) | ||||
|     ranges = gtk_print_settings_get_page_ranges (settings, &n_ranges); | ||||
|   else | ||||
|     { | ||||
|       ranges = NULL; | ||||
|       n_ranges = 0; | ||||
|     } | ||||
|  | ||||
|   gtk_print_job_set_page_ranges (print_job, ranges, n_ranges); | ||||
|   gtk_print_job_set_collate (print_job, gtk_print_settings_get_collate (settings)); | ||||
|   gtk_print_job_set_reverse (print_job, gtk_print_settings_get_reverse (settings)); | ||||
|   gtk_print_job_set_num_copies (print_job, gtk_print_settings_get_n_copies (settings)); | ||||
|   gtk_print_job_set_n_up (print_job, gtk_print_settings_get_number_up (settings)); | ||||
|   gtk_print_job_set_n_up_layout (print_job, gtk_print_settings_get_number_up_layout (settings)); | ||||
|  | ||||
|   scale = gtk_print_settings_get_scale (settings); | ||||
|   if (scale != 100.0) | ||||
|     print_job->scale = scale/100.0; | ||||
|     gtk_print_job_set_scale (print_job, scale / 100.0); | ||||
|  | ||||
|   print_job->page_set = gtk_print_settings_get_page_set (settings); | ||||
|   print_job->rotate_to_orientation = TRUE; | ||||
|   gtk_print_job_set_page_set (print_job, gtk_print_settings_get_page_set (settings)); | ||||
|   gtk_print_job_set_rotate (print_job, TRUE); | ||||
| } | ||||
|  | ||||
| static GList * | ||||
|  | ||||
| @ -465,26 +465,32 @@ lpr_printer_prepare_for_print (GtkPrinter       *printer, | ||||
| 			       GtkPageSetup     *page_setup) | ||||
| { | ||||
|   double scale; | ||||
|   GtkPrintPages pages; | ||||
|   GtkPageRange *ranges; | ||||
|   gint n_ranges; | ||||
|  | ||||
|   print_job->print_pages = gtk_print_settings_get_print_pages (settings); | ||||
|   print_job->page_ranges = NULL; | ||||
|   print_job->num_page_ranges = 0; | ||||
|    | ||||
|   if (print_job->print_pages == GTK_PRINT_PAGES_RANGES) | ||||
|     print_job->page_ranges = | ||||
|       gtk_print_settings_get_page_ranges (settings, | ||||
| 					  &print_job->num_page_ranges); | ||||
|    | ||||
|   print_job->collate = gtk_print_settings_get_collate (settings); | ||||
|   print_job->reverse = gtk_print_settings_get_reverse (settings); | ||||
|   print_job->num_copies = gtk_print_settings_get_n_copies (settings); | ||||
|   print_job->number_up = gtk_print_settings_get_number_up (settings); | ||||
|   print_job->number_up_layout = gtk_print_settings_get_number_up_layout (settings); | ||||
|   pages = gtk_print_settings_get_print_pages (settings); | ||||
|   gtk_print_job_set_pages (print_job, pages); | ||||
|  | ||||
|   if (pages == GTK_PRINT_PAGES_RANGES) | ||||
|     ranges = gtk_print_settings_get_page_ranges (settings, &n_ranges); | ||||
|   else | ||||
|     { | ||||
|       ranges = NULL; | ||||
|       n_ranges = 0; | ||||
|     } | ||||
|  | ||||
|   gtk_print_job_set_page_ranges (print_job, ranges, n_ranges); | ||||
|   gtk_print_job_set_collate (print_job, gtk_print_settings_get_collate (settings)); | ||||
|   gtk_print_job_set_reverse (print_job, gtk_print_settings_get_reverse (settings)); | ||||
|   gtk_print_job_set_num_copies (print_job, gtk_print_settings_get_n_copies (settings)); | ||||
|   gtk_print_job_set_n_up (print_job, gtk_print_settings_get_number_up (settings)); | ||||
|   gtk_print_job_set_n_up_layout (print_job, gtk_print_settings_get_number_up_layout (settings)); | ||||
|  | ||||
|   scale = gtk_print_settings_get_scale (settings); | ||||
|   if (scale != 100.0) | ||||
|     print_job->scale = scale/100.0; | ||||
|     gtk_print_job_set_scale (print_job, scale / 100.0); | ||||
|  | ||||
|   print_job->page_set = gtk_print_settings_get_page_set (settings); | ||||
|   print_job->rotate_to_orientation = TRUE; | ||||
|   gtk_print_job_set_page_set (print_job, gtk_print_settings_get_page_set (settings)); | ||||
|   gtk_print_job_set_rotate (print_job, TRUE); | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Matthias Clasen
					Matthias Clasen