Commit Graph

61 Commits

Author SHA1 Message Date
Marek Kasik
6b5912a213 Show correct print preview
Modify print preview according to settings from print dialog.
Similar approach as during real print is applied to the preview
process (#592582).
2009-10-26 17:47:37 +01:00
Adrian Johnson
4261efda2b Emit PageOrientation DSC comment into PostScript print output
The PageOrientation DSC comment tells PostScript viewers such as gv or
evince the orientation to use when displaying the page. Part of bug 596423
2009-09-30 12:46:58 -04:00
Marek Kasik
f7cfe2bfea Emit "update-custom-widget" when the page setup changes
Previously, the signal was only emitted when the user selected
another printer. Bug 593001.
2009-08-29 21:19:44 -04:00
Marek Kasik
0ef74c936f Add paper size combo and orientation combo to print dialog
Paper size combo and orientation combo can be added by
gtk_print_operation_set_embed_page_setup_dialog() to GtkPrinUnixDialog
now. This function induce calling of
gtk_print_unix_dailog_set_embed_page_setup_dialog() after creation of
dialog. These two functions control embed-page-setup-dialog properties
in GtkPrintOperation and in GtkPrintUnixDialog.
There is also new function gtk_print_unix_dialog_get_page_setup_set()
which says whether page setup was set by user.
Selected page setup is stored as default page setup in
GtkPrintOperation.
New class is added, its name is GtkCustomPaperUnixDialog. The class
manages custom sizes. It is derived from GtkPageSetupUnixDialog's
CustomPaperDialog structure.
Page layout preview is modified, so, it shows dimensions of current
page setup (mm or inch - depends on locale). It also shows the name of
actual paper if page setup dialog is not embedded (paper size combo is
not visible).
gtk-demo is actualized to include this new feature.
2009-07-10 11:28:31 +02:00
Marek Kasik
a12a583c99 Add ability to print selection
Add a new radio button "Selection" to the print dialog. Its presence
depends on calling of functions gtk_print_operation_set_support_selection()
and gtk_print_dialog_unix_set_support_selection().
Sensitivity of the radio depends on calling of
functions gtk_print_operation_set_has_selection() and
gtk_print_dialog_unix_set_has_selection().
There are new properties GtkPrintUnixDialog::support-selection,
GtkPrintUnixDialog::has-selection, GtkPrintOperation::support-selection
and GtkPrintOperation::has-selection. Corresponding getters are
gtk_print_dialog_unix_get_support_selection(),
gtk_print_dialog_unix_get_has_selection(),
gtk_print_operation_get_support_selection() and
gtk_print_operation_get_has_selection().
Application has to set number of pages to which the selection will be formated
in GtkPrintOperation::begin-print's callback by the
gtk_print_operation_set_n_pages() function (bug #344519).
There is also new property GtkPrintUnixDialog::manual-capabilities controled by
gtk_print_unix_dialog_set_manual_capabilities() and
gtk_print_unix_dialog_get_manual_capabilities().
2009-06-08 15:37:32 +02:00
Marek Kasik
91190ce281 Add ability to print in number-up mode for file backend and lpr backend
GtkPrintOperation is now able to render multiple pages per sheet by its
own. The most important changes are in these functions:
  * increment_page_sequence
  * prepare_data
  * common_render_page
  * print_pages_idle
Patch also changes set of choices for 2 pages per sheet mode when
landscape orientation is used to "Top to bottom" and "Bottom to top".
2009-05-13 18:28:42 +02:00
Marek Kasik
6e121ee85e Allow the custom widget to actualize on a printer change
Passes print settings and page setup to the custom widget
through a new "update-custom-widget" signal (#564854).
2009-04-21 13:06:49 +02:00
Carlos Garcia Campos
67d8ed9ed3 Send the print job title to the previewer
The previewer should know the print job title too, it could be included
in the print settings file. Fixes bug #561345
2009-04-10 11:53:11 +02:00
Carlos Garcia Campos
d77156952d Save PageSetup into print settings file used by the print previewer
Fixes bug #578271
2009-04-10 11:53:11 +02:00
Marek Kasik
17a64e8841 Bug 556527 - The current page property is not passed to GtkPrintUnixDialog
2008-10-16  Marek Kasik  <mkasik@redhat.com>

	Bug 556527 - The current page property is not passed to
	GtkPrintUnixDialog

	* gtk/gtkprintoperation-unix.c: pass current-page property
	to GtkPrintUnixDialog

svn path=/trunk/; revision=21660
2008-10-16 11:20:33 +00:00
Cody Russell
57223c9a05 Revert name change
svn path=/trunk/; revision=20724
2008-07-01 22:57:50 +00:00
Matthias Clasen
a7abdcf8fc Handle failure to create temp file by returning NULL.
* gtk/gtkprintoperation-unix.c
        (_gtk_print_operation_platform_backend_create_preview_surface):
        Handle failure to create temp file by returning NULL.

        * gtk/gtkprintoperation.c (gtk_print_operation_preview_handler):
        Return FALSE if surface creation fails.

        (print_pages): If the preiew signal is not handled, show an
        error dialog.


svn path=/trunk/; revision=20715
2008-07-01 05:38:49 +00:00
Cody Russell
fce9c8b7d4 Practically everything changed.
2008-06-30  Cody Russell  <bratsche@gnome.org>

        * Practically everything changed.

        Change	all references	of GIMP	Toolkit	(and variations	of it)
        to GTK+	Toolkit, showing no mercy at all to our	beloved
	ancestry. (#540529)


svn path=/trunk/; revision=20709
2008-06-30 23:01:56 +00:00
Michael Natterer
422a4dd1d2 don't include the deprecated (and unused) "gtkmarshal.h".
2008-06-16  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkprintoperation-unix.c: don't include the deprecated (and
	unused) "gtkmarshal.h".


svn path=/trunk/; revision=20407
2008-06-16 19:19:31 +00:00
Matthias Clasen
59ae44d00e RH bug 204621 - "GtkPrint" asks for "Letter" size paper when "A4" size
was chosen

        Patch by Marek Kasik.

        * gtk/gtk.symbols:
        * gtk/gtkprinter.[hc]: Add gtk_printer_get_default_page_size.

        * gtk/gtkprintbackend.[hc]: Add fallback implementation.

        * modules/printbackends/file/gtkprintbackendfile.c:
        * modules/printbackends/cups/gtkprintbackendcups.c: Implement
        get_default_page_size.

        * gtk/gtkpagesetupunixdialog.c: When selecting a different printer,
        select its default paper size.

        * gtk/gtkprintunixdialog.c: If no explicit page setup has been set,
        use the printer default.

        * gtk/gtkprintoperation-unix.c: Don't create an empty page setup
        if we don't have a default page setup.

svn path=/trunk/; revision=20120
2008-05-21 02:17:30 +00:00
Matthias Clasen
cb18766ac5 Hold a refence on the print operation until gtk_print_job_send() is done.
2007-05-25  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkprintoperation-unix.c (unix_end_run): Hold a
        refence on the print operation until gtk_print_job_send()
        is done.  (#440040, Chris Vine)



svn path=/trunk/; revision=17915
2007-05-25 17:22:55 +00:00
Matthias Clasen
53931bcf21 Better version of the previous patch
svn path=/trunk/; revision=17712
2007-04-29 18:22:27 +00:00
Mattthias Clasen
99e8b92b6a Don't leak a file descriptor, and don't make the error dialog modal.
2007-04-29  Mattthias Clasen  <mclasen@redhat.com>

        * gtk/gtkprintoperation-unix.c 
        (_gtk_print_operation_platform_backend_launch_preview):
        Don't leak a file descriptor, and don't make the error
        dialog modal.  (#421985, Morten Welinder)



svn path=/trunk/; revision=17708
2007-04-29 18:03:35 +00:00
Matthias Clasen
034ec57184 Support passing a print settings file to the preview command. (#403717,
2007-04-29  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkprintoperation-unix.c
        (_gtk_print_operation_platform_backend_launch_preview):
        Support passing a print settings file to the preview
        command.  (#403717, Christian Persch)

        * gtk/gtksettings.c: Document %s in the
        gtk-print-preview-command setting.


svn path=/trunk/; revision=17704
2007-04-29 06:59:27 +00:00
Matthias Clasen
8864f012a5 Remove debug spew
svn path=/trunk/; revision=17551
2007-03-22 02:43:03 +00:00
Matthias Clasen
ef6f4ca81f Initialize the do_preview field of PrintResponseData. (#396703, Christian
2007-03-10  Matthias Clasen <mclasen@redhat.com>

        * gtk/gtkprintoperation-unix.c: Initialize the do_preview
        field of PrintResponseData.  (#396703, Christian Persch)



svn path=/trunk/; revision=17453
2007-03-10 06:55:44 +00:00
Matthias Clasen
7979cd6ac7 Move a few settings to gtksettings.c to make sure they show up in the
2006-12-30  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkprintoperation-unix.c:
        * gtk/gtkprintbackend.c:
        * gtk/gtkfilechooserdefault.c:
        * gtk/gtksettings.c: Move a few settings to gtksettings.c
        to make sure they show up in the docs.  (#365364, Christian
        Persch)



svn path=/trunk/; revision=16992
2006-12-31 05:54:46 +00:00
Matthias Clasen
721c3bc101 Replace a lot of idle and timeout calls by the new gdk_threads api.
2006-12-22  Matthias Clasen  <mclasen@redhat.com>

        * *.c: Replace a lot of idle and timeout calls by
        the new gdk_threads api.
2006-12-22 19:10:43 +00:00
Matthias Clasen
f45a35921a Commit a patch by Behdad to fix typos, omissions and other errors in the
2006-09-10  Matthias Clasen  <mclasen@redhat.com>

        * Commit a patch by Behdad to fix typos, omissions and other
        errors in the symbol aliasing, and add checks for local PLT
        entries.  (#354687, Behdad Esfahbod)
2006-09-10 06:39:16 +00:00
Matthias Clasen
eda5e5c413 Don't specify explicit format capabilities. (#346505, Christian Persch)
2006-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintoperation-unix.c (get_print_dialog): Don't specify
	explicit format capabilities.  (#346505, Christian Persch)
2006-08-31 18:13:16 +00:00
Matthias Clasen
0720f6d5d8 Fix some typos with inline property docs. (#347065, John Finlay)
2006-07-10  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkaction.c:
	* gtk/gtkiconview.c:
	* gtk/gtkprintbackend.c:
	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkscrolledwindow.c:
	* gtk/gtktoolbar.c: Fix some typos with inline property
	docs.  (#347065, John Finlay)
2006-07-10 16:59:43 +00:00
Matthias Clasen
866006534c Add a preview capability 2006-06-30 10:32:56 +00:00
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
6b67e2b67b Another forgotten change. 2006-06-19 11:43:34 +00:00
Matthias Clasen
92bbb2fe7d Require cvs glib.
2006-06-16  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Require cvs glib.

	* gtk/gtkprintoperation-unix.c:
	(_gtk_print_operation_platform_backend_create_preview_surface):
	Don't use a temporary directory for preview files, since it
	is not clear who cleans it up. Instead, use g_mkstemp() directly
	to create a temp pdf file, and make the preview app responsible
	for cleaning it up.
2006-06-16 17:17:56 +00:00
Matthias Clasen
0b05edb04f Move the registration of the gtk-print-preview-command setting from
2006-06-16  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkprintbackend.c: Move the registration of the
	gtk-print-preview-command setting from gtkprintbackend.c to
	gtkprintoperation-unix.c, to make sure it is registered before
	the first use. Also, document the two settings.
2006-06-16 16:57:02 +00:00
Matthias Clasen
44f85d4769 When starting a preview from the print dialog, set the action to PREVIEW.
2006-06-16  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintoperation-unix.c (handle_print_response): When starting
	a preview from the print dialog, set the action to PREVIEW.

	* gtk/gtkprintoperation.c: Cosmetic changes.
2006-06-16 16:36:25 +00:00
Matthias Clasen
bc4d333990 Mark preview filename as translatable. 2006-06-16 13:45:51 +00:00
Matthias Clasen
da191d13de make print-to-pdf show up again 2006-06-16 03:40:47 +00:00
Matthias Clasen
a803836657 Fix bug 344518 2006-06-11 02:59:51 +00:00
Matthias Clasen
480803d5ba Don't include gtkprinter-private.h here.
2006-06-08  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintbackend.h: Don't include gtkprinter-private.h here.

	* gtk/gtkprintunixdialog.c:
	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkprintjob.c:
	* gtk/gtkprintbackend.c: Instead include it here.

	* gtk/gtk.symbols:
	* gtk/gtkprintoperation.h:
	* gtk/gtkprintoperation.c: Rename pdf_target to export_filename.
2006-06-08 17:01:28 +00:00
Matthias Clasen
49e88d8900 Get rid of GTK_PRINT_OPERATION_RESULT_PREVIEW.
2006-06-08  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintoperation.h (GtkPrintOperationResult): Get
	rid of GTK_PRINT_OPERATION_RESULT_PREVIEW.

	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkprintoperation.c: Update all users.
2006-06-08 16:30:51 +00:00
Alexander Larsson
fd3b835e29 Fix up unix fallout from previous change.
2006-06-08  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkprintoperation-unix.c (finish_print):
	Fix up unix fallout from previous change.
2006-06-08 09:18:38 +00:00
Alexander Larsson
79041f07cd Update windows to build with new APIs and first cut at preview work.
2006-06-08  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkprintoperation-win32.c:
	Update windows to build with new APIs and first cut
	at preview work.

	* gtk/gtkprintoperation-private.h:
	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkprintoperation.c
	Various updates needed when making the preview work on win32.

	* tests/print-editor.c:
	Print, don't preview.
2006-06-08 09:09:50 +00:00
Alexander Larsson
9bea38595f Clean up APIs: Make async a setting instead of separate calls. Combine
2006-06-07  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtk.symbols:
	* gtk/gtkprintoperation-private.h:
	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkprintoperation.[ch]:
	Clean up APIs:
	Make async a setting instead of separate calls.
	Combine settings like show_dialog, show_preview and pdf_target into
	an action enum that you pass to gtk_print_dialog_run().

	* tests/print-editor.c:
	* tests/testnouiprint.c:
	* tests/testprint.c:
	* demos/gtk-demo/printing.c:
	Update to new APIs
2006-06-07 15:09:03 +00:00
Matthias Clasen
67dc5155af Add a GtkPrintOperation::show-preview property 2006-06-03 03:30:21 +00:00
Matthias Clasen
ab882a28af Cleanups 2006-06-03 03:11:31 +00:00
Alexander Larsson
fad69ba06c Add gtkprintoperationpreview.[ch] Set default preview command. Hardcoded
2006-06-02  Alexander Larsson  <alexl@redhat.com>

	* gtk/Makefile.am:
	Add gtkprintoperationpreview.[ch]
	Set default preview command. Hardcoded for now.

	* gtk/gtkmarshalers.list:
	Add BOOLEAN:OBJECT,OBJECT,OBJECT

	* gtk/gtkprintbackend.c:
	Add preview command property.

	* gtk/gtkprintcontext.[ch]:
	Make less dependent on PrintOperation for output settings
	Externally set cairo_t and dpi. Resettable.
	Create fontmap without metrics hinting (so that print preview
	text layout doesn't depend on zoom level).

	* gtk/gtkprintoperation-private.h:
	* gtk/gtkprintoperation-unix.c:
	* gtk/gtkprintoperation.[ch]:
	Initial work on print preview API and default implementation
	using an external preview app.

	* gtk/gtkprintoperation-win32.c:
	Some needed updates. Not done, needs more work.

	* gtk/gtkprintoperationpreview.[ch]:
	New interface used in print preview api.

	* gtk/gtkprintunixdialog.c:
	Add print preview dialog.

	* tests/print-editor.c:
	Test using an custom print preview widget.
2006-06-02 15:16:13 +00:00
Matthias Clasen
09f4906d21 bits from the preview patch 2006-06-01 12:38:07 +00:00
Matthias Clasen
4d5e99e6ca use canonical signal names 2006-06-01 04:54:49 +00:00
Matthias Clasen
084729ac7f Change some function names to be longer and better.
2006-05-31  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprintcontext.h:
	* gtk/gtkprintcontext.c:
	* gtk/gtkprintoperation.c:
	* gtk/gtkprintoperation-unix.c: Change some function names to be
	longer and better.
	gtk_print_context_get_cairo -> gtk_print_context_get_cairo_context
	gtk_print_context_get_fontmap -> gtk_print_context_get_pango_fontmap
	gtk_print_context_create_context -> gtk_print_context_create_pango_context
	gtk_print_context_create_layout -> gtk_print_context_create_pango_layout
	Update all callers.
2006-05-31 13:38:10 +00:00
Matthias Clasen
7f6f61c9ff Custom tab label 2006-05-24 16:15:15 +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
Matthias Clasen
57a052b0b0 Add a boolean show-progress property, and show a progress dialog if it is
2006-05-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtk.symbols:
	* gtk/gtkprintoperation.h:
	* gtk/gtkprintoperation.c: Add a boolean show-progress
	property, and show a progress dialog if it is set to TRUE.

	* gtk/gtkprintoperation.c (pdf_end_run):
	* gtk/gtkprintoperation-win32.c (win32_end_run):
	* gtk/gtkprintoperation-unix.c (unix_end_run):
	* gtk/gtkprintoperation-private.h: Add a cancelled
	parameter to end_run, and call it even if the print
	operation was cancelled.
2006-05-23 16:30:45 +00:00
Alexander Larsson
07d2dd1700 Add gtk_print_unix_dialog_add_custom_tab
2006-05-23  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtk.symbols:
	* gtk/gtkprintunixdialog.[ch]:
	Add gtk_print_unix_dialog_add_custom_tab

	* gtk/gtkprintoperation-unix.c:
	Implement custom widgets for unix.
	Fix some warnings by including cairo-ps/pdf.h

	* gtk/gtkprintoperation-win32.c:
	Mark string for translation.
2006-05-23 08:09:08 +00:00