freebsd-ports/print/gnome-cups-manager/files/patch-ui_startbox
Jeremy Messenger 2a905a8e37 Took a lot of nice patches from Ubuntu Linux to make both of ports work better
with the current version of CUPS. Also, many improvements. Fix a bit in the
plist. Bump thePORTREVISION.

libgnomecups:
--------------------
* patch-20_parse-dot-cups-lpoptions: Parse ~/.cups/lpoptions.
* patch-21_fix-islocal: Check whether the printer URI starts with http://,
  ipp://, or smb:// to test whether its local or not.
* patch-22_ignore-ipp-not-found: Do not warn on stderr in case of
  IPP_NOT_FOUND.
* patch-23_replace-set-printer-attrs: Replace IPP_SET_PRINTER_ATTRIBUTES with
  CUPS_ADD_MODIFY_PRINTER.
* patch-24_mem-leak: Fix memory leak in
  gnome_cups_request_add_requested_attributes().
* patch-25_browsed_ppds: Fix PPD retrieval for printers picked up with cups
  browsing.
--------------------

gnome-cups-manager:
--------------------
* patch-24_printer_properties_name_entry: Doesn't allow changing of printer
  names, but the GUI pretends to.
* patch-25_properties_on_add: Don't open up a printer properties on a fresh
  add of a printer. CUPS isn't synced yet, so it causes problems.
* patch-26_remove-no-cups-dialog: Don't show a dialog when CUPS isn't found.
* patch-27_dont-request-additional-attributes: Avoid calling
  gnome_cups_request_add_requested_attributes() since CUPS returns all
  attributes by defaults anyway.
* patch-change_uri_fix: Fix the URI change.
* patch-gutenprint_driver_name: Do not crash if a PPD file name does not
  contain a '/'.
* patch-password_field_garbage: When editing SMB connection attributes, do not
  set the password input field to the value of 'resource' (which is 'smb'). We
  do not get the password in cleartext, so just leave the field blank.
* patch-select_eintr_crash: Do not bail out if select() fails with EINTR,
  which is a valid case.
* patch-ui_edit_name_description: Add gnome-cups-add step to change printer
  name, description, and location.
* patch-ui_startbox: Improvement on startup, run progress bar in the first
  startup to scan the printer database.
* patch-ui_tooltip: Adjust tooltip for cups network printer installation.
--------------------

PR:		ports/106972
Reported by:	Werner <elvis69@arcor.de>
Tested by:	Werner <elvis69@arcor.de>
2007-01-04 22:49:03 +00:00

112 lines
3.6 KiB
Text

--- gnome-cups-add/add-printer.c.orig 2006-04-26 22:35:03.882002880 +0200
+++ gnome-cups-add/add-printer.c 2006-04-26 22:39:46.267073824 +0200
@@ -244,12 +244,83 @@
gtk_main_quit ();
}
-int
-main (int argc, char *argv[])
+GtkWindow *progress_window = NULL;
+static GtkWindow*
+create_progress_window ()
+{
+ GtkWindow *window;
+ GtkWidget *vbox, *label;
+ //GtkProgressBar *progress;
+ guint sid;
+
+ window = GTK_WINDOW (gtk_window_new (GTK_WINDOW_TOPLEVEL));
+ //gtk_window_set_title (GTK_WINDOW (window), _("Add a Printer"));
+ gtk_window_set_decorated(window, gtk_false);
+ gtk_container_set_border_width (GTK_CONTAINER (window), 6);
+ gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER_ALWAYS);
+ g_signal_connect(window, "delete_event", G_CALLBACK(gtk_true), NULL);
+
+ vbox = gtk_vbox_new (FALSE, 6);
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+
+ label = gtk_label_new (g_strdup_printf (_("<b>Reading printer database ...</b>")));
+ gtk_label_set_use_markup (GTK_LABEL(label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC(label), 0, 0.5);
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+ //progress = GTK_PROGRESS_BAR( gtk_progress_bar_new());
+ //gtk_widget_show ( GTK_WIDGET (progress));
+ //gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progress), " ");
+ //gtk_progress_bar_set_pulse_step (progress, 0.2);
+ //gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (progress), FALSE, FALSE, 6);
+
+ //sid = g_timeout_add (200, (GtkFunction) progress_timer, progress);
+ //g_object_set_data(G_OBJECT(window), "pgb_id", GINT_TO_POINTER(sid));
+
+ gtk_widget_show_all ( GTK_WIDGET (window));
+
+ gdk_window_set_cursor(GTK_WIDGET(window)->window, gdk_cursor_new(GDK_WATCH));
+ gtk_widget_grab_focus ( GTK_WIDGET (window));
+
+ return window;
+}
+
+static gpointer
+add_printer_main(gpointer data)
{
GladeXML *xml;
GtkWidget *window;
+ g_idle_remove_by_data(data);
+
+ xml = glade_xml_new (GNOME_CUPS_MANAGER_DATADIR "/gnome-cups-add.glade",
+ "add_printer_window",
+ GETTEXT_PACKAGE);
+
+ window = glade_xml_get_widget (xml, "add_printer_window");
+ set_window_icon (window, "gnome-dev-printer-new");
+ g_signal_connect (window,
+ "delete_event",
+ G_CALLBACK (delete_event_cb), NULL);
+ g_signal_connect (glade_xml_get_widget (xml, "add_printer_druid"),
+ "cancel",
+ G_CALLBACK (cancel_cb), NULL);
+
+ druid_pages_setup (xml, pages);
+ if (progress_window) {
+ gdk_window_set_cursor(GTK_WIDGET(progress_window)->window, gdk_cursor_new(GDK_LAST_CURSOR));
+ //g_source_remove(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(progress_window), "pgb_id")));
+ gtk_widget_destroy (GTK_WIDGET(progress_window));
+ }
+
+ gtk_widget_show (window);
+
+ return NULL;
+}
+
+int
+main (int argc, char *argv[])
+{
gnome_program_init ("gnome-cups-add",
VERSION,
LIBGNOMEUI_MODULE, argc, argv,
@@ -271,21 +340,8 @@
exit (1);
}
- xml = glade_xml_new (GNOME_CUPS_MANAGER_DATADIR "/gnome-cups-add.glade",
- "add_printer_window",
- GETTEXT_PACKAGE);
-
- window = glade_xml_get_widget (xml, "add_printer_window");
- set_window_icon (window, "gnome-dev-printer-new");
- g_signal_connect (window,
- "delete_event",
- G_CALLBACK (delete_event_cb), NULL);
- g_signal_connect (glade_xml_get_widget (xml, "add_printer_druid"),
- "cancel",
- G_CALLBACK (cancel_cb), NULL);
-
- druid_pages_setup (xml, pages);
- gtk_widget_show (window);
+ progress_window = create_progress_window();
+ g_timeout_add(300, add_printer_main, progress_window);
gtk_main ();