GtkCupsConnectionTest *cups_connection_test;
char **covers;
- char *default_cover_before;
- char *default_cover_after;
int number_of_covers;
GList *requests;
backend_cups->authentication_lock = FALSE;
backend_cups->covers = NULL;
- backend_cups->default_cover_before = NULL;
- backend_cups->default_cover_after = NULL;
backend_cups->number_of_covers = 0;
backend_cups->default_printer_poll = 0;
g_strfreev (backend_cups->covers);
backend_cups->number_of_covers = 0;
- g_free (backend_cups->default_cover_before);
- g_free (backend_cups->default_cover_after);
-
gtk_cups_connection_test_free (backend_cups->cups_connection_test);
backend_cups->cups_connection_test = NULL;
gboolean is_accepting_jobs = TRUE;
gboolean default_printer = FALSE;
gboolean got_printer_type = FALSE;
+ gchar *default_cover_before = NULL;
+ gchar *default_cover_after = NULL;
/* Skip leading attributes until we hit a printer...
*/
{
cups_backend->number_of_covers = attr->num_values;
cups_backend->covers = g_new (char *, cups_backend->number_of_covers + 1);
-
for (i = 0; i < cups_backend->number_of_covers; i++)
cups_backend->covers[i] = g_strdup (attr->values[i].string.text);
-
cups_backend->covers[cups_backend->number_of_covers] = NULL;
}
}
else if (strcmp (attr->name, "job-sheets-default") == 0)
{
- if ( (cups_backend->default_cover_before == NULL) && (cups_backend->default_cover_after == NULL))
+ if (attr->num_values == 2)
{
- if (attr->num_values == 2)
- {
- cups_backend->default_cover_before = g_strdup (attr->values[0].string.text);
- cups_backend->default_cover_after = g_strdup (attr->values[1].string.text);
- }
+ default_cover_before = attr->values[0].string.text;
+ default_cover_after = attr->values[1].string.text;
}
}
else if (strcmp (attr->name, "printer-type") == 0)
g_free (cups_server);
+ cups_printer->default_cover_before = g_strdup (default_cover_before);
+ cups_printer->default_cover_after = g_strdup (default_cover_after);
+
cups_printer->hostname = g_strdup (hostname);
cups_printer->port = port;
cups_option_t *opts = NULL;
GtkPrintBackendCups *backend;
GtkTextDirection text_direction;
+ GtkPrinterCups *cups_printer = NULL;
set = gtk_printer_option_set_new ();
g_object_unref (option);
backend = GTK_PRINT_BACKEND_CUPS (gtk_printer_get_backend (printer));
+ cups_printer = GTK_PRINTER_CUPS (printer);
- if (backend != NULL)
+ if (backend != NULL && printer != NULL)
{
char *cover_default[] = {"none", "classified", "confidential", "secret", "standard", "topsecret", "unclassified" };
/* Translators, these strings are names for various 'standard' cover
gtk_printer_option_choices_from_array (option, num_of_covers,
cover, cover_display_translated);
- if (backend->default_cover_before != NULL)
- gtk_printer_option_set (option, backend->default_cover_before);
+ if (cups_printer->default_cover_before != NULL)
+ gtk_printer_option_set (option, cups_printer->default_cover_before);
else
gtk_printer_option_set (option, "none");
set_option_from_settings (option, settings);
option = gtk_printer_option_new ("gtk-cover-after", _("After"), GTK_PRINTER_OPTION_TYPE_PICKONE);
gtk_printer_option_choices_from_array (option, num_of_covers,
cover, cover_display_translated);
- if (backend->default_cover_after != NULL)
- gtk_printer_option_set (option, backend->default_cover_after);
+ if (cups_printer->default_cover_after != NULL)
+ gtk_printer_option_set (option, cups_printer->default_cover_after);
else
gtk_printer_option_set (option, "none");
set_option_from_settings (option, settings);