Commit Graph

326 Commits

Author SHA1 Message Date
Matthias Clasen
be8f3c72ea Apply a patch by John Palmieri to use buffered io using GIOChannels, clean
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-21 18:16:58 +00:00
Matthias Clasen
bc1dbd58d5 Add an GError parameter.
2006-06-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintbackend.h:
	* gtk/gtkprintbackend.c (gtk_print_backend_print_stream): Add an
	GError parameter.

	* modules/printbackends/file/gtkprintbackendfile.c
	(gtk_print_backend_file_print_stream):
	* modules/printbackends/lpr/gtkprintbackendlpr.c
	(gtk_print_backend_lpr_print_stream):
	* modules/printbackends/cups/gtkprintbackendcups.c
	(gtk_print_backend_cups_print_stream):
	* gtk/gtkprintjob.c (gtk_print_job_send): Update all callers and
	implementations.
2006-06-21 05:56:14 +00:00
Matthias Clasen
6ffc87bb80 Cleanups 2006-06-21 05:08:43 +00:00
Christian Persch
d14e9a14ad configure.in gtk/Makefile.am Rename "pdf" backend to "file" backend. Step
2006-06-20  Christian Persch  <chpe@cvs.gnome.org>

	* configure.in
	* gtk/Makefile.am
	* modules/printbackends/Makefile.am
	A modules/printbackends/file/.cvsignore
	A modules/printbackends/file/Makefile.am
	A modules/printbackends/file/gtkprintbackendfile.c
	A modules/printbackends/file/gtkprintbackendfile.h
	R modules/printbackends/pdf/*:
	Rename "pdf" backend to "file" backend. Step 2 from bug #339592.
2006-06-20 18:42:46 +00:00
Christian Persch
0bce4d271a Convert input to filename encoding and construct an URI from that. Add
2006-06-20  Christian Persch  <chpe@cvs.gnome.org>

	* gtk/gtkprinteroptionwidget.c: (filesave_changed_cb),
	(alternative_set), (construct_widgets): Convert input to filename
	encoding and construct an URI from that.
	* gtk/gtkprintsettings.h: Add OUTPUT_FILE_FORMAT and OUTPUT_URI keys.
	* modules/printbackends/pdf/gtkprintbackendpdf.c: Use those defines.
	Step 1 from bug #339592.
2006-06-20 17:36:55 +00:00
Matthias Clasen
7a44ce3366 Add a capabilities argument to the printer_get_options method and to the
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-06-19 05:09:49 +00:00
Matthias Clasen
374e181734 Fix a typo: s/Extention/Extension/.
2006-06-17  Matthias Clasen  <mclasen@redhat.com>

	* modules/printbackends/pdf/gtkprintbackendpdf.c:
	* modules/printbackends/lpr/gtkprintbackendlpr.c: Fix a typo:
	s/Extention/Extension/.
2006-06-17 05:19:18 +00:00
Matthias Clasen
505c6149cc Use stock print icons; make it compile 2006-06-17 01:04:50 +00:00
Matthias Clasen
956bcb4393 Add a GtkPrintSettings parameter to the printer_create_cairo_surface
2006-06-16  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintbackend.h: Add a GtkPrintSettings parameter to the
	printer_create_cairo_surface method.

	* modules/printbackends/pdf/gtkprintbackendpdf.c:
	* modules/printbackends/cups/gtkprintbackendcups.c:
	* modules/printbackends/lpr/gtkprintbackendlpr.c:
	* gtk/gtkprinter.c (_gtk_printer_create_cairo_surface):
	* gtk/gtkprinter-private.h:
	* gtk/gtkprintjob.c (gtk_print_job_get_surface): Adapt all users.
2006-06-16 18:29:09 +00:00
Matthias Clasen
0f0e499c12 fix 345038 2006-06-16 05:08:14 +00:00
Matthias Clasen
82743b9f21 fix the print-to-pdf icon 2006-06-16 04:02:34 +00:00
Matthias Clasen
809c8d565f Use gtk_printer_accepts_ps here.
2006-06-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintunixdialog.c (is_printer_active): Use
	gtk_printer_accepts_ps here.

	* modules/printbackends/pdf/gtkprintbackendpdf.c (gtk_print_backend_pdf_init):
	Mark the virtual "Print to PDF" printer as not accepting PS.

	* gtk/gtk.symbols:
	* gtk/gtkprinter.h:
	* gtk/gtkprinter.c: Add two new properties accepts-pdf and
	accepts-ps (with getters) to allow learning supported formats.
2006-06-12 17:45:49 +00:00
Matthias Clasen
1f09da45a6 use the passed in destroy notify 2006-06-11 02:40:02 +00:00
Matthias Clasen
289d59857f Use cairo_pdf_surface_set_dpi by cairo_surface_set_fallback_resolution.
2006-06-10  Matthias Clasen <mclasen@redhat.com>

        * gtk/gtkprintoperation.c:
        * modules/printbackends/pdf/gtkprintbackendpdf.c: Use
        cairo_pdf_surface_set_dpi by cairo_surface_set_fallback_resolution.
        (#344512, Elijah Newren)
2006-06-11 02:30:58 +00:00
Matthias Clasen
a075c94acb Fix a C99ism 2006-06-07 12:59:05 +00:00
Alexander Larsson
50d17b73b6 Further updates from the GtkPrintContext functions rename.
2006-05-31  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtk.symbols:
	* demos/gtk-demo/printing.c:
	* tests/print-editor.c:
	* tests/testnouiprint.c:
	* tests/testprint.c:
	* tests/testprintfileoperation.c:
	Further updates from the GtkPrintContext functions rename.

	* modules/printbackends/cups/gtkcupsutils.c:
	Always set requesting-user-name when doing cups requests.
2006-05-31 14:06:02 +00:00
Alexander Larsson
70376f280a Add gtk_print_unix_dialog_set_manual_capabilities that controls what
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-24 10:50:57 +00:00
Alexander Larsson
3f529199e5 Added gtk_print_job_set/get_track_print_status
2006-05-15  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkprintjob.[ch]:
	Added gtk_print_job_set/get_track_print_status

	* gtk/gtkprintoperation-private.h:
	* gtk/gtkprintoperation.[ch]:
	Add gtk_print_operation_set_track_print_status.

	* gtk/gtkprintoperation-unix.c:
	Implement track_print_status on unix

	* gtk/gtkprintoperation-win32.c:
	Implement track_print_status on win32

	* gtk/gtk.symbols:
	Added symbols

	* modules/printbackends/cups/gtkprintbackendcups.c:
	Implement track_print_status for cups

	* tests/print-editor.c:
	Test track_print_status.
2006-05-15 16:22:38 +00:00
Alexander Larsson
5e0dc70323 Never unload print backends. Remove gtk_print_backend_unref_at_idle.
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-15 15:24:12 +00:00
Alexander Larsson
c459feaab1 Fix build errors.
2006-05-12  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkrecentmanager.c:
	Fix build errors.

	* gtk/gtk.symbols:
	* demos/gtk-demo/printing.c:
	* gtk/gtkprintoperation-win32.c:
	* gtk/gtkprintoperation.[ch]:
	* gtk/gtkprintsettings.[ch]:
	* modules/printbackends/cups/gtkprintbackendcups.c:
	* modules/printbackends/lpr/gtkprintbackendlpr.c:
	* modules/printbackends/pdf/gtkprintbackendpdf.c:
	* tests/print-editor.c:
	* tests/testnouiprint.c:
	* tests/testprint.c:
	* tests/testprintfileoperation.c:
	Rename functions from nr_of_pages to n_pages, and num_copies to
	n_copies to match other gtk+ names.

	* gtk/gtkmenu.c: (gtk_menu_popdown):
	Only re-set window group on popdown if we set it on popup (i.e.
	if there is a parent menu shell).
	Fixed part of bug #340401

	* gtk/gtkwindow.c:
	Add (contruct) property "transient-for" to GtkWindow. This
	is needed for the fix to bug #340401.

	* gtk/gtkprintunixdialog.c:
	Use the transient-for property on construction and populate the dialog
	with widgets after that. This fixes bug #340401.
	More n_pages renames.
2006-05-12 09:47:58 +00:00
John (J5) Palmieri
2b0ffdac07 make the _CUPS_MAP_ATTR_STR macro not dup the string so we don't leak
2006-05-10  John (J5) Palmieri  <johnp@redhat.com>

        * modules/printbackends/cups/gtkprintbackendcups.c:
        make the _CUPS_MAP_ATTR_STR macro not dup the string so we don't
        leak
2006-05-10 00:42:23 +00:00
Christian Persch
9ef568468e Always register the type with the type module, even if it had been
2006-05-05  Christian Persch  <chpe@cvs.gnome.org>

	* modules/printbackends/cups/gtkprintbackendcups.c:
	* modules/printbackends/lpr/gtkprintbackendlpr.c:
	* modules/printbackends/pdf/gtkprintbackendpdf.c: Always register
	  the type with the type module, even if it had been registered
	  before. Fixes bug #340676.
2006-05-05 20:22:27 +00:00
Alexander Larsson
c36d8f3cb3 Added new symbols
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.
2006-05-04 13:43:32 +00:00
Behdad Esfahbod
ab7c146eb4 . 2006-04-29 04:57:30 +00:00
Matthias Clasen
e6e2f91b19 some more options 2006-04-25 04:38:07 +00:00
Alexander Larsson
27f746fbd0 Merge the gtk-printing branch. For more detailed ChangeLog entries, see
2006-04-21  Alexander Larsson  <alexl@redhat.com>

        Merge the gtk-printing branch.
	For more detailed ChangeLog entries, see the branch.

	* .cvsignore:
	* Makefile.am:
	* configure.in:
	* docs/tools/widgets.c:
	* gtk+-unix-print-2.0.pc.in:
	* gtk/Makefile.am:
	* gtk/gen-paper-names.c:
	* gtk/gtk.h:
	* gtk/gtk.symbols:
	* gtk/gtkenums.h:
	* gtk/gtkiconfactory.c:
	* gtk/gtkmarshalers.list:
	* gtk/gtkpagesetup.[ch]:
	* gtk/gtkpagesetupunixdialog.[ch]:
	* gtk/gtkpapersize.[ch]:
	* gtk/gtkprint-win32.[ch]:
	* gtk/gtkprintbackend.[ch]:
	* gtk/gtkprintcontext.[ch]:
	* gtk/gtkprinter-private.h:
	* gtk/gtkprinter.[ch]:
	* gtk/gtkprinteroption.[ch]:
	* gtk/gtkprinteroptionset.[ch]:
	* gtk/gtkprinteroptionwidget.[ch]:
	* gtk/gtkprintjob.[ch]:
	* gtk/gtkprintoperation-private.h:
	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkprintoperation-win32.c:
	* gtk/gtkprintoperation.[ch]:
	* gtk/gtkprintsettings.[ch]:
	* gtk/gtkprintunixdialog.[ch]:
	* gtk/paper_names.c:
	* gtk/paper_names_offsets.c:
	Platform independent printing API and implementations
	for unix and windows.

	* gtk/gtkstock.h:
	* gtk/stock-icons/24/gtk-orientation-landscape.png:
	* gtk/stock-icons/24/gtk-orientation-portrait.png:
	* gtk/stock-icons/24/gtk-orientation-reverse-landscape.png:
	Add stock icons for page orientation.

	* modules/Makefile.am:
	* modules/printbackends/Makefile.am:
	* modules/printbackends/cups/Makefile.am:
	* modules/printbackends/cups/gtkcupsutils.[ch]:
	* modules/printbackends/cups/gtkprintbackendcups.[ch]:
	* modules/printbackends/cups/gtkprintercups.[ch]:

	Cups printing backend for unix.

	* modules/printbackends/lpr/Makefile.am:
	* modules/printbackends/lpr/gtkprintbackendlpr.[ch]:
	lpr printing backend for unix.

	* modules/printbackends/pdf/Makefile.am:
	* modules/printbackends/pdf/gtkprintbackendpdf.[ch]:
	print-to-pdf printing backend for unix.

	* tests/.cvsignore:
	* tests/Makefile.am:
	* tests/print-editor.c:
	Test application for printing.

	* gdk/gdk.symbols:
	* gdk/win32/gdkevents-win32.c:
	* gdk/win32/gdkwin32.h:
	Add gdk_win32_set_modal_dialog_libgtk_only so that we can pump the
	mainloop while displaying a win32 common dialog.

	* gdk/directfb/Makefile.am:
	Whitespace cleanup.
2006-04-21 15:09:32 +00:00