Commit Graph
69 Commits
Author SHA1 Message Date
Jonathan Watt e867c0bdf9 Bug 1865485. Rename nsIPrintSettings::HasOrthogonalSheetsAndPages to HasOrthogonalPagesPerSheet. r=dholbert
The old name is potentially misleading now that we implement 'page-orientation'
since that provides a new mechanism by which pages could end up orthoganal
to the sheet, but this method is very specifically about pages-per-sheet
induced rotation.

Differential Revision: https://phabricator.services.mozilla.com/D193989
2023-11-20 09:14:50 +00:00
Fred Chasen 5fad9055d6 Bug 1793220 - Use at-page size rule as paper size when printing to PDF r=dholbert,AlaskanEmily
Adds a usePageRuleSizeAsPaperSize setting to allow overriding the default paper size when printing to a PDF file.

Print preview now checks for at-page size rules and when enabled will use that size for the previewed sheet of paper.

The preview will also return the page width and height (in inches) during its callback for the frontend to use to override the default paper settings.

Differential Revision: https://phabricator.services.mozilla.com/D160303
2023-02-27 20:22:18 +00:00
David Shin e6118a5a8c Bug 1681183: Ignore unwriteable margins user specifies Margins: None for printing. r=dholbert,mstriemer
This lets users e.g. print-to-scale where it matters.
Custom margins are still clamped to unwriteable margins, even when all zeroes,
to avoid impacting user-specified & persisted margins.

Differential Revision: https://phabricator.services.mozilla.com/D152900
2022-08-15 19:55:08 +00:00
Jonathan Watt 1592fc4878 Bug 1432651 p2 - Remove nsIPrintSession and all the code that uses it. r=emilio,geckoview-reviewers,m_kato
Lately nsIPrintSession was only used to pass around RemotePrintJobChild objects.
Now that we pass those objects explicitly where needed (part 1), this class
serves no purpose.

Another reason to want to get rid of this class is that having it as a member
of nsIPrintSettings made no sense and was confusing.

Differential Revision: https://phabricator.services.mozilla.com/D146381
2022-05-16 08:38:02 +00:00
Jonathan Watt e336997b9a Bug 1769129. Remove nsIPrintSettings.isPrintSelectionRBEnabled. r=emilio
nsIPrintSettings is supposed to be a collection of settings passed to the
platform code to determine how the document prints. The
isPrintSelectionRBEnabled member doesn't belong here since it is a flag that
is passed to the OS native print settings dialog to tell it whether to
display a "Print selection only" radio button.

Depends on D146232

Differential Revision: https://phabricator.services.mozilla.com/D146251
2022-05-13 15:26:07 +00:00
Cristian Tuns cebb65e9b3 Backed out changeset 00ef44ea9e3f (bug 1769129) for causing build bustages on nsPrintDialogX.mm CLOSED TREE 2022-05-13 08:20:12 -04:00
Jonathan Watt 7509ece9d9 Bug 1769129. Remove nsIPrintSettings.isPrintSelectionRBEnabled. r=emilio
nsIPrintSettings is supposed to be a collection of settings passed to the
platform code to determine how the document prints. The
isPrintSelectionRBEnabled member doesn't belong here since it is a flag that
is passed to the OS native print settings dialog to tell it whether to
display a "Print selection only" radio button.

Differential Revision: https://phabricator.services.mozilla.com/D146251
2022-05-13 11:57:08 +00:00
Jonathan Watt c41dff7855 Bug 1766651 - Remove nsIPrintSettings.isCancelled and nsIPrintSettings.saveOnCancel. r=bobowen
nsIPrintSettings.isCancelled was only being set to true by the Windows widget
code ShowNativePrintDialog nowadays. That seems pointless since that widget
code is only invoked under the _showPrintDialog call in print.js, and in the
case that the widget code throws, the print is never invoked and the
nsIPrintSettings object isn't used.

nsIPrintSettings.saveOnCancel was set in some places but never read.

Differential Revision: https://phabricator.services.mozilla.com/D144830
2022-04-27 17:55:24 +00:00
Emilio Cobos Álvarez 202fcd0999 Bug 1760836 - Support printing to an nsIOutputStream. r=jfkthame,jrmuizel,webdriver-reviewers,geckoview-reviewers,agi
The trickiest bits are the PrintTargetCG ones, the rest is just plumbing
and cleanups and tests, but let me know if you want those to be split
out, can do.

The GTK change to nsPrintSettingsGTK::GetResolution is a no-op (we only
read resolution on windows), but I did that because we assume that it
doesn't fail and GTK returns a sane default anyways.

Differential Revision: https://phabricator.services.mozilla.com/D142199
2022-03-30 18:51:58 +00:00
Iulian Moraru 7106f0368c Backed out changeset d42d7505c9cf (bug 1760836) for causing mochitest failures on browser_print_stream.js. CLOSED TREE 2022-03-29 23:32:39 +03:00
Emilio Cobos Álvarez 2ee3ba7653 Bug 1760836 - Support printing to an nsIOutputStream. r=jfkthame,jrmuizel,webdriver-reviewers,geckoview-reviewers,agi
The trickiest bits are the PrintTargetCG ones, the rest is just plumbing
and cleanups and tests, but let me know if you want those to be split
out, can do.

The GTK change to nsPrintSettingsGTK::GetResolution is a no-op (we only
read resolution on windows), but I did that because we assume that it
doesn't fail and GTK returns a sane default anyways.

Differential Revision: https://phabricator.services.mozilla.com/D142199
2022-03-29 17:50:58 +00:00
Jonathan Watt fa1fc32c8b Bug 1748188 - Remove nsIPrintSettings.setupSilentPrinting. r=emilio
The background we have on why this exists is in the code comments of the code
that's being removed, and in:
https://bugzilla.mozilla.org/show_bug.cgi?id=193001#c91

It seems very unlikely that this code is necessary. It's run for silent
printing when the new UI is enabled and E10s is disabled. If it was really
necessary it seems likely we'd have seen breakage in our much more common use
cases.

Differential Revision: https://phabricator.services.mozilla.com/D134936
2022-01-03 10:55:04 +00:00
Butkovits Atila a16a79e9b3 Backed out changeset 1de6f3bfb971 (bug 1748188) for causing bustages at nsPrintSettingsGTK.cpp. CLOSED TREE 2022-01-03 03:54:41 +02:00
Jonathan Watt 7b88e078a9 Bug 1748188 - Remove nsIPrintSettings.setupSilentPrinting. r=emilio
The background we have on why this exists is in the code comments of the code
that's being removed, and in:
https://bugzilla.mozilla.org/show_bug.cgi?id=193001#c91

It seems very unlikely that this code is necessary. It's run for silent
printing when the new UI is enabled and E10s is disabled. If it was really
necessary it seems likely we'd have seen breakage in our much more common use
cases.

Differential Revision: https://phabricator.services.mozilla.com/D134936
2022-01-03 01:33:18 +00:00
Jonathan Watt d70db9baf8 Bug 1745452 - Remove the print progress dialog code. r=mstriemer,bobowen,webdriver-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D133500
2021-12-16 15:12:33 +00:00
Butkovits Atila 6c14d03852 Backed out changeset 51d7c5d96ceb (bug 1745452) for causing failures at browser_all_files_referenced.js. CLOSED TREE 2021-12-16 15:13:34 +02:00
Jonathan Watt 260ef48d25 Bug 1745452 - Remove the print progress dialog code. r=mstriemer,bobowen,webdriver-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D133500
2021-12-16 11:45:59 +00:00
Bob Owen 7606aaf732 Bug 1669149 p1: Introduce nsIPrintSettings::EquivalentTo and nsIPrinter::CopyFromWithValidation. r=jwatt
This is to allow settings saved in prefs to be validated against a printer and
for print preview to be updated if any changes affecting layout occur.

Differential Revision: https://phabricator.services.mozilla.com/D98458
2021-11-16 08:17:02 +00:00
Mats Palmgren 925174e044 Bug 1689789 part 2 - Use Ceil instead of Truncate the ensure the print surface is large enough for the requested paper size. r=jfkthame
Also, for GTK, request the paper size in millimeter for
millimeter based paper units to avoid depending on GTK's
rounding behavior.

Differential Revision: https://phabricator.services.mozilla.com/D103609
2021-02-06 00:28:29 +00:00
Daniel Holbert f190e410a2 Bug 1669905 part 2: Add nsIPrintSettings APIs to handle the possibility that pages and sheets may have orthogonal orientation, in pages-per-sheet printouts. r=jfkthame
This patch does three things, all centered around these new APIs:

 (1) Add the APIs themselves -- some nsIPrintSettings methods to reason about
the sheet-orientation being potentially flipped to accomodate 2 and 6
pages-per-sheet.

 (2) Use these new APIs, where appropriate, in places where we previously used
the page-orientation to set up the platform-native print-settings objects and
print-target. Now, we'll use the *sheet* orientation instead of the page
orientation, to be sure we produce the appropriately-oriented platform-native
surfaces.  Also, for symmetry, this patch adds similar logic to the reverse
codepaths, where we update an existing nsIPrintSettings object based on a
platform-native print-settings object.

 (3) Update nsPrintJob's code that informs nsPresContext about the page-size.
This patch makes sure that this code uses the *page* size, rather than the
*sheet* size, in cases where they differ.  (The code that consumes this
nsPresContext::GetPageSize API, e.g. our CSS media-query code, really does want
the page size, not the sheet size.)

Differential Revision: https://phabricator.services.mozilla.com/D100372
2021-01-05 02:24:00 +00:00
Emilio Cobos Álvarez d1c43878e6 Bug 1669854 - Add a single pageRanges print setting. r=nordzilla
... which is an array of pairs of ranges, and use it instead of the
existing printRange / startPage / endPage settings.

Differential Revision: https://phabricator.services.mozilla.com/D96093
2020-11-07 16:01:57 +00:00
Jonathan Kew 4624871cba Bug 1667053 - Refactor macOS print settings implementation for clarity. r=jwatt
Rather than wrapping an NSPrintInfo in nsPrintSettingsX, where we then have two
(potentially conflicting) sources of truth about various settings, we treat the
settings in the base nsPrintInfo class as authoritative, and just apply them to
a temporary NSPrintInfo when needed to interact with platform APIs.

Differential Revision: https://phabricator.services.mozilla.com/D92966
2020-10-23 11:07:21 +00:00
Daniel Holbert f1ebc82b54 Bug 1631452 part 1: Give nsIPrintSettings a "numPagesPerSheet" attribute. r=TYLin
As noted in the attribute's documentation, we only intend to support a short
list of numeric values. The underlying platform code that reacts to this
attribute (added in a later patch) will screen for whether the provided value
is supported or unsupported, and will gracefully fall back as-needed.

(The corresponding frontend code will probably expose this attribute via a
dropdown widget that only allows users to choose among the supported values, so
there shouldn't really be any way to get an unsupported value into this
attribute anyway.)

Differential Revision: https://phabricator.services.mozilla.com/D86799
2020-10-13 22:55:03 +00:00
Daniel Holbert 20af406349 Bug 1669409: Convert the nsIPrintSettings:kEnableSelectionRB flag into a boolean, since it's the only entry in a bitfield. r=jwatt,emilio
This was the last flag that the PrintOptions bitfield was tracking.

So, this patch is effectively converting that bitfield (and its alias
"PrintOptionsBits") into a new, simpler boolean field named
"isPrintSelectionRBEnabled".

Differential Revision: https://phabricator.services.mozilla.com/D92542
2020-10-07 00:36:51 +00:00
Daniel Holbert 81a610ee60 Bug 1669375 part 2: Remove code that partially implemented the "print only even/odd pages" feature. r=jwatt
This code looked like it might work, but it seems to have only ever been backed
by per-printer about:config prefs.  I believe we only ever exposed UI for this
feature on Linux, via the native GTK dialog; and even there, the UI doesn't
actually seem to have done anything -- it was never wired up to the actual
implementation of even/odd page-skipping.

Differential Revision: https://phabricator.services.mozilla.com/D92528
2020-10-06 15:33:29 +00:00
Emilio Cobos Álvarez 3f7cf49848 Bug 1668767 - Make "print selection" setting independent of page range. r=jfkthame
It conceptually is, and this will allow to have UI independent of the
page range in bug 140718.

Differential Revision: https://phabricator.services.mozilla.com/D92201
2020-10-02 13:59:48 +00:00
Emilio Cobos Álvarez 6b3c10f63b Bug 1668406 - Fix nsIPrintSettings.showMarginGuides. r=jfkthame
So that:

 * It accounts for @page.
 * It is correctly serialized and deserialized over IPC.
 * It's nicer to use.

Depends on D92004

Differential Revision: https://phabricator.services.mozilla.com/D92005
2020-10-01 10:54:18 +00:00
Emilio Cobos Álvarez 25bd34966d Bug 1668406 - Introduce nsIPrintSettings.honorPageRuleMargins. r=jfkthame
(Doing the obvious)

This should allow the front-end to expose it in one way or another in
bug 1661663.

Differential Revision: https://phabricator.services.mozilla.com/D92004
2020-10-01 13:18:01 +00:00
Jonathan Kew 46a0275011 Bug 1665904 - Rename paperName to paperId for better clarity (platform). r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D90790
2020-09-19 21:31:05 +00:00
Jonathan Kew f0875e8fb3 Bug 1665901 - Remove (Windows-specific) paperData field, as it now just duplicates the paper id. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D90686
2020-09-18 15:28:46 +00:00
Jonathan Kew f11c221255 Bug 1662538 - patch 1 - Make nsIPaper expose a non-localizable .id in addition to a localizable .name attribute. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D90073
2020-09-17 20:05:08 +00:00
Emilio Cobos Álvarez 04ef6c79cb Bug 1664205 - Simplify rect getters in nsIPrintSettings. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D89778
2020-09-10 15:25:59 +00:00
Erik Nordin f352daca1a Bug 1661823 - Fix Default Print Settings Unwriteable Margins Units r=AlaskanEmily
Print settings stores margin units in TWIPS, but the API expects inches.
This was causing an extra conversion from inches to TWIPS on values that
were already in TWIPS.

Differential Revision: https://phabricator.services.mozilla.com/D88674
2020-08-28 21:53:34 +00:00
Jonathan Watt 0192bf874c Bug 1660918. Fix nsIPrintSettings.clone() to copy all members. r=nordzilla
Differential Revision: https://phabricator.services.mozilla.com/D88094
2020-08-24 23:56:55 +00:00
Bob Owen d85632d497 Bug 1658299 Part 2: Add createDefaultSettings() to nsIPrinter for Windows. r=jwatt,jfkthame
This retrieves the same settings from the printer as
InitPrintSettingsFromPrinter.
There is probably a lot of scope for de-duplication of code here, but I decided
to try and protect the old fallback paths.

Depends on D87125

Differential Revision: https://phabricator.services.mozilla.com/D87604
2020-08-20 23:25:10 +00:00
Erik Nordin 61c975eaa2 Bug 1658299 - Part 1: Add createDefaultSettings() to nsIPrinter for CUPS r=jwatt,emilio,geckoview-reviewers,owlish
This patch adds a createDefaultSettings() method to nsIPrinter to
initialize a default print settings object specific to that printer.
It implements the functionality for Linux and macOS but adds only stubs
for Windows.

Differential Revision: https://phabricator.services.mozilla.com/D87125
2020-08-20 06:11:08 +00:00
Bogdan Tara 7ba9bd2076 Backed out changeset ebf8dfa204ea (bug 1658299) for test_printer_default_settings.html failures CLOSED TREE 2020-08-20 05:36:37 +03:00
Erik Nordin f6c1ab323d Bug 1658299 - Part 1: Add createDefaultSettings() to nsIPrinter for CUPS r=jwatt,emilio,geckoview-reviewers,owlish
This patch adds a createDefaultSettings() method to nsIPrinter to
initialize a default print settings object specific to that printer.
It implements the functionality for Linux and macOS but adds only stubs
for Windows.

Differential Revision: https://phabricator.services.mozilla.com/D87125
2020-08-20 00:23:59 +00:00
Jonathan Kew 138e1ef046 Bug 1631460 - Create a boolean showMarginGuides attribute on nsIPrintSettings. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D84158
2020-07-20 17:39:12 +00:00
Simon Giesecke 1ee0a47195 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in widget. r=jmathies
Differential Revision: https://phabricator.services.mozilla.com/D66012
2020-03-16 10:56:57 +00:00
Bogdan Tara 22b0fa7e80 Backed out 4 changesets (bug 1613985) for causing build bustages CLOSED TREE
Backed out changeset fba0caac746c (bug 1613985)
Backed out changeset 8605d7a19107 (bug 1613985)
Backed out changeset 41e858fbf235 (bug 1613985)
Backed out changeset 847433cf1e0a (bug 1613985)
2020-03-16 12:41:41 +02:00
Simon Giesecke 36f6c9d797 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in widget. r=jmathies
Differential Revision: https://phabricator.services.mozilla.com/D66012
2020-03-16 09:14:12 +00:00
Jonathan Watt 9dfe17b68b Bug 1552785. Remove internal code for various frameset printing behaviors. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D33624
2019-05-21 16:01:34 +01:00
Jonathan Watt ee202ae496 Bug 1553324. Remove nsIPrintSettings.printFrameTypeUsage. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D32068
2019-05-13 16:30:20 +01:00
Jonathan Watt bef8cc85e2 Bug 1549541. Remove nsPrintSettingsImpl mPrintPreview. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D30092
2019-04-10 10:41:13 +01:00
Sylvestre Ledru ad31adba4c Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

Differential Revision: https://phabricator.services.mozilla.com/D28956
2019-05-01 08:47:10 +00:00
Haik Aftandilian e3c6d3c3f0 Bug 1319116 - Part 2 - "Cancel" reverts header and footer settings to defaults r=jwatt
On Mac, don't attempt to save print settings after the user cancels out of the print dialog.

Differential Revision: https://phabricator.services.mozilla.com/D23889
2019-04-01 14:42:24 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Andi-Bogdan Postelnicu 783a0fa8c6 Bug 1453795 - Widget - Initialize member fields in classes/ structures. r=jimm 2018-06-15 17:48:51 +03:00
Sebastian Hengst d91e9954eb Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00