2006-06-21 Matthias Clasen <mclasen@redhat.com>
Apply a patch by John Palmieri to use buffered io using
GIOChannels, clean up error handling and support Cups 1.2
api in the printing code.
* acconfig.h:
* configure.in: Detect Cups 1.2
* gtk/gtkdebug.h:
* gtk/gtkmain.c: Add a printing debug key.
* gtk/gtkprintbackend.[hc]: Remove the GError parameter from
gtk_print_backend_print_stream, and take a GIOChannel instead
of an fd.
* gtk/gtkprinter-private.h:
* gtk/gtkprinter.c: Replace the fd parameter of
_gtk_printer_create_cairo_surface by a GIOChannel.
* gtk/gtkprintjob.[hc]: Remove the GError parameter from
gtk_print_job_send and make it return void.
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintjob.c: Adjust callers, add some debugging support.
* modules/printbackends/Makefile.am: Fix DIST_SUBDIRS.
* modules/printbackends/cups/Makefile.am:
* modules/printbackends/lpr/Makefile.am: Add debug CFLAGS.
* modules/printbackends/cups/gtkcupsutils.[hc]:
* modules/printbackends/cups/gtkprintbackendcups.c:
* modules/printbackends/file/gtkprintbackendfile.c:
* modules/printbackends/lpr/gtkprintbackendfile.c: Adapt to
the GIOChannel and GError changes, add debug output
2006-06-19 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprinter-private.h:
* gtk/gtkprinter.c (_gtk_printer_get_options):
* gtk/gtkprintbackend.h: Add a capabilities argument to the
printer_get_options method and to the _gtk_printer_get_options
function
* modules/printbackends/lpr/gtkprintbackendlpr.c
(lpr_printer_get_options):
* modules/printbackends/pdf/gtkprintbackendpdf.c
(pdf_printer_get_options):
* modules/printbackends/cups/gtkprintbackendcups.c
(cups_printer_get_options):
* gtk/gtkprintunixdialog.c (selected_printer_changed): Adjust
callers and implementations.
2006-05-24 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkprintunixdialog.[ch]:
Add gtk_print_unix_dialog_set_manual_capabilities that controls
what widgets to enable in the dialog depending on the apps
capabilities.
* gtk/gtkprintbackend.[ch]:
* gtk/gtkprinter-private.h:
* gtk/gtkprinter.c:
* gtk/gtkprintjob.h:
Add printer_get_capabilities to backend.
Move some fallback calls to the printbackend base class.
* gtk/gtkprintoperation-unix.c:
Set manual capabilities
* modules/printbackends/cups/gtkprintbackendcups.c:
Implement get_capabilities
* modules/printbackends/lpr/gtkprintbackendlpr.c:
* modules/printbackends/pdf/gtkprintbackendpdf.c:
Move some methods to baseclass.
2006-05-15 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkprintbackend.[ch]: (_gtk_print_backend_create):
Never unload print backends.
Remove gtk_print_backend_unref_at_idle.
* modules/printbackends/cups/gtkprintbackendcups.c:
(cups_dispatch_watch_finalize):
Don't use the unref_at_idle hack since that caused
deadlocks. Instead we never unload print backends, which
is not really a big problem.
2006-05-04 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
Added new symbols
* gtk/gtkpagesetupunixdialog.c:
* gtk/gtkprintunixdialog.c:
Destroy backends when finalizing dialogs.
Fix printer leak in selected_printer_changed.
* gtk/gtkprintbackend.[ch]:
Convert from interface to baseclass.
Move printer hashtable here so that the baseclass can handle
the slightly complicated ownership model.
Add gtk_print_backend_destroy which runs the dispose method,
causing the ref-cycles between the backend and its printers
to be broken.
Add gtk_print_backend_unref_at_idle().
* gtk/gtkprinter.[ch]:
GtkPrinter objects now ref their backend so that its always
availible, since its needed for the printer object to work.
This causes a reference-cycle that is broken using
gtk_print_backend_destroy.
Add gtk_printer_compare.
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation.c:
Implement !show_dialog for unix.
Make sure the print data is fully spooled before returning
from a sync run_dialog.
* modules/printbackends/cups/gtkcupsutils.[ch]:
Add gtk_cups_request_ipp_add_strings
* modules/printbackends/cups/gtkprintbackendcups.c:
* modules/printbackends/cups/gtkprintercups.c:
* modules/printbackends/lpr/gtkprintbackendlpr.c:
* modules/printbackends/pdf/gtkprintbackendpdf.c:
Convert backends to derive instead of implementing interface.
Move common code into baseclass.
CUPS:
Remove the printer polling in dispose, not finalize.
In the cups watch, remove the backend at idle instead of
immediately, since the unref can cause the module to be unloaded.
Limit the number of printer attributes requested
Get printer uri in initial printer listing so that we can use
the printer object immediately.
* tests/Makefile.am:
* tests/testnouiprint.c:
Add testcase for !show_dialog.