Set "accepts-pdf" property to true only if supported by the print backend

This commit is contained in:
Adrian Johnson
2010-12-29 01:18:02 +10:30
committed by Matthias Clasen
parent 3fff4bd091
commit 856cc65f63
3 changed files with 12 additions and 3 deletions

View File

@ -145,7 +145,7 @@ gtk_printer_class_init (GtkPrinterClass *class)
g_param_spec_boolean ("accepts-pdf", g_param_spec_boolean ("accepts-pdf",
P_("Accepts PDF"), P_("Accepts PDF"),
P_("TRUE if this printer can accept PDF"), P_("TRUE if this printer can accept PDF"),
TRUE, FALSE,
GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (G_OBJECT_CLASS (class), g_object_class_install_property (G_OBJECT_CLASS (class),
PROP_ACCEPTS_PS, PROP_ACCEPTS_PS,
@ -256,7 +256,7 @@ gtk_printer_init (GtkPrinter *printer)
priv->is_accepting_jobs = TRUE; priv->is_accepting_jobs = TRUE;
priv->is_new = TRUE; priv->is_new = TRUE;
priv->has_details = FALSE; priv->has_details = FALSE;
priv->accepts_pdf = TRUE; priv->accepts_pdf = FALSE;
priv->accepts_ps = TRUE; priv->accepts_ps = TRUE;
priv->state_message = NULL; priv->state_message = NULL;

View File

@ -127,11 +127,19 @@ gtk_printer_cups_new (const char *name,
GtkPrintBackend *backend) GtkPrintBackend *backend)
{ {
GObject *result; GObject *result;
gboolean accepts_pdf;
#if (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2) || CUPS_VERSION_MAJOR > 1
accepts_pdf = TRUE;
#else
accepts_pdf = FALSE;
#endif
result = g_object_new (GTK_TYPE_PRINTER_CUPS, result = g_object_new (GTK_TYPE_PRINTER_CUPS,
"name", name, "name", name,
"backend", backend, "backend", backend,
"is-virtual", FALSE, "is-virtual", FALSE,
"accepts-pdf", accepts_pdf,
NULL); NULL);
return (GtkPrinterCups *) result; return (GtkPrinterCups *) result;

View File

@ -501,6 +501,7 @@ gtk_print_backend_file_init (GtkPrintBackendFile *backend)
"name", _("Print to File"), "name", _("Print to File"),
"backend", backend, "backend", backend,
"is-virtual", TRUE, "is-virtual", TRUE,
"accepts-pdf", TRUE,
NULL); NULL);
gtk_printer_set_has_details (printer, TRUE); gtk_printer_set_has_details (printer, TRUE);