]> Pileus Git - ~andy/gtk/commitdiff
Use gtk_printer_accepts_ps here.
authorMatthias Clasen <mclasen@redhat.com>
Mon, 12 Jun 2006 17:45:49 +0000 (17:45 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 12 Jun 2006 17:45:49 +0000 (17:45 +0000)
2006-06-12  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkprintunixdialog.c (is_printer_active): Use
gtk_printer_accepts_ps here.

* modules/printbackends/pdf/gtkprintbackendpdf.c (gtk_print_backend_pdf_init):
Mark the virtual "Print to PDF" printer as not accepting PS.

* gtk/gtk.symbols:
* gtk/gtkprinter.h:
* gtk/gtkprinter.c: Add two new properties accepts-pdf and
accepts-ps (with getters) to allow learning supported formats.

ChangeLog
ChangeLog.pre-2-10
gtk/gtk.symbols
gtk/gtkprinter.c
gtk/gtkprinter.h
gtk/gtkprintunixdialog.c
modules/printbackends/pdf/gtkprintbackendpdf.c

index ea933f3f813f1389f6f95d232cc863e7b9e010ff..c773da6f887ad0e21009636ffdd15438823d6b73 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2006-06-12  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkprintunixdialog.c (is_printer_active): Use 
+       gtk_printer_accepts_ps here.
+
+       * modules/printbackends/pdf/gtkprintbackendpdf.c (gtk_print_backend_pdf_init):
+       Mark the virtual "Print to PDF" printer as not accepting PS.
+
+       * gtk/gtk.symbols:
+       * gtk/gtkprinter.h: 
+       * gtk/gtkprinter.c: Add two new properties accepts-pdf and
+       accepts-ps (with getters) to allow learning supported formats.
+
        * gtk/gtkprintjob.h: Add a GTK_PRINT_CAPABILITY_GENERATE_PDF
        capability.
        
index ea933f3f813f1389f6f95d232cc863e7b9e010ff..c773da6f887ad0e21009636ffdd15438823d6b73 100644 (file)
@@ -1,5 +1,16 @@
 2006-06-12  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkprintunixdialog.c (is_printer_active): Use 
+       gtk_printer_accepts_ps here.
+
+       * modules/printbackends/pdf/gtkprintbackendpdf.c (gtk_print_backend_pdf_init):
+       Mark the virtual "Print to PDF" printer as not accepting PS.
+
+       * gtk/gtk.symbols:
+       * gtk/gtkprinter.h: 
+       * gtk/gtkprinter.c: Add two new properties accepts-pdf and
+       accepts-ps (with getters) to allow learning supported formats.
+
        * gtk/gtkprintjob.h: Add a GTK_PRINT_CAPABILITY_GENERATE_PDF
        capability.
        
index a645b956ff9033bff9f636a7d1834f5930e42351..0fc7c919222a94e10d30524b31dd4ba7763e1fab 100644 (file)
@@ -2594,6 +2594,8 @@ gtk_printer_get_location
 gtk_printer_get_icon_name
 gtk_printer_get_job_count
 gtk_printer_is_virtual
+gtk_printer_accepts_pdf
+gtk_printer_accepts_ps
 gtk_printer_compare
 #endif
 #endif
index 3367abe20605c04e95434fcd162eb326f8dfe0f6..d9ba713ab601f7eae826adbbca9c7541abb222c4 100644 (file)
@@ -43,11 +43,13 @@ struct _GtkPrinterPrivate
   gchar *description;
   gchar *icon_name;
 
-  guint is_active: 1;
-  guint is_new: 1;
-  guint is_virtual : 1;
-  guint is_default : 1;
-  guint has_details: 1;
+  guint is_active   : 1;
+  guint is_new      : 1;
+  guint is_virtual  : 1;
+  guint is_default  : 1;
+  guint has_details : 1;
+  guint accepts_pdf : 1;
+  guint accepts_ps  : 1;
 
   gchar *state_message;  
   gint job_count;
@@ -68,7 +70,9 @@ enum {
   PROP_STATE_MESSAGE,
   PROP_LOCATION,
   PROP_ICON_NAME,
-  PROP_JOB_COUNT
+  PROP_JOB_COUNT,
+  PROP_ACCEPTS_PDF,
+  PROP_ACCEPTS_PS
 };
 
 static guint signals[LAST_SIGNAL] = { 0 };
@@ -130,6 +134,20 @@ gtk_printer_class_init (GtkPrinterClass *class)
                                                         P_("FALSE if this represents a real hardware printer"),
                                                         FALSE,
                                                         GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+  g_object_class_install_property (G_OBJECT_CLASS (class),
+                                   PROP_ACCEPTS_PDF,
+                                   g_param_spec_boolean ("accepts-pdf",
+                                                        P_("Accepts PDF"),
+                                                        P_("TRUE if this printer can accept PDF"),
+                                                        TRUE,
+                                                        GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+  g_object_class_install_property (G_OBJECT_CLASS (class),
+                                   PROP_ACCEPTS_PS,
+                                   g_param_spec_boolean ("accepts-ps",
+                                                        P_("Accepts PostScript"),
+                                                        P_("TRUE if this printer can accept PostScript"),
+                                                        TRUE,
+                                                        GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
   g_object_class_install_property (G_OBJECT_CLASS (class),
                                    PROP_STATE_MESSAGE,
                                    g_param_spec_string ("state-message",
@@ -197,6 +215,8 @@ gtk_printer_init (GtkPrinter *printer)
   priv->is_active = TRUE;
   priv->is_new = TRUE;
   priv->has_details = FALSE;
+  priv->accepts_pdf = TRUE;
+  priv->accepts_ps = TRUE;
 
   priv->state_message = NULL;  
   priv->job_count = 0;
@@ -243,6 +263,14 @@ gtk_printer_set_property (GObject         *object,
       priv->is_virtual = g_value_get_boolean (value);
       break;
 
+    case PROP_ACCEPTS_PDF:
+      priv->accepts_pdf = g_value_get_boolean (value);
+      break;
+
+    case PROP_ACCEPTS_PS:
+      priv->accepts_ps = g_value_get_boolean (value);
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -290,6 +318,15 @@ gtk_printer_get_property (GObject    *object,
     case PROP_JOB_COUNT:
       g_value_set_int (value, priv->job_count);
       break;
+    case PROP_IS_VIRTUAL:
+      g_value_set_boolean (value, priv->is_virtual);
+      break;
+    case PROP_ACCEPTS_PDF:
+      g_value_set_boolean (value, priv->accepts_pdf);
+      break;
+    case PROP_ACCEPTS_PS:
+      g_value_set_boolean (value, priv->accepts_ps);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -607,6 +644,22 @@ gtk_printer_is_virtual (GtkPrinter *printer)
   return printer->priv->is_virtual;
 }
 
+gboolean 
+gtk_printer_accepts_pdf (GtkPrinter *printer)
+{ 
+  g_return_val_if_fail (GTK_IS_PRINTER (printer), TRUE);
+  
+  return printer->priv->accepts_pdf;
+}
+
+gboolean 
+gtk_printer_accepts_ps (GtkPrinter *printer)
+{ 
+  g_return_val_if_fail (GTK_IS_PRINTER (printer), TRUE);
+  
+  return printer->priv->accepts_ps;
+}
+
 gboolean
 gtk_printer_is_new (GtkPrinter *printer)
 {
index 6c9e056e15c6e34024e5362462ece897fc11361f..c6121072554be82492da61680ff16bb98651b129 100644 (file)
@@ -77,6 +77,8 @@ gint                     gtk_printer_get_job_count     (GtkPrinter      *printer
 gboolean                 gtk_printer_is_active         (GtkPrinter      *printer);
 gboolean                 gtk_printer_is_virtual        (GtkPrinter      *printer);
 gboolean                 gtk_printer_is_default        (GtkPrinter      *printer);
+gboolean                 gtk_printer_accepts_pdf       (GtkPrinter      *printer);
+gboolean                 gtk_printer_accepts_ps        (GtkPrinter      *printer);
 
 gint                     gtk_printer_compare           (GtkPrinter *a,
                                                        GtkPrinter *b);
index dc532b0554f6a16b81311cd5662f35354ae28a6b..578b095ced4dbb26752667bc1a465c5c205df7d0 100644 (file)
@@ -586,17 +586,12 @@ is_printer_active (GtkTreeModel       *model,
   
   if (result)
     {
-      /* FIXME needs some printer capabilities 
-       */
-      if ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PDF) == 0 &&
-         strcmp (gtk_printer_get_name (printer), _("Print to PDF")) == 0)
-       result = FALSE;
-      g_print ("testing printer \"%s\" result %d\n", 
-              gtk_printer_get_name (printer), result);
+      if ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PDF) == 0)
+       result = gtk_printer_accepts_ps (printer);
     }
-
+  
   g_object_unref (printer);
-
+  
   return result;
 }
 
@@ -2753,3 +2748,4 @@ gtk_print_unix_dialog_set_manual_capabilities (GtkPrintUnixDialog   *dialog,
 
 #define __GTK_PRINT_UNIX_DIALOG_C__
 #include "gtkaliasdef.c"
+
index 549879d37831c627c0799f9093ed9d93d949d8dc..069b7b360b4344eefbd08e6ecb20b362f24b851f 100644 (file)
@@ -338,9 +338,12 @@ gtk_print_backend_pdf_init (GtkPrintBackendPdf *backend)
 {
   GtkPrinter *printer;
   
-  printer = gtk_printer_new (_("Print to PDF"),
-                            GTK_PRINT_BACKEND (backend),
-                            TRUE); 
+  printer = g_object_new (GTK_TYPE_PRINTER,
+                         "name", _("Print to PDF"),
+                         "backend", backend,
+                         "is-virtual", TRUE,
+                         "accepts-ps", FALSE,
+                         NULL); 
 
   gtk_printer_set_has_details (printer, TRUE);
   gtk_printer_set_icon_name (printer, "floppy");