summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2006-10-03 14:48:54 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-10-03 14:48:54 +0000
commit8340b819fc467bf59e7acb8f2ab7aa42cdaccdc6 (patch)
treea45d34ca189ad0876105ccea92c1d0709b2c6568
parent31bca0f00cff0f0209c6a28e86ef6100c4825707 (diff)
downloadgdk-pixbuf-8340b819fc467bf59e7acb8f2ab7aa42cdaccdc6.tar.gz
Complete the fix for bug 357280.
2006-10-03 Matthias Clasen <mclasen@redhat.com> * modules/printbackends/cups/gtkprintbackendcups.c: Complete the fix for bug 357280.
-rw-r--r--ChangeLog5
-rw-r--r--modules/printbackends/cups/gtkprintbackendcups.c33
2 files changed, 30 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index b7b6ec610..acafc1bd0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-03 Matthias Clasen <mclasen@redhat.com>
+
+ * modules/printbackends/cups/gtkprintbackendcups.c: Complete
+ the fix for bug 357280.
+
2006-10-02 Behdad Esfahbod <behdad@gnome.org>
* gtk/Makefile.am: Fix typo in file name. (#358931)
diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c
index 3f30f9f6f..b5aa385ef 100644
--- a/modules/printbackends/cups/gtkprintbackendcups.c
+++ b/modules/printbackends/cups/gtkprintbackendcups.c
@@ -49,6 +49,7 @@
#include "gtkcupsutils.h"
#include "gtkdebug.h"
+
typedef struct _GtkPrintBackendCupsClass GtkPrintBackendCupsClass;
#define GTK_PRINT_BACKEND_CUPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_BACKEND_CUPS, GtkPrintBackendCupsClass))
@@ -1665,6 +1666,16 @@ value_is_off (const char *value)
strcasecmp (value, "False") == 0);
}
+static char *
+ppd_group_name (ppd_group_t *group)
+{
+#if CUPS_VERSION_MAJOR > 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR > 1) || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR == 1 && CUPS_VERSION_PATCH >= 18)
+ return group->name;
+#else
+ return group->text;
+#endif
+}
+
static int
available_choices (ppd_file_t *ppd,
ppd_option_t *option,
@@ -1688,16 +1699,17 @@ available_choices (ppd_file_t *ppd,
conflicts = g_new0 (char, option->num_choices);
installed_options = NULL;
-#if CUPS_VERSION_MAJOR > 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR > 1) || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR == 1 && CUPS_VERSION_PATCH >= 18)
for (i = 0; i < ppd->num_groups; i++)
{
- if (strcmp (ppd->groups[i].name, "InstallableOptions") == 0)
+ char *name;
+
+ name = ppd_group_name (&ppd->groups[i]);
+ if (strcmp (name, "InstallableOptions") == 0)
{
installed_options = &ppd->groups[i];
break;
}
}
-#endif
for (i = ppd->num_consts, constraint = ppd->consts; i > 0; i--, constraint++)
{
@@ -2039,21 +2051,24 @@ handle_option (GtkPrinterOptionSet *set,
if (option)
{
- if (STRING_IN_TABLE (toplevel_group->name,
+ char *name;
+
+ name = ppd_group_name (toplevel_group);
+ if (STRING_IN_TABLE (name,
color_group_whitelist) ||
STRING_IN_TABLE (ppd_option->keyword,
color_option_whitelist))
{
option->group = g_strdup ("ColorPage");
}
- else if (STRING_IN_TABLE (toplevel_group->name,
+ else if (STRING_IN_TABLE (name,
image_quality_group_whitelist) ||
STRING_IN_TABLE (ppd_option->keyword,
image_quality_option_whitelist))
{
option->group = g_strdup ("ImageQualityPage");
}
- else if (STRING_IN_TABLE (toplevel_group->name,
+ else if (STRING_IN_TABLE (name,
finishing_group_whitelist) ||
STRING_IN_TABLE (ppd_option->keyword,
finishing_option_whitelist))
@@ -2081,9 +2096,11 @@ handle_group (GtkPrinterOptionSet *set,
GtkPrintSettings *settings)
{
gint i;
-
+ gchar *name;
+
/* Ignore installable options */
- if (strcmp (toplevel_group->name, "InstallableOptions") == 0)
+ name = ppd_group_name (toplevel_group);
+ if (strcmp (name, "InstallableOptions") == 0)
return;
for (i = 0; i < group->num_options; i++)