Commit Graph

30978 Commits

Author SHA1 Message Date
Jeff Young 438c63f587 Fix outline font boundingbox issues. 2022-01-08 16:47:45 +00:00
Jeff Young aef2a3fca4 Default font for eeschema. 2022-01-08 16:47:45 +00:00
Jeff Young eb58d7e44c Text glyph caches and bug fixes.
1) Unify metrics between stroke and outline fonts
2) Unify handling of rotation and mirroring
3) Bug fixes in collision handling
4) Use of VECTOR2I (instead of VECTOR2D) for world-coordinates
5) Generate outline font overbar with rounded ends and fix rotation
bugs
6) Generate wxEVT_CHOICE events from FONT_CHOICE::SetFontSelection
7) Change text-item PNS SOLIDs to use compound shapes
2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 5b7198dfc8 Fixes as per @sethhillbrand's comments 2022-01-08 16:47:45 +00:00
Jeff Young 383beeba8e Fix font name that shouldn't be translated. 2022-01-08 16:47:45 +00:00
Jeff Young 72340fcee2 Implement router and DRC collisions for outline fonts. 2022-01-08 16:47:45 +00:00
Jeff Young a2030a5956 GUI for font selection. 2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 72b69e8d7f File format changes for fonts. 2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 9b406c1da4 Outline font support. 2022-01-08 16:47:45 +00:00
jean-pierre charras 9c29cc945c prepare teardrops, round 2 2022-01-08 16:56:41 +01:00
jean-pierre charras 2b20a58615 Zone fill: fix an issue that uses thermal spoke width as thermal gap.
Fixes #10300
https://gitlab.com/kicad/code/kicad/issues/10300
2022-01-08 14:24:14 +01:00
jean-pierre charras 33dbe92deb drc_test_provider_mechanical_clearance: add missing handling of SHAPE_T::RECT
test_ee_item.cpp: add missing call to ClearFieldsAutoplaced();
2022-01-08 10:49:47 +01:00
jean-pierre charras 563e8817a2 Fix a compil issue. 2022-01-08 08:10:18 +01:00
Seth Hillbrand c72593ca01 Printing multiple bitmaps
A long-standing issue with multiple workarounds
(https://gitlab.com/kicad/code/kicad/-/issues/1877) prevented eeschema
printouts with multiple images or images in both the worksheet and the
schematic.

We worked around this by ordering the bitmap printing to be the first
step in the printing process.  This partially worked but didn't get
everything correct.  The primary difficulty in debugging this was that
the wxPrintPreview that we generate looked correct.  Only the actual
printout was incorrect.

The fix is to explicitly clip bitmap drawing to the bitmap area,
regardless of how large the bitmap is.

(cherry picked from commit 69469b254a)
2022-01-07 17:22:16 -08:00
Seth Hillbrand 4a16c603e9 Don't bind to Alt+Tab
The Alt key is not usable by programs under Windows and Alt+Tab is
reserved on both MSW and Linux.  Instead, we use the Shift modifier to
determine which preset to open
2022-01-07 15:35:46 -08:00
Seth Hillbrand 04c46a8fd2 Correct return type in mapCoords 2022-01-07 09:08:40 -08:00
Seth Hillbrand 26c0a78947 Plot pads in layer color
v6 pads are not allowed to be a different color from the rest of the
copper layer, so don't query the GAL layer for a color

Fixes https://gitlab.com/kicad/code/kicad/issues/10293

(cherry picked from commit bfca928900)
2022-01-07 08:56:22 -08:00
Seth Hillbrand 3d88f37949 Switch mapCoords to VECTOR2I 2022-01-07 08:37:37 -08:00
Seth Hillbrand eb271ca7fb Don't deduplicate schematic polygon points 2022-01-07 08:29:34 -08:00
Seth Hillbrand 4cdc9d3857 Don't deduplicate symbol polygons
SHAPE_LINE_CHAIN will, by default, remove duplicate points when
appending.  We don't want to do this when constructing our polygons in
symbol editor, so we need to explicitly call the routine without
deduplication

Fixes https://gitlab.com/kicad/code/kicad/issues/10289

(cherry picked from commit 62f8603353)
2022-01-07 08:25:49 -08:00
Seth Hillbrand c9fc15b5eb Clear edited point when exiting tool
When leaving the main point editor loop, we need to ensure that the edit
point is cleared as well.  This is usually cleared by a ClearEvent call
but in case this is missed, we need to ensure that other tools are not
caught out

Fixes https://gitlab.com/kicad/code/kicad/issues/10288

(cherry picked from commit 9a2332dfcf)
2022-01-07 08:25:49 -08:00
jean-pierre charras 53770fec68 Ensure thermal spoke widths are smaller than the pad size (fix a regression)
This is needed to create good thermal reliefs, and ensure the DRC about
thermal spoke count works.
Fixes #10246
https://gitlab.com/kicad/code/kicad/issues/10246
2022-01-07 16:38:27 +01:00
jean-pierre charras 534d635dd4 DIALOG_DRC: avoid use UNDEFINED_LAYER when select or activate a physical layer.
Although strangely it did not create issues on Linux, it does not work on Windows
2022-01-07 12:53:10 +01:00
Seth Hillbrand 5fde992ed4 Forgot to build ninja files 2022-01-06 19:44:45 -08:00
Seth Hillbrand 2e232703bd Swap make for ninja in Fedora CI
Take advantage of extra cores on hetzner machine
2022-01-06 19:41:12 -08:00
Seth Hillbrand 7f81badaa7 Use KiCad builders for Fedora 2022-01-06 19:29:39 -08:00
Seth Hillbrand ac9693bb8d Safely sort view layers
Changing view order of only some layers can cause overwriting of the
original layer if not pre-staged

Fixes https://gitlab.com/kicad/code/kicad/issues/10283

(cherry picked from commit 3e6bf7814b)
2022-01-06 14:41:51 -08:00
Seth Hillbrand fd9d923bb7 Do not call SafeYield on close
wxSafeYield() is not "safe".  Pending actions may include deletion of
the currently active class.  This will cause crashes when exiting.  If
needed for specific behaviors, we should use wxSafeYieldFor( flag ) with
the appropriate events specified rather than a general yield which can
cause more problems

(cherry picked from commit 9864337914)
2022-01-06 12:36:51 -08:00
Seth Hillbrand 4f874057ab DRC scripting: load project from board if possible
s_SettingsManager is not always initialized when the WriteDRCReport is
run.  We should first attempt to extract the project from the actual
board being checked.  Failing that, we fall back to the static settings manager and then exit if we don't have a project associated.

Fixes https://gitlab.com/kicad/code/kicad/issues/10221

(cherry picked from commit 78e737b9d8)
2022-01-06 11:51:05 -08:00
Brian Mayton e4f73c8dc9 Add ORANGE to DXF output
Matches the schematic color options to DXF layers

Fixes https://gitlab.com/kicad/code/kicad/issues/10281

Signed-off-by: Seth Hillbrand <seth@kipro-pcb.com>
(cherry picked from commit d014f0307b)
2022-01-06 11:06:31 -08:00
Seth Hillbrand 3a730361d3 Fix swap interval checking
Checking for the existence of the call only validated that our header
defined the value, not that the video card/driver supported the call.
We query the extensions string directly to check for support.  This
should fix both the X11 and virtualization issues (potentially other
crashes with older video cards as well)

Fixes https://gitlab.com/kicad/code/kicad/issues/8944

(cherry picked from commit 7c9340f855)
2022-01-06 10:53:44 -08:00
jean-pierre charras e00e9ff41f PANEL_TEMPLATE_FIELDNAMES: fix incorrect management of boolean options
(it was impossible to disable them)
Fixes #10280
https://gitlab.com/kicad/code/kicad/issues/10280
2022-01-06 19:00:52 +01:00
Seth Hillbrand 3ff87858de Prevent cvpcb from losing text focus on filter
Refresh event changes focus (on GTK).  We fix this by storing the
existing insertion point in the text box, refocusing and restoring the
text position

Fixes https://gitlab.com/kicad/code/kicad/issues/10029

(cherry picked from commit 05d3dc533b)
2022-01-06 09:17:02 -08:00
jean-pierre charras 0f0a540a65 Panel 3D previewer: for show 3D body shapes, regardless the 3D viewer itself.
the Panel 3D previewer is made to show 3D body shapes, so do not show them
when disabled in the board 3D viewer, is really stupid.
2022-01-06 12:04:28 +01:00
jean-pierre charras bf5cdec743 QA test code: fix some issues:
- in python tests force the "C" locale is in use (remove wx alerts in some locales)
- disable some new DRC tests that are irrelevant in QA tests and create false positives
2022-01-06 09:37:14 +01:00
jean-pierre charras 7fa451dc93 Thermal reliefs: fix incorrect calculation
commit eeef655 did not fix the calculations.
2022-01-06 09:00:29 +01:00
Seth Hillbrand b01715dd22 Fix crash in SVG plot
NULL fonts need to be assigned a default.

KSC internal ticket #459
2022-01-05 17:26:18 -08:00
Seth Hillbrand 3ace4446e7 Use 'special' escaping for certain fields
Most fields are escaped using the `\` notation.  But the VALUE field and
the symbol name need to be escaped using braces notation.

Fixes https://gitlab.com/kicad/code/kicad/issues/10097

(cherry picked from commit 71e7b4b77b)
2022-01-05 17:19:36 -08:00
Seth Hillbrand 88a8ad2ca1 Keep symbol synced with edit tool
Undo/Redo can change the symbol referenced by the symbol drawing tool.
This updates the current symbol before important steps to keep the
system synced

Fixes https://gitlab.com/kicad/code/kicad/issues/10125

(cherry picked from commit b8a7a66a0a)
2022-01-05 16:52:02 -08:00
Seth Hillbrand 5a8b0921eb Don't remove last point in libedit
SHAPE_LINE_CHAIN in libedit doesn't make a polygon, so we always need
the last point and it shouldn't be closed

Fixes https://gitlab.com/kicad/code/kicad/issues/9934

(cherry picked from commit 55087a9e82)
2022-01-05 16:06:38 -08:00
Seth Hillbrand c340760eaa Prevent unneeded fallback
Starting in be8327bd54, we assume that all
exceptions in DoRePaint() are caused by OpenGL.  But many calls in
UpdateItems() will throw if there are internal errors such as
std::out_of_range.  Here, we catch those errors and simply skip ahead
rather than falling back to Cairo

(cherry picked from commit 444801ada6)
2022-01-05 13:47:43 -08:00
Steffen Mauch 3ced3afa68 eeschema: automatic generated symbol library from EAGLE plugin does not include footprint reference
Fixes https://gitlab.com/kicad/code/kicad/issues/10262
2022-01-05 19:48:40 +00:00
Seth Hillbrand e4961cb956 Update pin cache when undoing
The pin cache is invalidated by swap, so we need to ensure that it is
reset when we undo a change to the pins in schematic editor

Fixes https://gitlab.com/kicad/code/kicad/issues/10272

(cherry picked from commit 7f1648934f)
2022-01-05 11:33:35 -08:00
Ian McInerney bd828f598c Fix compile error with UTF8 unicode wxWidgets build
Fixes https://gitlab.com/kicad/code/kicad/issues/10210
2022-01-05 19:23:30 +00:00
Steffen Mauch 502e34349e eeschema: EAGLE plugin does not reference footprint with library suffix
Fixes https://gitlab.com/kicad/code/kicad/issues/10261
2022-01-05 19:14:27 +00:00
Seth Hillbrand 30549a5e6a Don't strip extensions twice in BOM export
Exporting the Bill of Materials uses the netlist exporter.  Both of
these routines were stripping the extension, leading to projects like
"test.project.kicad_pro" having the project name stripped.  We separate
the BOM netlist export from generic plugin netlist export to allow the
correct behavior when exporting netlists and generating BOMs

Fixes https://gitlab.com/kicad/code/kicad/issues/10270

(cherry picked from commit bef762e652)
2022-01-05 11:07:49 -08:00
Seth Hillbrand 9ca41cc8ee Set readable flags correctly on open
Missing files may be thrown during open.  These should have existence
and readable flags set correctly

(cherry picked from commit a05ec04ee8)
2022-01-05 09:55:51 -08:00
jean-pierre charras cd0ac9e698 eeschema, DIALOG_FIELD_PROPERTIES: fix a few issues.
(incorrect handling of H and V justify bitmap buttons
Fixes #10267
https://gitlab.com/kicad/code/kicad/issues/10267
2022-01-05 17:25:18 +01:00
Steffen Mauch 82f147ecef pcbnew: EAGLE plugin is case sensitive to >VALUE / >NAME
Fixes https://gitlab.com/kicad/code/kicad/issues/10253
2022-01-05 12:51:02 +00:00
Steffen Mauch a5307c6f59 pcbnew: fixing eagle_plugin with empty class names
Fixes #10229
https://gitlab.com/kicad/code/kicad/issues/10229
2022-01-05 12:19:53 +00:00