diff options
author | Matthias Clasen <mclasen@redhat.com> | 2006-10-03 14:48:54 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2006-10-03 14:48:54 +0000 |
commit | 8340b819fc467bf59e7acb8f2ab7aa42cdaccdc6 (patch) | |
tree | a45d34ca189ad0876105ccea92c1d0709b2c6568 | |
parent | 31bca0f00cff0f0209c6a28e86ef6100c4825707 (diff) | |
download | gdk-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | modules/printbackends/cups/gtkprintbackendcups.c | 33 |
2 files changed, 30 insertions, 8 deletions
@@ -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++) |