30 Commits

Author SHA1 Message Date
Seth Hillbrand
90e10a2910 Properly invert logic for printing
I meant to gate this for MSVC/MacOS/Linux but missed the mark
2025-08-17 07:31:20 -07:00
Seth Hillbrand
23c1a68da8 Make printing consistent with plotting.
How you ask?  Plot first -> then read the PDF and print directly to the
platform-specific printers.  Roundabout?  Yes.  Better than wx printing?
Darnbetcha.

Also allows multi-size page printing and proper margins and print
preview

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1831
2025-08-16 20:07:45 -07:00
Seth Hillbrand
66f37beff7 Move canvas selection to common
Makes all canvases obey the same rendering parameter.  Also keeps the
canvas selection with the anti-alias selection, which makes logical
sense.  Reduce the antialias selection to a single choice rather than
two different choices for different canvases
2025-07-27 20:22:59 -07:00
Jeff Young
18e107529a Don't force callers of GetAppSettings to implement exception processing. 2025-06-14 20:25:59 +01:00
Wayne Stambaugh
1176ff4a15 Use symbol line width schematic setting when printing and plotting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20574
2025-04-08 08:11:28 -04:00
jean-pierre charras
d3c05c7ccd minor additional fix to commit ddd27f28 2025-03-14 14:58:58 +01:00
Jeff Young
5996cffabc EE -> SCH (no functional changes) 2025-03-13 13:15:47 +00:00
jean-pierre charras
ddd27f2869 Eeschema printing: ensure the flag "is first page" is correctly set.
It is mainly used to draw page layouts having different objects drawn on
first page and other pages.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20318
2025-03-13 11:01:06 +01:00
Jeff Young
f2da0c791f Retire non-cairo printing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19323
2025-02-24 11:08:29 +00:00
jean-pierre charras
8a5b71a01b Print dlgs: add panel printer to select the current printer. Windows only
Other platforms show the available printers in print dialog.
2025-02-20 17:04:47 +01:00
jean-pierre charras
69c6412b43 Revert "fix commit 4ef2853a on non Windows platforms"
This reverts commit e587e5029c487e69222f6bf545a0ad0f07e0f210.

Revert "Print dlgs: add panel printer to select the current printer. Windows only"

This reverts commit 4ef2853ae51afa028350c0c42ee01286837e5178.
2025-02-06 14:27:30 +01:00
jean-pierre charras
4ef2853ae5 Print dlgs: add panel printer to select the current printer. Windows only
Other platforms natively show the available printers.
2025-02-06 12:29:18 +01:00
Jeff Young
857d4f3803 Cleanup. 2025-02-03 11:54:57 +00:00
Jeff Young
5f06f0d863 Indentation fixes for controls in print dialog. 2025-02-03 11:54:57 +00:00
Seth Hillbrand
4eb0e70ddf Fix issue preventing printing on some platforms
Linux printing for some systems blanked the printouts when the gal
screensize was set here.  Restoring the screensize after clearing
ensures that the view redraw is properly scaled

Fixes https://gitlab.com/kicad/code/kicad/issues/19807
2025-02-02 09:44:10 -06:00
Wayne Stambaugh
3755b77b92 Dialog string capitalization and layout fixes. 2025-01-06 14:01:00 -05:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
jean-pierre charras
ac73616e7c SCH_PRINTOUT::PrintPage(): update code.
This updated code is not in use. However it is updated just in case.
2024-12-13 10:46:27 +01:00
jean-pierre charras
929b2c06fe Eeschema, export to clipboard: allow using the Cairo printing system.
The Cairo printing system is already used to print to printer, it can be
now used to print to clipboard and fixes the issue with opacity < 1.
However to use it in clipboard, the advanced config needs to set the new
EnableEeschemaExportClipboardCairo = 1 (for now)
The default is false.
2024-12-10 11:40:43 +01:00
jean-pierre charras
8470229767 Printing system: Honor the Print background color option
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19167
2024-11-27 11:13:20 +01:00
Wayne Stambaugh
a6923b3de3 Cache full schematic sheet list sorted by sheet page number.
The sheet list is returned as a copy of the cached list rather than a
reference to prevent external code from changing the list.  While not as
performant, it eliminates the risk of the sheet list being altered in
ways that could break the schematic.  The sheet list should only be
updated by calling SCHEMATIC::RefreshHierarchy() when any appropriate
sheet changes are made.

Note to developers: there is something inherently different about how the
QA tests are loading and handling schematics versus the schematic editor.
Using the cached sheet list for the SCHEMATIC object will cause some QA
test to fail.  This is why SCHEMATIC::Hierarchy() has not replaced
SCHEMATIC::BuildSheetListSortedByPageNumbers() everywhere.
2024-10-09 09:58:50 -04:00
jean-pierre charras
22e39c97fb Fix a compil issue (worked on msys2, but not on other compils) 2024-08-25 15:40:58 +02:00
jean-pierre charras
33647d9c21 EEschema, print: fix incorrect sheet order and uninitialized sheet number
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18594
2024-08-25 15:01:19 +02:00
Jeff Young
edc7603d2a Make it clear that GetSheets() is heavy.
Also removes the side-effect that SCH_SHEET_LIST's
c'tor would sort the list (and write virtual page
numbers) anytime the starting sheet was the root.

Also, definitely don't build a SHEET_LIST (sorted or
otherwise) if you're not even going to use it.

Also don't build SCH_SHEET_LISTs on idle events.  Better
to just always have the Next Sheet button enabled (we
already beep if you click it and there's no next sheet).

Also, use a SCREEN_LIST when you can.  It's much cheaper
to create.
2024-06-06 18:00:59 +01:00
Jeff Young
92910d5d0f Factor common parts of SCH_ & LIB_SYMBOL into SYMBOL. 2024-04-04 13:18:55 +01:00
Jeff Young
9c371e2ef5 Don't draw the selection if it's not from the current screen.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17132
2024-03-02 18:57:39 +00:00
jean-pierre charras
d4ce2c8982 Fix a few Coverity warnings. 2023-11-25 11:44:01 +01:00
jean-pierre charras
bcea2aa73b EEschema, Cairo printing engine: some fixes:
- Try to activate anti aliasing
- disable Preview on GTK when cairo printing is selected: it does not work,
and is also disabled for Pcbnew / Gerbview for the same reason
2023-11-24 17:43:04 +01:00
jean-pierre charras
029df17b5a Eeschema, Cairo printing: adjust printing to page size and other refinements 2023-11-23 17:24:16 +01:00
jean-pierre charras
247a0e6501 Eeschema: Add Cairo printing to the Eeschema print engine. The current print engine (using wxDC draw engine) has frequently issues with each new wxWidgets version. Cairo printing engine, used for Pcbnew and Gerbview has less issues. On Eeschema, the cairo print is enabled only if the advanced config has the option "EnableEeschemaPrintCairo = 1" 2023-11-23 16:11:09 +01:00