Commit Graph

16949 Commits

Author SHA1 Message Date
Jeff Young a156b49e2c Comments.
(cherry picked from commit 8a3cbce8f8)
2024-02-23 16:53:33 +01:00
Jeff Young 3938c35f17 Repair copy/paste of footprint fields.
Some of the code got lost in the move to PCB_FIELDs.

(cherry picked from commit a9c4a17c38)
2024-02-23 16:53:33 +01:00
Jeff Young e7f18e7eab Warp after context menu only if actively drawing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11080

(cherry picked from commit 1a7152d3eb)
2024-02-23 16:53:32 +01:00
Jeff Young e68cd04d48 Don't modify reference point if already moving.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16524

(cherry picked from commit 08da9a4494)
2024-02-23 16:53:32 +01:00
Jeff Young 898f60ea2f Add help text for DRC assertion clauses.
(cherry picked from commit d36f189192)
2024-02-23 16:53:31 +01:00
Jeff Young 345645bd8c Help documentation for "assertion" constraints.
(cherry picked from commit 152c458b9c)
2024-02-23 16:53:31 +01:00
Jeff Young 900962f9f1 Update syntax help for memberOfFootprint.
(cherry picked from commit 7ae14f9630)
2024-02-23 16:53:31 +01:00
Jeff Young 57dcf285c5 Various string issues held over from 8.0 string freeze.
(cherry picked from commit a610542a19)
2024-02-23 16:53:31 +01:00
Jeff Young 23c2104ffa Improve alignment tooltips.
(cherry picked from commit 2ab492474e)
2024-02-23 16:53:31 +01:00
Jeff Young 9ff66d0e71 Don't capture references to local variables for CallAfter.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16934

(cherry picked from commit 9d40374baf)
2024-02-23 16:53:30 +01:00
Jeff Young 276171b85e Handle holes in shapes when creating bounding hulls.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16347

(cherry picked from commit 0ead8a14a1)
2024-02-23 16:53:30 +01:00
jean-pierre charras ef6a5b6252 teardrops: calculate better points on track for track arc.
Previously, a reference point to calculate teardrop length was calculated
using a track segment. It can create significant position error with track arcs.
Now a arc is used to find this reference point.
2024-02-23 11:36:14 +01:00
Alex Shvartzkop 6ceea747b2 Swap to capitalized strings (translated). 2024-02-22 11:54:52 +03:00
Alex Shvartzkop dd6213051d Pick DP coupled segment closest to start item and baseline. 2024-02-20 22:06:00 +03:00
jean-pierre charras 01327b24b4 PANEL_SETUP_LAYERS: when removing a layer, do not delete items owned by footprints.
Items owned by footprints are allowed to be on non existing layers on board.
Moreover, items owned by footprint cannot be deleted by the board editor.
Fixes #17038
https://gitlab.com/kicad/code/kicad/-/issues/17038
2024-02-20 18:38:48 +01:00
Jeff Young 012b32e989 Don't leave dangling net pointers on PCB_SHAPEs.
Also makes it harder for this type of error to occur in
future.
2024-02-20 17:36:54 +00:00
Alex Shvartzkop 2e97d5d7cc Add missing check in tuning pattern outline. 2024-02-20 20:32:07 +03:00
Alex Shvartzkop cbfd757d28 Reduce amplitude snap value of tuning patterns. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 10e6ca8740 Show tuning pattern baselines when not editing them. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 59a0635b09 Disable local ratsnest when moving generators (tuning patterns).
They're not moving like normal objects, leaving ghost ratsnest.
2024-02-20 03:20:08 +00:00
Alex Shvartzkop ed712faf41 Disallow duplicating tuning patterns alone. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 5e5effaf3a Ensure minimum outline size in tuning patterns.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16847
2024-02-20 03:20:08 +00:00
Tomasz Wlostowski 82312a0fae router: SplitAdjacentSegments() should check if the end segment we are about to split is in the same net that the head segment
Otherwise, the router might add bogus segments to the node. The root of the problem is somewhere in the logic that delivers aEndItem to ROUTER::Move() though - as the end item (in line placement mode at least) should always be an item within the same net as the head and not belonging to the current head...
2024-02-20 03:20:08 +00:00
Alex Shvartzkop 8d76e4e171 Allow DP meanders to (mostly) fit on adjacent segments. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 943c5fea59 Fix length calculations in DP meander placer. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 29188bdc53 Fix some edge-cases in DP tuning pattern outline. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 4227b1add9 Improve tuning pattern robustness. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 1a65c0091f Tweak default meander settings. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop 35e73d7dee Restore green router collision color. 2024-02-20 03:20:08 +00:00
Alex Shvartzkop e9a881ed01 Reset placer when routing start fails to prevent crash on next usage.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17008
2024-02-20 03:20:08 +00:00
Seth Hillbrand 89592d08bf Revise teardrop graphics sizes
Sizes were too large on many systems.  Revised panel uses 615px on Linux
instead of 742.  Adjusted line sizes to remain minimum visible width at
new height.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17018
2024-02-19 12:48:36 -08:00
Mike Williams 60fe87a73c PCB: always parse ki_fp_filters as a property, not a field 2024-02-19 09:41:27 -05:00
Ian McInerney d3befd8bb8 Remove dummy items from group before they are deleted
Board items should not be in a group when they are deleted, but these
are dummy ones, so their group membership doesn't matter.

Fixes KICAD-7P0
Fixes KICAD-6VX
Fixes KICAD-7KK
Fixes KICAD-6VH
2024-02-16 12:20:00 +00:00
Marek Roszko b2c6e2de1f Fix file not found msg contents for step resolving 2024-02-15 23:10:57 -05:00
Marek Roszko 762c159b96 Fix KIPRJMOD by setting the project as active by modifying the board loading helper
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16973
2024-02-15 23:06:41 -05:00
Seth Hillbrand 08bdf1abae Avoid drawing netnames when not in board editor
Shouldn't be needed if we properly clear the netinfo but there's no
reason to keep netnames so better to avoid possible issues

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16981
2024-02-15 17:17:22 -08:00
Marek Roszko c48fc7ebff Fix crash due to PCB_SHAPEs not being returned by BOARD::AllConnectedItems
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16981
2024-02-15 19:58:21 -05:00
Jon Evans 4ec390838b Re-enable non-KiCad board import when non-standalone
Partial revert of ec2cd99405

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16978
2024-02-15 12:14:32 -05:00
Jon Evans 7b0bb59b37 Remove hard-coded versioned env vars in most places 2024-02-15 15:31:08 +00:00
Mike Williams 6c1273ca12 PCB Parsing: only parse old properties before PCB fields addition 2024-02-14 09:35:10 -05:00
jean-pierre charras 8e6fe0eaf0 Gerbview settings: store option "Page Limits" in gerbview config.
Previously this appearance option in Layer Manager was not stored.
2024-02-14 11:21:55 +01:00
jean-pierre charras 0d1945def7 Gerber drill file: do not flash oblong holes: they must be routed.
Fixes #16962
https://gitlab.com/kicad/code/kicad/-/issues/16962
2024-02-14 09:22:49 +01:00
Marek Roszko f73d45b0cf Add $schema prop to drc/erc 2024-02-13 19:08:55 -05:00
Ian McInerney b86bf19328 Make shape properties layer selection obey cancel command
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16735
2024-02-13 20:31:05 +00:00
Mike Williams 3cd61a2d39 PCB: appending boards should not select existing generators 2024-02-13 10:15:30 -05:00
Jeff Young 0cf433b28e CONVERT_TOOL::CreateLines() doesn't use SKIP_STRUCT flag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16930
2024-02-12 23:59:33 +00:00
Roberto Fernandez Bautista ca148fb4d1 pns_debug_tool: Fix "save as" to save log file with new router state 2024-02-12 21:22:57 +01:00
jean-pierre charras 7e4e80a2e5 DRC library parity attribute tests: disable DNP and EXCLUDE from BOM.
They are related to a design, not to a footprint, and are tested in
schematic parity tests.
2024-02-12 10:55:56 +01:00
Marek Roszko 2afe4db945 Add some missing newlines in cli output without changing strings 2024-02-11 21:12:21 -05:00
Marek Roszko 6a37f99e94 Fix crash if we exit lib table setup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16917
2024-02-11 21:05:23 -05:00
Marek Roszko d694bb5960 Use file name rather than path for erc/drc json and text reports 2024-02-11 20:16:22 -05:00
Jon Evans 622c2f1316 Make sure connectivity is updated in undo/redo
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16945
2024-02-11 20:01:15 -05:00
Marek Roszko e51ddc52b7 Fix crash writing json drc report 2024-02-11 17:36:56 -05:00
Alex b5982f7319 EasyEDA import: force close some line chains. 2024-02-11 23:52:56 +03:00
jean-pierre charras fe1579ebbd BOARD_NETLIST_UPDATER: fix issue when reading net-lists having no FOOTPRINT_FIELD
they can be old net-lists or non Kicad net-lists.
Fixes #16931
https://gitlab.com/kicad/code/kicad/-/issues/16931
2024-02-11 21:03:00 +01:00
Jon Evans e9be95741b Deconflict hotkey for Route from Other End
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16415
2024-02-11 10:58:38 -05:00
Jon Evans ec2cd99405 Guard actions that change project against running in non-standalone mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16942
2024-02-11 09:36:17 -05:00
Roberto Fernandez Bautista 3a6d74a3b3 Allow user to select location to save router event log
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16904

Note: no new strings added
"Unable to write '%s'." is from pagelayout_editor/files.cpp(182)
2024-02-11 13:43:55 +01:00
Alex Shvartzkop 2b295f85f5 Fix corner radius for 0 amplitude meanders. 2024-02-10 08:36:50 +03:00
Alex Shvartzkop ff17a22e31 Internationalize Image Properties dialogs. 2024-02-10 08:34:19 +03:00
Seth Hillbrand cd548e392a Add document type icons
Update Macos script to use doctype icons for icns builds

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14754
2024-02-09 15:55:57 -08:00
Seth Hillbrand f303996f9c Add new icons for tools
Align elements to grid
Cleanup graphics
Cleanup tracks/vias
Drag

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16206

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16205
2024-02-09 15:55:57 -08:00
Seth Hillbrand cabbab9a5f Move pcbnew drag to move specific icon 2024-02-09 15:55:57 -08:00
Alex Shvartzkop fcdd34f58b Reserve strings for Tune Length 2024-02-10 02:44:05 +03:00
Alex Shvartzkop 2121227194 Fix nullptr group assert in tracks cleaner. 2024-02-10 00:44:05 +03:00
Alex Shvartzkop d4e89543de Length-tuning fixes/improvements:
- Ensure correct amplitude values in tuning patterns.
- Support lower amplitudes in DP length tuning
- Ensure correct minimal inner radius in DP length tuning
2024-02-10 00:44:05 +03:00
Lucas Dumont 2933cdf636 Extend NETLIST lifetime for JobExportDrc
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16925
2024-02-09 22:14:36 +01:00
Alex Shvartzkop 453e185613 Increase unconstrained tuning length to 1km. 2024-02-09 19:25:46 +03:00
Jeff Young 63fc89cafd Import graphic items on copper layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16916
2024-02-09 13:56:01 +00:00
Jeff Young 91e15634fc Re-use ERC's delete-exclusions-query dialog for DRC.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16914
2024-02-09 11:21:06 +00:00
Jeff Young 4905c37712 Streamline explodePad undo.
Also fixes a bug where new shapes were added to the view
twice.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16888
2024-02-09 10:08:37 +00:00
Jon Evans 037f349585 Make expand connection work on generated tracks 2024-02-08 19:28:28 -05:00
Jeff Young 53d048921a Fix merge conflicts. 2024-02-09 00:04:43 +00:00
Jon Evans 7929d7cda2 Fix build 2024-02-08 17:33:34 -05:00
Jeff Young ecbe1df7c1 Update target length/skew to std::optional.
Also fixes a bug in the router where the target length would
get trashed if set to maxLongLongInt.  (We'd add the default
tolerance to it sending it negative.)
2024-02-08 18:14:31 +00:00
Jeff Young e62b4f8ff4 Add nullable int and double to property system. 2024-02-08 18:14:31 +00:00
Alex Shvartzkop 876449b83d Set DP skew meanders max length to INT32_MAX instead of 100 mm.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16860
2024-02-08 19:34:17 +03:00
Alex Shvartzkop f4cf23e5cf Length tuning: fix status popup display when unconstrained. 2024-02-08 18:55:42 +03:00
Mike Williams b979f52364 FP Editor: show hidden texts when we should
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16909
2024-02-08 10:28:23 -05:00
arturo182 abb1915114 Missed a checkbox for Select All in Import Settings 2024-02-08 15:01:23 +00:00
Alex Shvartzkop f1caa262a6 Separate actions for single track and differential pair length tuning. 2024-02-08 14:58:28 +00:00
Seth Hillbrand 6e0d97df76 Do not cache invisible text objects
In some cases, extremely long, invisible texts can fill and crash opengl
buffers
2024-02-07 15:26:41 -08:00
Jeff Young bce372c8a3 Don't clear the undo/redo list when we're just trimming it.
We only allow a certain number of commands on the lists
and trim them when they overflow.  PCB_BASE_EDIT_FRAME and
PL_EDITOR_FRAME implemented this correctly; SCH_EDIT_FRAME
and SYMBOL_EDIT_FRAME did not.
2024-02-07 14:52:10 +00:00
Jeff Young 1e6986d2f5 Don't report starved thermals when connected only to isolated islands.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16866
2024-02-07 14:09:03 +00:00
Jeff Young e6929b2184 Tooltip for "Prefer zone connections".
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16587
2024-02-05 19:22:41 +00:00
Jeff Young d30361b425 Increase artificial via preference further.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16880
2024-02-05 19:20:33 +00:00
Jeff Young 1ff36f23b8 Clean up stale TODOs. 2024-02-05 15:49:57 +00:00
Jeff Young da46a96623 Update a few strings based on new string freeze policy. 2024-02-05 15:49:57 +00:00
Ian McInerney 7ea1568802 Fix selection tool behavior in footprint viewer
The footprint viewer isn't an edit frame, so we need to access the
settings through the base frame type instead. Also, double click makes
no sense in the footprint viewer, and just leads to weird results
sometimes.

Fixes Sentry KICAD-7A2
2024-02-05 14:50:17 +00:00
Marek Roszko 835500bf1c Hide the color prop from pcb editor 2024-02-05 01:13:16 -05:00
Marek Roszko 3960c53225 A few tweaks for hidpi 2024-02-05 00:52:11 -05:00
Jeff Young 0370db43ae A footprint does it's own child hit testing.
We only need to add it for groups.
2024-02-04 23:16:43 +00:00
Jeff Young 77c19fa99a Fill in missing zone properties.
Also fixes some bugs with hatch properties being available
on rule areas.
2024-02-04 23:01:31 +00:00
Marek Roszko 5d0abd3b01 Use CallAfter instead of Idle event hack for drc dialog item selection 2024-02-04 12:37:56 -05:00
Jeff Young cab351d249 Don't do a sided-test on a footprint which has no side.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284
2024-02-04 15:18:23 +00:00
Jeff Young 4e0b48a03a ZONE_SETTINGS init belongs in ZONE_SETTINGS's ctor.
(Not in ZONE's ctor.)
2024-02-03 20:17:31 +00:00
Jeff Young 5379a1d863 Nullptr protection. 2024-02-03 20:17:31 +00:00
Ian McInerney 2fc96c1d11 Ensure stackup material returned is correct after list item deletion 2024-02-03 18:06:40 +00:00
Alex 5c86247e21 Fix inactive cells being black in default settings panels on MSW. 2024-02-03 21:00:28 +03:00
Ian McInerney dc6fb73b40 Fix mistake in 7edda82b where any key could delete the material 2024-02-03 17:01:57 +00:00
Ian McInerney 7edda82b2a Hook up delete key in stackup materials list box
Allow the delete key to delete a material from the stackup list, since
otherwise there is no way to delete materials from the list.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16854
2024-02-03 16:39:56 +00:00
Wayne Stambaugh 92c2ddf77a Do not parent dialogs to non top level windows in panels or widgets. 2024-02-03 10:40:28 -05:00
Jeff Young 4d49762714 Remove Export Settings to Other Similar Zones.
The UI for it is clunky (Cancel afterwards doesn't do what
you think it might), the undo code is all hand-rolled (and
possibly buggy?), and we have the Property Inspector now
for this type of stuff.
2024-02-03 13:22:16 +00:00
Jeff Young 0890ac57dd Improve clarity of default zone settings. 2024-02-03 13:22:16 +00:00
Subaru Arai d9737a39bf remove qr footprint generator min pixel size
The minimum pixel width should be left for the user to decide, since it
depends on the manufacturer and layer.
2024-02-03 09:37:29 +00:00
Marek Roszko 239cbb4637 Use Fit to size the layer box after sitting min size
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16862
2024-02-02 23:43:05 -05:00
Mark Roszko b354b24182 Revert "Call Layout after calculating layer combobox size to ensure it takes effect"
This reverts commit cd8eb23c3e
2024-02-03 04:32:36 +00:00
Marek Roszko cd8eb23c3e Call Layout after calculating layer combobox size to ensure it takes effect
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16862
2024-02-02 23:11:48 -05:00
Jeff Young 7cc663ad77 Schematic parity checking for CLI DRC. 2024-02-02 23:05:37 +00:00
Wayne Stambaugh 2b1bf369f2 Do not parent file or directory dialogs to panels.
Parenting dialogs to child windows of top level windows is most likely
not defined behavior.  It's also likely that this behavior varies across
platforms so it' best not to risk doing it.  wxWidgets does not check if
the dialog parent is actually a top level window.  There may be other
places we are doing this with our message dialogs so we should do an
audit.
2024-02-02 09:20:36 -05:00
Alex Shvartzkop 4a1245e85a STEP: export copper plating for vias/pads (25 micrometers).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16694
2024-02-02 00:29:03 +03:00
Jeff Young a485a4815c Clear text before replacing in ImportSettingsFrom.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16851
2024-02-01 17:37:27 +00:00
Alex 285067dad1 Altium PCB: support polygon id 65534 for keepout tracks on board outline.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16849
2024-02-01 12:15:06 +03:00
Ma Han 7c6ee16b22 removed the dots for several strings in the settings dialog
https://gitlab.com/kicad/code/kicad/-/issues/16651
2024-02-01 08:52:57 +00:00
Alex Shvartzkop 1122d80388 Better support for arcs in tuning patterns. 2024-01-31 23:38:05 +03:00
Alex Shvartzkop 7d1888c756 Add parts of arcs to tuning patterns correctly. 2024-01-31 21:45:01 +03:00
Roberto Fernandez Bautista e9fbb36538 SHAPE_LINE_CHAIN: Fix and simplify NextShape() + remove PrevShape()
NextShape() function was too complex (trying to go back and forwards).
We only used PrevShape() in one place, so removed that usage.

Added QA tests
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista 079478f989 EDA_ANGLE: use constexpr for constant angles
Remove all statics in the class and instead use constexpr to
ensure correct ordering
2024-01-31 19:17:46 +03:00
Jeff Young 19560f0281 Fix pad edit mode undo.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16835
2024-01-31 15:45:58 +00:00
Marek Roszko 4b12534dbd Fix property editor for graphic circles 2024-01-30 22:00:09 -05:00
Marek Roszko c8d24b7613 Add missing IPC2581 cli support 2024-01-30 20:42:34 -05:00
Jeff Young 32d589a121 Don't rely on baselines for fetching DRC_RULE items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16816
2024-01-30 13:19:04 +00:00
Jeff Young 5b5c6f0474 Init tuning pattern settings from BOARD_DESIGN_SETTINGS.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16819
2024-01-30 13:19:04 +00:00
Jeff Young 88cc029ad3 Enable meander radius for diff-pairs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16820
2024-01-30 13:19:04 +00:00
Jeff Young d7471d8c2f Remove tooltip of questionable value. 2024-01-29 23:24:49 +00:00
Alex Shvartzkop 3ed196859f STEP export: build a segment from last point for segment case as well.
https://gitlab.com/kicad/code/kicad/-/issues/16807
2024-01-29 19:59:41 +03:00
Seth Hillbrand b12d0dfd67 Fix pad offset removal vs hole offset
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16767
2024-01-29 08:22:23 -08:00
Jeff Young ee5e2e56c0 Naming conventions; no functional changes. 2024-01-29 16:00:06 +00:00
Marek Roszko 5c94e0287b Clean up tuning pattern if undo triggered during drag
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16718
2024-01-28 16:10:59 -05:00
Jeff Young 00aed2aa3e Don't attempt to test for recursion on unsaved file.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16722
2024-01-28 15:37:08 +00:00
Jeff Young 071d8af5d7 Don't include text in footprint preview widget's autozoom.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16794
2024-01-28 14:35:01 +00:00
jean-pierre charras 06d63a2aa0 pcb_io_kicad_sexpr_parser.cpp: init a default board stackup only if no stackup
is defined, and only after the enabled layers are defined.
Fixes #16754
https://gitlab.com/kicad/code/kicad/-/issues/16754
2024-01-28 14:23:50 +01:00
Jeff Young 995c4af51d Deleted items must have their ownership changed to undo/redo. 2024-01-28 11:13:48 +00:00
Jeff Young 9eb8ec7733 Comments and menu-capitalisation. 2024-01-28 11:13:48 +00:00
Jeff Young 27534074ac Fix errors resulting from FP fields being moved from m_drawings to m_fields. 2024-01-28 11:13:48 +00:00
Jeff Young ade987c101 Fix logic errors in undo while drawing rectangles.
Draw 2 rectangles.  Start drawing a third, but don't
complete.  Hit Ctrl-Z instead.  Boom.
2024-01-27 21:18:50 +00:00
Jeff Young eacebe63f1 We do undo on individual footprint children now.
Adding a commit record for the parent means we replace the
parent first on undo and then if a child was added we can't
find it to remove it.
2024-01-27 20:26:50 +00:00
Jeff Young 07cefa7883 More active tracking of undo/redo items. 2024-01-27 20:02:40 +00:00
Jeff Young f7752ce0a1 Cleanup dead code. 2024-01-27 17:45:48 +00:00
jean-pierre charras 715a5ee47b array_creator: fix issues (crashes) in board editor and footprint editor:
- In fp editor, fields cannot be duplicated: each is unique.
duplicating fields created a crash and issues in undo/redo command
- In board editor after creating an array with footprints.
- crash when closing pcbnew
- error when undoing the array creation
The crash was due to call run this_item->RunOnDescendants() on footprints: it
must be run only on a PCB_GROUP.
2024-01-27 17:02:20 +01:00
Jeff Young a8f6329590 Remove stale comment. 2024-01-27 15:52:59 +00:00
Seth Hillbrand 96297b50a1 Remove padstack offset value
We encode the pad locations for the package in the pin, so we don't need
an additional offset from the pin location

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16767
2024-01-26 10:53:36 -08:00
jean-pierre charras 89f8c5d918 PCB_SELECTION_TOOL::selectPoint() Remove items disabled by the selection filter
before using any other filter. This avoid to select an item from the candidate
list that cannot be selected and eliminate another candidate.
Fixes #16755
https://gitlab.com/kicad/code/kicad/-/issues/16755
2024-01-26 19:13:50 +01:00
Jeff Young c5bd62434b Zero out number of non-numberable pads in ImportSettingsFrom().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16769
2024-01-26 14:05:04 +00:00
Jeff Young 053a0aade7 Formatting & commenting. 2024-01-26 14:05:04 +00:00
Jeff Young cc058a7927 Exit pad edit mode before closing footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16766
2024-01-26 13:49:17 +00:00
Jeff Young f4e123f57e !m_isBoardEditor != m_isFootprintEditor.
(There's also python, cli, etc.)
2024-01-26 12:47:01 +00:00
Marek Roszko 465ccaef90 Add missing schematic parity drc test to cli 2024-01-25 22:14:49 -05:00
Marek Roszko a282762686 Fix pcb drc in cli due to awkward !m_isBoardEditor logic with more awkward logic
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16744
2024-01-25 22:09:29 -05:00
Seth Hillbrand 9e9dfb38d1 IPC2581: Correct flipped pad handling
Board footprints have pads already flipped, so we don't need to adjust
layers when outputting

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16659
2024-01-25 13:06:59 -08:00
Jeff Young b3f94ad46a Cleanup before exit.
Possibly KICAD-5TE.
2024-01-25 15:30:25 +00:00
Jon Evans a377fa4201 Add some missing deep comparisions for BOARD_STACKUP 2024-01-25 09:08:27 -05:00
Marek Roszko fec57459f3 Use correct arg types in altium arc import error message
Fixes KICAD-6Q1
2024-01-25 07:50:13 -05:00
Jon Evans 3ef16221fe Make sure default board thickness exists
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16733
2024-01-24 23:09:56 -05:00
Ian McInerney d04b21c6d6 Ensure parameter typeinfo matches the actual object's typeinfo
AppleClang seems to generate different typeinfo for forward declarations
of classes than the actual class object, so the any_cast for the pointer
parameter fails due to the types not matching (even when they look the
same when printed in the error).

Instead, we must always ensure we use the actual object when defining
the parameter type when placing the object into the event.
2024-01-24 16:14:32 +00:00
Jeff Young 65c75072ef Convert between refs and KIIDs in Footprint Properties.
Also fixes DIALOG_TEXT_PROPERTIES, which did it correctly
for multi-line texts, but not for single-line texts.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16721
2024-01-24 13:35:37 +00:00
Jeff Young 89850824d5 Naming & comments. 2024-01-24 13:35:37 +00:00
Jan Wichmann b6ddef7162 pcbnew: Added missing DRC checks for value and library-link between symbol and footprint 2024-01-24 12:35:51 +00:00
Jeff Young 7cf861a239 Use ARC_HIGH_DEF (not ARC_LOW_DEF) for courtyard generation.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16695
2024-01-24 12:00:33 +00:00
Jeff Young 9d88a9f60a Fix typo causing OnItemsChanged() to get called too often.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16657
2024-01-24 11:36:56 +00:00
Jon Evans d50e0811fb Fix QA build 2024-01-23 22:50:53 -05:00
Jon Evans c143be6279 Pads need to be included in collection for length checks
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16724
2024-01-23 22:08:08 -05:00
Alex ed00cb3304 Support arcs in Break Track.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16712
2024-01-24 05:47:50 +03:00
Jon Evans a46d409ec6 Make sure grouping commits follow board editor path 2024-01-23 21:22:23 -05:00
Jon Evans 256364aaa1 Parent property should not be accessible from the UI 2024-01-23 20:41:34 -05:00
Jeff Young ea7176d466 Don't attempt to update start item from a keyboard event. 2024-01-23 23:07:11 +00:00
Jeff Young d47a000564 Make sure group items get added to commit.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16705
2024-01-22 23:34:34 +00:00
Jeff Young 85f0dd279c Push fileFilter callback function down a level.
(The GRID_CELL_PATH_EDITOR is shared by the whole column.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16707

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13959
2024-01-22 18:27:31 +00:00
Jeff Young 236123c487 Allow FPID to be matched against in memberOfFootprint().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16662
2024-01-22 14:03:45 +00:00
Marek Roszko f63c7806fd More bitmap bundle comboboxes 2024-01-21 22:55:13 -05:00
Jeff Young d6b39c672e Footprint editor items always get added to footprint.
Also fixes an unrelated crash when assuming the current
editor is the board editor.
2024-01-21 22:51:36 +00:00
Jeff Young 6fca467e2a Don't query first item of empty vector.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16687
2024-01-21 22:51:36 +00:00
Jeff Young 2627c99654 Fix typos that produce segfaults.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16696
2024-01-21 22:51:36 +00:00
Jeff Young e07a4c285b Remove old hack required for wxWidgets 3.0 on MacOS.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16687
2024-01-21 11:20:34 +00:00
Jeff Young 37c185f437 Remove overly-complex snapping layer for moving objects.
We now have a hotkey to select Active Layer vs All Layers,
which gives the user more control.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16683
2024-01-20 22:04:56 +00:00
Jeff Young 13935399a5 Second part of d854de9d68
This one for symbol <-> footprint.  (Original was for
lib footprint <-> board footprint.)

Also fixes a major bug in DRC where we bail out of parity
checking if DRCE_MISSING_FOOTPRINT is set to ignore (or
overflows).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16671
2024-01-20 18:41:35 +00:00
Jeff Young d854de9d68 Add missing DRC checks for footprint attributes.
Requires string change, but it's a bug, and worse, a DRC
bug.  I did minimize the changes by using a single error
message string that then has the various settings (which
are already translated) put into it.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16671
2024-01-20 17:22:19 +00:00
jean-pierre charras be723dd579 PANEL_PCBNEW_COLOR_SETTINGS: ensure color setting for all DRC markers are in list
Fixes #16674
https://gitlab.com/kicad/code/kicad/-/issues/16674
2024-01-20 12:05:45 +01:00
Ian McInerney b36a67e556 Fix missed IO_MGR rename in Python
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16669
2024-01-19 22:23:04 +00:00
jean-pierre charras 7c3f8cbb79 3D viewer: do not load the current board twice when creating the 3D viewer frame. 2024-01-19 18:42:24 +01:00
Jeff Young 1597882c1f Allow creation of groups with a single member.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16586
2024-01-19 17:32:00 +00:00
Jeff Young c3e3f3bcb8 Possible fix for move individually.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16087
2024-01-19 15:13:41 +00:00
Jeff Young bb74100fe2 Fix typo. 2024-01-18 16:17:46 +00:00
Jeff Young 57315dd625 Make sure group children get added to board.
Also fixes a bug where you could import on to an invisible
layer (we now auto-show the layer if you do that).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16642
2024-01-18 14:02:43 +00:00
Jeff Young 84c6451787 Reduce visual noise in dialog; regularize spacing. 2024-01-18 14:02:43 +00:00
Alex 3eb3fc9d1e Fix PCB arc edit point order. 2024-01-18 13:51:32 +03:00
Marek Roszko 7b24167398 FromDIP symbol and footprint editor aui panes 2024-01-17 23:08:38 -05:00
Marek Roszko f5db4d6864 Remove the invalid default dock directions for search panel
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16636
2024-01-17 22:26:04 -05:00
Marek Roszko 7c8ee26a38 FromDIP the pcb aui sizes 2024-01-17 22:02:05 -05:00
Jeff Young 97cb15dd47 Make sub menus conditional on them having child items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16631
2024-01-18 00:21:15 +00:00
Jeff Young 455fae45d8 Support point editing of inverted rectangles.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16595
2024-01-17 15:27:48 +00:00
Jeff Young df48ebfbe7 Restore preferential selection treatment for silk items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16607
2024-01-17 14:02:43 +00:00
Jeff Young ace4ef7b16 Implement stingy selection mode for tuning patterns. 2024-01-17 00:34:22 +00:00
Jeff Young be6a2d018d Implement stingy selection mode for tuning patterns. 2024-01-17 00:34:22 +00:00
Seth Hillbrand 121271bd0a Allow users to specify no minimum text width in DRC
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16596
2024-01-16 16:24:18 -08:00
Jeff Young 322ad1af45 Implement copy/paste for generators.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16613
2024-01-16 23:38:50 +00:00
Marek Roszko b4bfdf95d3 Explicitly add 48, 128, 256 to icon bundles for each app 2024-01-16 17:21:44 -05:00
Alex Shvartzkop 27b560b439 EAGLE: fix missing undefined layer check for rectangle zones.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16619
2024-01-17 01:18:24 +03:00
levanlap2502 faeec25557 Fix fillet lines, when line angle is 0 or 180
Check angle of line before creating Fillet

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15966
2024-01-16 13:30:21 -08:00
Seth Hillbrand 13544ff975 Avoid crash on step export
Detach the wxProcess from the chain before closing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16608
2024-01-16 13:18:54 -08:00
Marek Roszko 76e8ed2506 Fix sch_field and pcb_target not returning evaluated similarity correctly 2024-01-16 15:43:49 -05:00
Jeff Young 4fb11e210a Copy teardrop settings.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16618
2024-01-16 17:20:54 +00:00
Alex Shvartzkop c8a0a58683 Fix PCB_FILE_T usage in FP_LIB_TABLE_GRID. 2024-01-16 19:35:10 +03:00
Alex Shvartzkop 4f6c25895e Rename UNKNOWN in enums to prevent shadowing. 2024-01-16 19:14:57 +03:00
jean-pierre charras 76bd892f93 Fix not working Duplicate command in FP editor
Fixes #16594
https://gitlab.com/kicad/code/kicad/-/issues/16594
2024-01-16 16:30:55 +01:00
Alex Shvartzkop f99505e190 Fix arc editing bugs when endpoints match.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16532
2024-01-16 16:17:45 +03:00
Alex Shvartzkop 338914c7cf Restore Fix Discontinuities default tolerance; enable it by default.
There's no artifacts anymore due to CalcArcCenter fixes.
2024-01-16 12:13:08 +03:00
Alex Shvartzkop 4fac43d696 Fix variable substitutions in library tables.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16601
2024-01-15 09:53:08 +03:00
Alex Shvartzkop 42d8c85f12 Altium PCB import: Models is optional.
Models directory may not exist in older files.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16512
2024-01-14 11:59:49 +03:00
jean-pierre charras c18bfe0c61 DIALOG_DRC & DIALOG_ERC: re-enable button "Run ERC" and "Run DRC" after running tests.
Fixes #16583
https://gitlab.com/kicad/code/kicad/-/issues/16583
2024-01-12 15:38:25 +01:00
jean-pierre charras 549ef88f70 QFNWizard: ensure thermal vias/pads have the property PAD_PROP::HEATSINK set. 2024-01-11 16:29:41 +01:00
jean-pierre charras 0ac23f9099 FP editor: ensure a newly created pad PTH has a hole.
When a new pad type PTH is created from a SMD pad master , previously its
hole had a null size because the master pad had a null size.
Also allows a HEATSINK pad to be added to a SMD footprint.
2024-01-11 16:27:05 +01:00
Marek Roszko d0236ca751 Make DRC exclusions work in cli & python DRC
The way exclusions work is actually silly, and you can end up with your project file losing them too.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11562
2024-01-10 19:55:44 -05:00
Jeff Young 3836194cc6 Add some missing autocomplete clauses.
We really need to figure out how to auto-generate these....

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16565
2024-01-10 20:16:52 +00:00
Jeff Young 27c253780d Separate out Pad_Shape so auto-complete can work. 2024-01-10 19:22:05 +00:00
Jeff Young e55ec85e19 Remove added items from group on revert.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16562
2024-01-10 17:36:31 +00:00
Jeff Young 9038f80543 Switch button focus to Close after running ERC or DRC.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16541
2024-01-10 17:36:31 +00:00
Jeff Young 435e60d0e5 Knockout different-net dimensions in zone-filler.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16549
2024-01-10 16:42:18 +00:00
Mark Roszko a74c96b287 Fix misspelling of gltf 2024-01-10 16:30:50 +00:00
jean-pierre charras 07d7ccf46f Fix 2 minor compil warnings. 2024-01-10 09:16:14 +01:00
Marek Roszko 08c2237a94 Update the layer names in cli/python board load of the property grid layer enum because DRC quietly uses it
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16555
2024-01-09 20:43:14 -05:00
John Beard 60cba81a2e Altium import: Handle 110-byte subrecord5 in Pad6 parser
This appears to happen in some very old (Protel 3.0.0?)
library files.

The example given in issue #16514 always has 0 in the last 4 bytes.
It's not clear exactly what these bytes do, if anything, so
just skip them and assume the holerotation is 0. If it's not 0,
error out - at that point it might be possible to determine what
the value means.

This appears to correctly import the file provided in the issue.
As the license on that file is unclear, we probably can't just
add it as a unit test and it's rather tricky to special up a
binary file test-case for it.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16514
2024-01-10 00:21:20 +00:00
Marek Roszko f53c3f895d pcb_group.h should live in pcbnew 2024-01-08 22:32:18 -05:00
Marek Roszko 00f3a315d2 Create a default file name for cli 3d export if empty
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16547
2024-01-08 21:40:33 -05:00
Jon Evans 8c7d126ced Fix flipped boolean in teardrop serialization
Also change to explicit bools

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16552
2024-01-08 18:44:09 -05:00
Alex Shvartzkop 4f9fbd230d EasyEDA (JLCEDA) Pro: fix PCB parse error.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16544
2024-01-08 14:38:06 +03:00
Jeff Young 3a781f5dbe Let router draw tuning pattern baselines.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15996
2024-01-07 13:54:40 +00:00
Jeff Young cd83dfa831 Stage/add/delete group members when adding/deleting group.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16540
2024-01-07 13:39:13 +00:00
jean-pierre charras f795e40584 Altium Importer: do not stop import when an item looks bad (happens in old files)
An importer should not stop import when an item just looks strange. Just skip it.
It can happen with old files.
Better do not import one item than import nothing.
2024-01-07 13:10:59 +01:00
Seth Hillbrand d3e1e54b24 Avoid removing segments that do not maintain conns
If the two segments being merged have connection points originally, then
the merged segment must have the same connection points.  We had been
moving the merged segment to match the original connections but this is
not as robust as just not merging these lines (and therefore leaving the
original)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15495
2024-01-05 11:40:30 -08:00
Jeff Young 015a050169 Escape error messages for HTML. 2024-01-05 11:03:36 +00:00
Jeff Young 5aae8e2fd0 Code cleanup. 2024-01-04 16:13:42 +00:00
Jeff Young 91d144c720 Do NOT return false from a visitor unless you want to stop visiting!
This fixes a bug where DRC would bail out early if any of
the colliding objects was a free pad.
2024-01-04 14:35:08 +00:00
Jeff Young aa4107ce2d Code cleanup (and Coverity quieting). 2024-01-04 14:35:08 +00:00
Roberto Fernandez Bautista 9004a5920f CADSTAR PCB: Handle multi-layer figures & fix multi-layer mapping
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16515
2024-01-03 20:57:27 +01:00
Roberto Fernandez Bautista 94cb513c0e CADSTAR PCB: Handle multi-layer library coppers correctly
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16486
2024-01-03 20:18:02 +01:00
Wayne Stambaugh 0e4fe545a4 Fix crash when importing Eagle board file with no "classes" element.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15754
2024-01-03 10:03:52 -05:00
Jeff Young 1e71899611 Thread pad & graphic clearance testing.
This allows us to poll the event loop & update the progress
on a time interval rather than on an items-completed
interval (the later of which can't easily take host machine
performance into account).

Also fixes a bug where we'd bail out of QueryColliding if
we ever found !testClearance && !testShorting && !testHoles.
2024-01-03 13:49:29 +00:00
Jeff Young 8993cd12a6 Thread cache generator.
This allows us to poll the event loop & update the progress
on a time interval rather than on an items-completed
interval (the later of which can't easily take host machine
performance into account).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16506
2024-01-03 12:45:05 +00:00
jean-pierre charras c8c0685ff2 drc/drc_test_provider_library_parity: fix issues when testing graphic items:
- fix tests for zones: they were rotated/moved twice before comparing
- fix tests for some graphics (RECT and POLYGONS): they were not always compared
using the right order.
Fixes #16501
https://gitlab.com/kicad/code/kicad/-/issues/16501
2024-01-03 12:43:24 +01:00
Ian McInerney 4770532511 Ensure footprints are removed from group before exporting to library
Duplicating a footprint automatically adds it to the group the original
is contained in, and these copies should not be part of the board after
their use.

Fixes KICAD-5YC
2024-01-03 00:19:29 +00:00
Jeff Young 0b526cca15 Delete tracks when deleting tuning pattern as part of sel. 2024-01-02 18:00:25 +00:00
Jeff Young a523c58530 Add a m_forceMarkObstaclesMode warning when violating DRC.
Also adds a modifier combination to commit anyway.
2024-01-02 17:02:50 +00:00
jean-pierre charras 5d3c35c5d3 BOARD_NETLIST_UPDATER: fix incorrect warning message:
pad number and footprint reference were swapped.
Fixes #16500
https://gitlab.com/kicad/code/kicad/-/issues/16500
2024-01-02 15:14:53 +01:00
Ian McInerney 9db1dd5ec5 Refresh message panel when router mode changes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16497
2024-01-01 19:25:54 +00:00
Jon Evans b8aef58561 Add proper comparison operators for BOARD_DESIGN_SETTINGS and children
BOARD::operator== was just comparing pointers
2024-01-01 13:37:31 -05:00
Jon Evans 81dbb12054 Don't enable the shove when forcing highlight mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16467
2024-01-01 11:48:30 -05:00
Jeff Young 15a2d65a0c More explicit pad-missing message when net involved.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16489
2024-01-01 10:51:34 +00:00
John Beard 751c88ef20 Use 'uuid' (not 'id') in the s-expr PCB groups/generator format
Add some regression tests to check loading of groups and generators
from various versions of the s-expr PCB format.
2023-12-31 23:09:26 +00:00
Jeff Young 985e590e6f PCB_FIELDs don't belong in the view.
They're handled by their parent FOOTPRINTs.

Also makes sure footprint children get their parents
updated on a swap.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16412
2023-12-31 21:38:11 +00:00
Jeff Young 911a54ac82 Make sure sexpr gets stacked when followed by non-token.
For instance, with "(min 1.27mm)", we need to stack the
"min" token after hitting the space.
2023-12-31 17:22:58 +00:00
Ian McInerney 53e16558a5 Refresh appearance panel when appending board
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16226
2023-12-31 17:08:09 +00:00
Jeff Young 71b9dd1fb4 Update FPWatcher when saving canvas footprint.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16414
2023-12-31 11:26:16 +00:00
Andrea Greco 55429aea6b pcbnew: Show current router mode in status bar 2023-12-31 02:54:59 +00:00
Jeff Young 6c39e67342 Don't leave tools with stale state when reloading fp.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16414
2023-12-30 21:05:06 +00:00
Jeff Young 2e02ca9d14 Make length-tuning rollover layer-specific.
Also don't show target length in diaog when it hasn't been
set.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16379
2023-12-30 20:27:39 +00:00
jean-pierre charras b94c941217 Pcbnew, Fp Editor, pad_tool::PlacePad() avoid recreate from scratch a pad
when the previous is not used.
If a new pad is generated, when moving it by arrow creates a new pad for
each move by the current code.
This is not annoying unless the pad number is edited during move.
So, the pad number is now reinitialized only after the current pad is used,
not during the current move.
Fixes #16409
https://gitlab.com/kicad/code/kicad/-/issues/16409
2023-12-30 20:15:31 +01:00
jean-pierre charras 1ae5bc7c0d DIALOG_BOARD_REANNOTATE_BASE: do not force the size of bitmap windows.
Also do not force the dialog size: wxWidgets sizers should set the right size.
2023-12-30 16:02:31 +01:00
Jeff Young 2e9f0679fc Fix i18n mixup.
Tab names and column names are translated on the fly, but
that means they need _HKI macros to make sure they get into
the translation database.
2023-12-30 11:24:35 +00:00
Jeff Young 0fac52dcad Accept EEschema tokens as well as netlist tokens for pintype.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16169
2023-12-29 16:34:03 +00:00
Ian McInerney f2702b223c Introduce base IO_MGR class and unify RELEASER objects
The IO_RELEASER is a thin-wrapper around a std::unique_ptr, but done
this way to allow easier addition of a custom deleter in the future if
something needs to call back into the IO_MGR.
2023-12-29 00:37:38 +00:00
Jeff Young 5145b146e9 Handle dimensions in search pane.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16459
2023-12-28 21:16:56 +00:00
Marek Roszko 9a890cdba9 Kick the wildcards and file exts into a static class, export it from kicommon 2023-12-27 21:10:01 -05:00
Marek Roszko a36eb2af72 Netclass shouldnt have odd pcb forward decls 2023-12-27 17:12:35 -05:00
Jeff Young e17d81cf6d Re-enter auto-complete on a ctrl-space.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16445
2023-12-27 21:14:27 +00:00
Ian McInerney d7fe668d79 Push PCB_IOs to use the base progress reporter instead of per-function 2023-12-27 17:06:23 +00:00
Ian McInerney 4a67761d29 Push library reading check to IO_BASE 2023-12-27 16:44:45 +00:00
Ian McInerney f8688a922d Unify IO library descriptors 2023-12-27 16:34:59 +00:00
Jeff Young 69c95acc57 Handle arcs in TOPOLOGY::AssembleDiffPair(). 2023-12-27 13:52:02 +00:00
Jeff Young 2ba9e07f0f Add missing DRC auto-complete token. 2023-12-27 13:52:02 +00:00
Jeff Young 49d6439ae0 Formatting. 2023-12-27 13:52:02 +00:00
Alex Shvartzkop e636913178 EasyEDA Std: import dimensions. 2023-12-27 12:48:37 +05:00
Ian McInerney 743e9d669a Push library management into IO_BASE 2023-12-27 01:21:53 +00:00
Ian McInerney cad91312aa Introduce main base class for all IO loaders 2023-12-26 23:27:11 +00:00
Jon Evans 7d25675e2b Fix handling of dimensions in footprint updater
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16448
2023-12-26 14:08:39 -05:00
Alex Shvartzkop 5bbe01b570 EasyEDA Pro: support .elibz format (device libraries) 2023-12-25 07:00:24 +03:00
Jeff Young 6a5adc7646 Record nested footprints for collision checking.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16410
2023-12-24 19:40:21 +00:00
Jeff Young c051e66830 Handle units switch in board stackup.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16361
2023-12-24 16:18:46 +00:00
Jeff Young f887f9b1e5 Save Net Inspector col order, widths, sorting, etc. 2023-12-24 13:11:16 +00:00
jean-pierre charras 408c90d3ae Python stuff: fix an issue to build pcbnew_wrap.cxx (at least on msys2)
- Reorder two include in pcbnew.i
- rename PLUGIN to PCB_IO (missing rename) in footprint.i
2023-12-24 10:41:16 +01:00
Ian McInerney e6632bb983 Rename PCB IO classes/files 2023-12-24 01:22:21 +00:00
Ian McInerney d8b47d18d3 Initial rename of file plugin infrastructure components to IO 2023-12-24 01:22:21 +00:00
Jeff Young 687389224e Do a more complete search for a coupled net.
In particular, don't bail out if the starting seg is part
of a tuning pattern meander or a user-authored non-coupled
segment to get to a via or something).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16380
2023-12-23 23:43:12 +00:00
Jon Evans 4288c8dcaf Avoid repeated selection notifications when importing netlist
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16356
2023-12-23 17:41:23 -05:00
jean-pierre charras 2051ad8123 Fix a DRC issue about thermal reliefs.
They can be not fully counted when a rect pad has the same (or a smaller) size
as the thermal spoke width, due to a bad bounding box used in calculations.
Fixes #16265
https://gitlab.com/kicad/code/kicad/-/issues/16265
2023-12-23 19:50:11 +01:00
Jeff Young 3f73bbcc4f Don't run keepUpright when not rotating.
For that matter, don't do anything at all for a rotation
of 0 (or a move vector of {0,0}).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16402
2023-12-22 21:22:36 +00:00
Jeff Young 8b344b13e5 Reenable m_useAuxOriginCheckBox when appropriate.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16424
2023-12-22 14:22:02 +00:00
Jeff Young 1f627a3a75 Fix two unrelated bugs in ungroup.
1) Don't double-remove the members from the group.
2) Don't auto-recurse BOARD_COMMIT::Stage for non-modify
changes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16419
2023-12-21 22:47:23 +00:00
Jeff Young ee0fff97f9 Cleanup formatting and remove dead code. 2023-12-21 22:06:59 +00:00
Mike Williams 1700cad83b Symbol/Footprint Chooser: remember open libraries
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16383
2023-12-21 09:57:54 -05:00
Jon Evans c1eef79119 Fix off-by-one error in setting depth
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16421
2023-12-21 08:31:47 -05:00
Jeff Young d155870275 Sometimes use grid (instead of clearance) for slop radius.
This is particularly important both when very large grids
are in use, and when the router hasn't been initialized
with a net yet (ie: in hover mode) and the board clearance
is set to 0.

https://forum.kicad.info/t/new-track-start-position-problem-on-kicad-7-0-10-rc1/47006
2023-12-21 12:58:58 +00:00
Jeff Young fc85112a72 Create dummyPattern at centre of pickerItem, not end.
This keeps TOPOLOGY::AssembleDiffPair() from picking an
arc the segment might be connect to.  Since it can't handle
arcs at all, that's bad.
2023-12-20 15:27:29 +00:00
Jon Evans 76d1cc8150 Cleanup 2023-12-19 22:43:15 -05:00
Jon Evans b1695add9e Fix warnings 2023-12-19 22:38:34 -05:00
Jon Evans 1c895fe18c Improve rendering of tuning status popup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16304

Add dedicated UI rendering layers

Switch to screen-space rendering to avoid blurriness

Fix a bug in OpenGL GAL that causes layer
ordering to be broken when using Scale

Fix some issues with VIEW_GROUP layer ordering
2023-12-19 22:38:21 -05:00
Jeff Young 24846d3f44 Repair earlier fix for VVIAs. 2023-12-19 16:48:01 +00:00
Ian McInerney c7592758cc Ensure some variables are initialized to known values 2023-12-19 14:32:31 +00:00
Wayne Stambaugh ffbb7fde74 Improve footprint editor import graphics dialog layout. 2023-12-19 07:39:57 -05:00
Wayne Stambaugh a4b38fbb80 Coverity warning fixes. 2023-12-18 16:09:13 -05:00
Jeff Young c7facfd4d4 remove unused variables 2023-12-18 18:54:47 +00:00
Jeff Young cfa55d958a performance efficiencies 2023-12-18 18:45:02 +00:00
Jeff Young 1c73d3d967 nullptr safety 2023-12-18 18:36:14 +00:00
Jeff Young e4baf877c8 performance efficiencies 2023-12-18 18:36:02 +00:00
Jeff Young 8251fca66a performance efficiencies 2023-12-18 17:39:29 +00:00
Jeff Young 68cbb820a7 performance efficiencies 2023-12-18 17:20:34 +00:00
Mike Williams 3aa20e2008 Create Array: fix mismatched tooltips
Partially addresses https://gitlab.com/kicad/code/kicad/-/issues/16391
2023-12-18 12:02:11 -05:00
Jeff Young 11805d6696 performance efficiencies 2023-12-18 17:01:55 +00:00
Jeff Young 3b36307425 Remove shadowed variable.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16363
2023-12-18 14:24:04 +00:00
Wayne Stambaugh 25c03da5a5 Coding policy and Doxygen comment fixes. 2023-12-18 08:32:41 -05:00
Jeff Young 16c8050f3d Fix event/flag race condition. 2023-12-17 21:55:29 +00:00
Jeff Young 08a00633b1 Make sure child items get edit flags cleared in commit.
In the footprint editor, in particular, we often just
add the parent footprint to the commit rather than the
actual modified item(s).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16389
2023-12-17 21:55:29 +00:00
Wayne Stambaugh eb3fd10af8 Fix obscured object selection issue in board and footprint editors.
This selection improvement feature is hidden behind the advanced
configuration key "PcbSelectionVisibilityRatio".  It is turned off (1.0)
by default.  Value values are from 0.0 to less that 1.0.  From testing,
using a value between 0.1 and 0.3 produces the best results.

This fix uses normal alpha blending described in the link below.  The
current design only uses the alpha of the object's color.  It could be
improved by doing a full color alpha blending but using the color alpha
alone seems to result in satisfactory results.

https://en.wikipedia.org/wiki/Alpha_compositing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16126
2023-12-17 16:43:56 -05:00
Jeff Young 1b0cc82c56 Move a couple of stragglers to BOARD_COMMIT. 2023-12-17 21:01:31 +00:00
Jeff Young a96b7116d0 Make sure de-selected items get redrawn.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16385
2023-12-17 17:59:43 +00:00
Jeff Young b29a56530c Remove undo-of-ungroup hack.
The hack assumed that the parent group would be the first
deleted item of type group in the undo list.  While this
will be true when undoing a user ungroup command, it will
not be when undoing an ungroup side-effect, such as when a
member of a group is deleted during UpdateFromPCB.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16384
2023-12-17 15:35:35 +00:00
Alex Shvartzkop c5ac2337e4 PNS mitering: construct arcs from start, end, angle.
Previously, arc endpoint and expected miter endpoint could differ,
causing very small loops later on.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16360
2023-12-17 05:47:07 +03:00
Alex Shvartzkop 3b26f96fe4 Tuning Patterns: read/write min_amplitude. 2023-12-17 05:32:02 +03:00
Jeff Young 9fb06f95a0 Fix msys2 build. 2023-12-16 16:17:24 +00:00
Jeff Young 66a15f6acf Re-factor frame pointer out of generator API. 2023-12-16 16:11:45 +00:00
Jeff Young ea3c87f243 Move group/ungroup to COMMIT infrastructure. 2023-12-16 14:17:25 +00:00
Jeff Young 1df84f4d92 Move some PCB_GENERATOR special-cases to propMgr listeners. 2023-12-15 21:04:33 +00:00
Jeff Young 0ab474e596 Comments. 2023-12-15 18:02:52 +00:00
Jeff Young 4844cffc00 Make sure PCB_GENERATOR's lock status follows their members.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16372
2023-12-15 17:37:36 +00:00
John Beard 9b2cde9571 Use FormatBool for PCB_GENERATOR serialisation 2023-12-14 21:22:59 +00:00
John Beard e41f5efb03 Use modern bool style for footprint locking (locked yes)
Add some simple tests for specific footprint load/save checks
(including round-trip stability)
2023-12-14 21:22:59 +00:00
John Beard 481fa1f959 Allow PCB reference image locking and UUID to be saved
Add some unit tests for reference image saving/loading.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16334
2023-12-14 21:22:59 +00:00
John Beard f3f16a1e23 Update format version for reference images and footprint format changes 2023-12-14 21:22:59 +00:00
Jeff Young a0274a8463 Last fix was too aggressive.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16362
2023-12-14 18:27:33 +00:00
Jeff Young ec7e3c5bd6 Handle nets in recoverBaseline().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16360
2023-12-14 15:35:09 +00:00
Wayne Stambaugh 8687d5092f String and dialog layout fixes. 2023-12-13 11:49:34 -05:00
Jeff Young 1fa6b7b5d6 Initialize pre-defined sizes even when using netclass values.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16351
2023-12-13 14:14:58 +00:00
Jeff Young b9daa073d4 Work around wxWidgets CHAR_HOOK issue. 2023-12-13 13:16:51 +00:00
Wayne Stambaugh 9d6e9b14eb Fix action tool friendly name string capitalization. 2023-12-13 08:15:19 -05:00
jean-pierre charras 427de4cda6 BOARD::GetBoardPolygonOutlines(): add option to add NPTH as board holes.
Used in 3D viewer to truncate plated holes intersecting NPTH.
Fixes #16325
https://gitlab.com/kicad/code/kicad/-/issues/16325
2023-12-13 08:31:29 +01:00
Mike Williams 96e229de0a kicad-cli: only plot user selected copper layers
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15634
2023-12-12 11:00:49 -05:00
Jeff Young de070a1d62 Watch out for VVIAs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16339
2023-12-12 15:45:13 +00:00
Jeff Young e000acb768 Make sure router honours unconstrained tuning setting. 2023-12-12 13:57:12 +00:00
Jeff Young ea67430c49 Cleanup. 2023-12-12 13:57:12 +00:00
Ian McInerney 3c0566d318 Don't allow copying markers
Fixes KICAD-5FQ
2023-12-11 22:22:19 +00:00
Jon Evans 873023f0c4 Yet another workaround for libgit2 API changes 2023-12-11 16:21:18 -05:00
Wayne Stambaugh 5fa274ead0 Add board layer view stack up sequence from front layer to back layer.
The old bottom to top layer stack up sequence from back to front layer was
only used for plotting so it was renamed appropriately.  This will be used
for future board object select disambiguation improvements.
2023-12-11 15:07:58 -05:00
Jeff Young e801e793dc Prevent copy-elision issues by using smart-pointer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16335
2023-12-11 16:27:31 +00:00
Jeff Young abd2cf25f2 Re-display hidden router items after cancelling.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16308
2023-12-11 16:02:02 +00:00
Jeff Young c9b5e3b012 Don't leave undo items in a hidden state. 2023-12-11 15:12:41 +00:00
Jeff Young 453d0566ff Support properties dialog during tuning. 2023-12-11 15:12:41 +00:00
Mike Williams 61da4fb1af PCB Fields: operate on field copies in dialogs
Makes cancel/undo work properly
2023-12-11 09:37:23 -05:00
Ian McInerney 7554e629a8 Fix visibility of NET_INFO::SetParent
Without explictly inheriting the base SetParent method, the compiler was
warning a lot about hiding it due to the different argument type of the
new SetParent method.
2023-12-11 10:07:28 +00:00
Jon Evans 8a474879c5 Make sure DRC engine works at startup
If we wait to initialize this until later, some
routing operations will not work properly as the
constraints will be empty
2023-12-10 23:00:19 -05:00
Jon Evans 47ab6f8d03 Set default netclass for newly-added no-net PNS items
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16144
2023-12-10 22:59:36 -05:00
Jeff Young d8d71a8a6e Honour "report all errors" for track/edge collisions.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16268
2023-12-10 23:04:57 +00:00
Jeff Young a567a66d35 Fix tooltip.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16330
2023-12-10 18:53:13 +00:00
Jeff Young 3efc191aa9 Implement ESC processing for choose footprint dialog.
Also steals copy processing for details pane from symbol chooser.
2023-12-10 18:13:42 +00:00
jean-pierre charras 057baf306f Pcbnew: draw shadow PCB_SHAPEs for locked items using continuous lines.
Using other shapes gives really strange and ugly results.
Fixes #16327
https://gitlab.com/kicad/code/kicad/-/issues/16327
2023-12-10 15:36:33 +01:00
Jeff Young 931cec862e Non-plated slots are effectively edges.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16267
2023-12-09 21:06:40 +00:00
Alex Shvartzkop a161829f86 Use SCOPED_FLAGS_CLEANER more carefully.
Other methods used ConvertOutlineToPolygon's SKIP_STRUCT state.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16321
2023-12-09 19:24:51 +03:00
Seth Hillbrand 0db362a907 Fix bug where default courtyard outline set to 0
The defaults are stored in mm, this needs to be converted to IU for
proper use in pcbnew
2023-12-08 13:31:13 -08:00
Jeff Young e3c9cf94b7 Reduce the size of the tuning popups.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16304
2023-12-08 19:50:29 +00:00
Wayne Stambaugh b7dc7e90ac Minor string fixes. 2023-12-08 13:09:16 -05:00
Jeff Young 4d28dfacc2 Remove query dialog from tuning tool startup.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16305
2023-12-08 17:01:14 +00:00
Jeff Young e0a34efcb7 Use a more self-documenting API for router preview item flags.
Also fixes a bug where rule areas were drawn with solid fills.
2023-12-08 16:02:15 +00:00
jean-pierre charras ccb935db4a dialogs setup default: use a better dialog to show errors. 2023-12-07 17:04:33 +01:00
Jon Evans 0c1fba8686 IPC-2581: Do not render hidden text 2023-12-07 09:46:39 -05:00
Jon Evans 8b45579ed0 IPC-2581: Make sure components are deduplicated
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16287
2023-12-07 09:32:08 -05:00
Jeff Young d257dc5b4e Cleanup unused variables. 2023-12-07 13:41:24 +00:00
Jeff Young aa046345eb Add missing case to Selectable().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16283
2023-12-07 13:41:24 +00:00
Ian McInerney be9c3b08b5 Fix library table file filters
The schematic librayr table was missing the Kicad Sexpr filter, and also
the filter inside the grid editor was never updated when the library
plugin type was changed in the grid, so a library of the new type could
not be selected.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16278
2023-12-07 11:16:02 +00:00
Jon Evans 855486f849 IPC-2581: Do not create an empty Bom node 2023-12-06 17:16:15 -05:00
Jon Evans 9fcff5e701 IPC-2581: BomHeader assembly needs to be genStringified 2023-12-06 17:02:50 -05:00
Jon Evans 2674a2a294 IPC-2581: Make sure non-physical layers aren't exported 2023-12-06 16:57:52 -05:00
jean-pierre charras 921291c28b Pcbnew, default values for sizes and thickness: add missing tests for validation.
Especially for texts, the min and max values that are used are the same as
for other dialogs.
2023-12-06 16:45:18 +01:00
Mike Williams 2795fa9ca3 EE/PCB_Actions: convert to generic Finish
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16079
2023-12-06 10:33:17 -05:00
Jeff Young 2661e7a8ee Fix over-zealous copy/paste and add a few more comments. 2023-12-06 13:08:22 +00:00
Alex Shvartzkop b7840f4f82 Make STEP export process crash more visible. 2023-12-06 08:46:26 +03:00
Alex Shvartzkop 9345b73af5 Don't crash when OCC fails to read a model and didn't open the doc. 2023-12-06 03:16:46 +03:00
Alex Shvartzkop eb1fbadc12 Fix/reserve strings in STEP export dialog. 2023-12-05 13:55:26 +03:00
Seth Hillbrand fcc6dec0e4 Handle bezier curves in 2581 better
Rather than keeping the cached, we should calculate the level we want
and output that
2023-12-04 16:55:43 -08:00
Seth Hillbrand bd4278140f Allow graphical fill to be read as boolean
We had been allowing yes/solid/none with yes/solid both representing
true and none representing false.  This adds the complimentary boolean

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16262
2023-12-04 13:47:31 -08:00
Seth Hillbrand 06c3879007 Don't put polygons in shared bins
Some viewers don't want to render polygons as part of UserSpecial, so
keep them in their own set even though they have absolute coordinates
2023-12-04 13:45:33 -08:00
Seth Hillbrand 0e37ea0c66 2581 enabled by default 2023-12-04 12:03:15 -08:00
jean-pierre charras b17ca50472 Gerber export: fix incorrect shape of round rect pads on paste layers in some cases.
They can be plotted as rect shape depending on margin value.
Fixes #16257
https://gitlab.com/kicad/code/kicad/-/issues/16257
2023-12-04 12:46:39 +01:00
Alex Shvartzkop 12f529d6e0 Fix build error. 2023-12-04 10:44:37 +03:00
Alex Shvartzkop 111a8d6ab3 Improve/fix Expand connection for graphics. 2023-12-04 09:52:31 +03:00
Jeff Young a1b514bcba Update message panel after switching layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16247
2023-12-03 17:07:08 +00:00
Jeff Young ff9d834e31 Don't use epsilon when calculating pushout force in dp placer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16210
2023-12-03 16:58:41 +00:00
Jeff Young 04246a969c Show tuning status while tuning. 2023-12-03 14:23:57 +00:00
Jeff Young 33b602eb44 Use popup look & feel for on-canvas tuning status.
We previously used the ruler look & feel because it leveraged
pre-existing code.

But it's too hard to read over a busy background.  Maybe the ruler
should move to popup look & feel as well?
2023-12-03 13:21:01 +00:00
Jon Evans 4268ffec77 Use default, not legacy, copper edge clearance as default
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16032
2023-12-02 23:25:06 -05:00
Jeff Young a817eaa67f Remove column auto-sizing and save user column widths.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16166
2023-12-02 22:06:09 +00:00
Jeff Young 1618beba2c Fill empty zones when auto-fill is on.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16234
2023-12-02 20:16:26 +00:00
Jeff Young 6e245d5eb4 Remove special cases for footprint editor. BOARD_COMMIT handles them.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16236
2023-12-02 20:06:57 +00:00
Jeff Young b13590f4c0 Use preview items instead of highlightNets & status popup
The router preview item can be specific to the part that is being
tuned, rather than the whole net.  It's also less visually noisy as
it doesn't dim/undim the rest of the board.

Using kigfx preview items for the status keeps us from having a bunch
of focus issues with the status popup window.
2023-12-02 16:15:43 +00:00
Seth Hillbrand 6b3ac54a41 Add default parameter to GetEffectivePolygon()
Allows legacy plugins to use this function
2023-12-01 09:27:26 -08:00
Alex Shvartzkop 2d9eee93e2 Fixes for length tuning patterns.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16198
2023-12-01 08:44:10 +03:00
Jon Evans 1ff3b5a437 Guard against UNDEFINED_LAYER in GetLayerSet
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16230
2023-11-30 17:08:48 -05:00
Seth Hillbrand 12d787ecc0 Name pins after numbers in IPC2581
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16211
2023-11-30 10:08:03 -08:00
jean-pierre charras 1bac16459a pcb_parser.cpp: fix parsing issues with T_bolt and T_italic. these keywords
can have a second key (yes or no) or no othe key (i.e. defualt = yes)
2023-11-30 08:58:23 +01:00
Jon Evans 98df3860f5 Fix build on GCC 11 2023-11-29 21:29:48 -05:00
Seth Hillbrand ff9c4c56fa Clean 2581 output
Remove negative floating point outputs
Disambiguate reference ids between dictionaries

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16211
2023-11-29 17:32:23 -08:00
Alex Shvartzkop c5a6409c35 Fix a crash when opening PCB. 2023-11-29 22:50:52 +03:00
Jeff Young a5454cd7c2 Remove group from view when ungrouping.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16197
2023-11-29 18:21:18 +00:00
Jon Evans 19cfc18cf8 Quote base64 data in PCB 2023-11-29 16:17:41 +00:00
Jon Evans ae13a46ace Fix display of footprint parse errors at load 2023-11-29 16:17:41 +00:00
Jon Evans 4ff127b452 Parse generator_version and improve error output on mismatch
Also bump symbol format version for generator_version
2023-11-29 16:17:41 +00:00
Marek Roszko d1ecf3790c Add generator version 2023-11-29 16:17:41 +00:00
Jon Evans f1f8981395 Automatic whitespace and indentation prettification for sexpr formats 2023-11-29 16:17:41 +00:00
Jon Evans 55ba667bcb Retire tstamp keyword in favor of uuid 2023-11-29 16:17:41 +00:00
Jon Evans 55bca5e7ac Normalize formatting of booleans in the PCB file format 2023-11-29 16:17:41 +00:00
Jeff Young 2545999b3d Delete shapes re-combined into a pad.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16193
2023-11-29 16:15:31 +00:00
Mike Williams f993e45325 Variables: make consistent across editors
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16180
2023-11-29 09:55:17 -05:00
Ian McInerney 188b9f4dd5 Fix append board dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16214
2023-11-29 14:01:13 +00:00
Graham Keeth 4f36f669dc Use Title Case for property names 2023-11-29 01:23:35 +00:00
Alex Shvartzkop f84bab00b4 Fix build; renaming. 2023-11-28 22:18:37 +03:00
Alex Shvartzkop 7eb98a9863 Fixes for tuning patterns and router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16160
2023-11-28 20:55:39 +03:00
Seth Hillbrand 619c9bb0e4 Don't include hidden layers when selecting tuning
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16188
2023-11-28 09:41:09 -08:00
Seth Hillbrand e1b428609d Rewrite followTrivialPath as iterative
Remove the recursion that causes stack crash and add an
additional check for if we have already seen either the
current link or the last link before adding them to the line

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16185
2023-11-28 06:57:50 -08:00
Jeff Young 86edba9eb8 Make teardrop images international, and unify terminology.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16154
2023-11-28 13:56:41 +00:00
Seth Hillbrand 1a2f2d418c Basic handling for slotted holes in IPC2581 2023-11-27 11:57:31 -08:00
Seth Hillbrand 5e9b56b431 Don't set the dirty flag when saving 2023-11-27 11:57:31 -08:00
Seth Hillbrand f64349b292 Coverity fixes 2023-11-27 11:57:31 -08:00
jean-pierre charras f6bbf49800 Pcbnew, Excellon export: remove an useless line at end of file 2023-11-27 14:08:21 +01:00
jean-pierre charras 15c7f224b3 Protect against null pointer
Fixes #16172
https://gitlab.com/kicad/code/kicad/-/issues/16172
2023-11-27 09:52:18 +01:00
Seth Hillbrand 4fe755854f Remove GCC extension syntax 2023-11-26 16:46:56 -08:00
Seth Hillbrand 75c6b0ab28 Added IPC2581 support
IPC2581 is a modern production file exchange system.  It provides
single-file data output for an entire board including BOM and netlist
information.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1954
2023-11-26 15:30:58 -08:00
Jeff Young aa3b4ee6d6 Make another attempt to fix compile button size.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16167
2023-11-26 18:24:34 +00:00
Jeff Young efaa131bc4 Position dummy tuning pattern before trying to get length out of it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16165
2023-11-26 18:18:49 +00:00
jean-pierre charras aa760406ba Fix old python examples and a compatibility issue in pcb_shape.i.
Fixes #16158
https://gitlab.com/kicad/code/kicad/-/issues/16158
2023-11-26 13:44:31 +01:00
Graham Keeth 5e01ddb18a Delete deprecated expression funcs from DRC rules 2023-11-26 00:30:55 +00:00
Graham Keeth 1fbdbabd08 add getField() and memberOfSheet() to DRC syntax help 2023-11-26 00:30:55 +00:00
Graham Keeth 4e796206f9 fix DRC syntax help example clearance-to-1mm-slot 2023-11-26 00:30:55 +00:00
Graham Keeth 136bc1dbb4 Adjust spacing between example DRC rules 2023-11-26 00:30:55 +00:00
Graham Keeth 13a2c6b017 Hide some irrelevant properties from DRC rule editor
- Fill_Color
- Line_Color
- Thermal_Spoke_Template
- Number_Box
2023-11-26 00:29:16 +00:00
Jon Evans 2b27337778 Clamp ratio properties
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16153
2023-11-25 18:40:14 -05:00
Alex Shvartzkop c307e284e0 Altium PCB: fixup GetRemainingSubrecordBytes usage. 2023-11-26 00:30:22 +03:00
Alex Shvartzkop a8795711a0 Altium PCB: import hatched polygon pour fills. 2023-11-26 00:23:37 +03:00
Jon Evans 37d9b7fac0 Prevent crash if generator exists but has no items
See https://gitlab.com/kicad/code/kicad/-/issues/15366
2023-11-25 16:01:12 -05:00
Jon Evans 1cb1fd3516 Partial revert "Fix commit/view handling when dragging arcs"
Revert unintended formatting changes

This reverts commit f0988c3c5d.
2023-11-25 15:16:57 -05:00
Jon Evans f0988c3c5d Fix commit/view handling when dragging arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16145
2023-11-25 14:55:47 -05:00
Jeff Young df83e24eb7 Cleanup.
It's been a long time since line style was specific to plotting.
2023-11-25 13:12:45 +00:00
jean-pierre charras d4ce2c8982 Fix a few Coverity warnings. 2023-11-25 11:44:01 +01:00
Jeff Young 2a198e22e2 Draw tuning pattern border when placing. 2023-11-23 23:25:49 +00:00
Jeff Young b6501ce632 Report current length on roll-over. 2023-11-23 23:25:49 +00:00
Ian McInerney 1194a91be4 Prompt if overwriting the net inspector CSV report 2023-11-23 11:49:40 +00:00
Ian McInerney 0508a9ce83 Don't write units to every field in net inspector CSV
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16147
2023-11-23 11:46:24 +00:00
Jeff Young d437d872ab Re-enable corner radius of DP meanders.
It appears whatever bugs it had have been addressed.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15257
2023-11-22 19:45:56 +00:00
Jeff Young 85f760fc66 Run IsElementVisible() test on all markers, not just their shadows.
The view item doesn't always get its layers updated early enough for
the paint.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16138
2023-11-22 14:37:45 +00:00
Yang Hongbo f324b1b88d Merge remote-tracking branch 'origin/master' into last_net_inspector_settings 2023-11-22 07:21:03 +08:00
Yang Hongbo 5a1b30ea42 save and restore last used net inspector settings 2023-11-22 07:13:08 +08:00
Alex Shvartzkop 5de55b8c4a STEP export: fix a Bnd_BoundSortBox usage bug. 2023-11-21 14:21:12 +03:00
Alex Shvartzkop 58b9d68084 STEP export: make use of footprint names instead of "SOLID".
Should help when importing into software that does deduplication
based on label names (e.g. SolidWorks).
2023-11-21 14:11:16 +03:00
Alex Shvartzkop f3fdfa73e6 STEP export: Do not set BRepBuilderAPI precision.
This caused issues when loading some STEP models.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15485
2023-11-21 00:47:38 +03:00
Jon Evans 87ba1f7ea0 Fix expand selection for graphic shapes on graphic layers 2023-11-20 16:14:56 -05:00
Jeff Young d382a11c2a Apply new on-canvas-item marking to footprint editor tree. 2023-11-20 19:46:03 +00:00
jean-pierre charras ed1924b975 Pcbnew, place menu: some enhancements:
- move place dimensions to a sub menu (they are not frequently used, and it
reduce the size of the place menu
- add reset drill origin, similar to reset grid origin.
2023-11-20 13:23:16 +01:00
snhobbs 5cf244dd90 Added a ImportSpecctraSession overload that doesn't require a PCB_EDIT_FRAME 2023-11-20 03:06:27 +00:00
Alex Shvartzkop 8dfad68d69 ADDED: option to optimize exported STEP files (disable pcurves) 2023-11-19 15:23:17 +03:00
Alex Shvartzkop 1321c8c6af STEP export: fix an issue when cutting circular holes in zones. 2023-11-19 14:04:31 +03:00
jean-pierre charras 7fd9226bec Fix issue in CalcArcCenter( VECTOR2D& aStart, VECTOR2D& aMid, VECTOR2D& aEnd )
It happens when the segment (aStart, aMid) is horizontal
Probably also when the segment (aEnd, aMid) is horizontal
Slopes with value 0.0 are set to double:: epsilon(), but it was a too small values
generating broken calculations.
Now set to 1e-10 (it seems working).
Fixes #16089
https://gitlab.com/kicad/code/kicad/-/issues/16089
2023-11-18 20:08:26 +01:00
Wayne Stambaugh 930b695b9f Board editor array dialog fixes. 2023-11-18 13:21:13 -05:00
Wayne Stambaugh 9e1caa0d39 Fix crash when creating an array of footprint fields in board editor.
Attempting to create an array of footprint child objects other than a pad
causes the crash due to the fact that only pads where checked.  The change
now checks if any object has a footprint as a parent.  This should prevent
any future issues when new footprint child objects are added.

There was also another subtle bug fixed when more than one child object of
a footprint were selected, the array feature would make as many copies of
the footprint as selected child items.

https://gitlab.com/kicad/code/kicad/-/issues/16088
2023-11-18 11:18:18 -05:00
Jeff Young 21d53d0b86 Make sure Use-Netclasses checkbox gets set when loading dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16110
2023-11-18 12:18:45 +00:00
Wayne Stambaugh a5c34c50d7 Use natural sorting for net inspector when sorting by net name.
wxString sorting doesn't work when sorting strings with numbers which
results in 1,10,11...2 instead of 1,2,...9,10,11.

https://gitlab.com/kicad/code/kicad/-/issues/16100
2023-11-17 15:25:07 -05:00
Jeff Young a4a946ab75 Clearer naming. 2023-11-17 18:36:33 +00:00
Jeff Young 78c46e5f4e Improved clarity and comments. 2023-11-17 18:36:33 +00:00
Alex Shvartzkop 76352234e5 ADDED: Support Altium .IntLib (Integrated Library) in fp/sym library tables. 2023-11-17 07:20:18 +03:00
Jon Evans 6cb046a4eb macOS: add a few more known file types
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14206
2023-11-16 12:11:42 -05:00
jean-pierre charras ed9dd55fde DRAWING_TOOL::PlaceImportedGraphics() do not add twice items when adding to new group. 2023-11-16 12:53:00 +01:00
jean-pierre charras 83ee2ffdab Pcbnew, dialog import graphics: add tool-tips and minor cosmetic enhancements. 2023-11-16 12:50:45 +01:00
Jeff Young b218617469 Honour bounding-hull setting on closed shapes and chained segments.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16092
2023-11-16 09:07:54 +00:00
jean-pierre charras a663dd7ec4 Pcbnew, import graphics: fixes and enhancements:
- fix regression: allow grouping or not imported items
- store more settings in Pcbnew settings: all options are now stored.
- default tolerance to connect items is now 0.01 mm. 1 mm is a too big value,
and can create serious artifacts in imported outlines.
2023-11-15 20:26:05 +01:00
Jeff Young 9bb6b11c1d Separate fields from text items in FPEdit's Defaults panel.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15135
2023-11-15 10:56:14 +00:00
Jan Wichmann b1a044e22a pcbnew: ADDED new feature "Center on FP" in the dialog "Edit Text and Graphic Properties" 2023-11-14 16:35:01 +00:00
Jeff Young ca8cb5a206 Fix typo.
We want recursion into descendants here.  Alternatively we could
change the caller to RunOnDescendents(), but it seemed cleaner to
omit the scoping of the Stage() call....

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16077
2023-11-14 14:23:23 +00:00
jean-pierre charras e3bbe32793 drc_test_provider_library_parity: Better algo to compare footprint graphics
Instead of changing the footprint in test to have a non flipped, non rotated
fp, change the footprint template from library to have the same transform.
It reduce problems like rounding and graphic shape convert for rectangles.
Fixes #16075
https://gitlab.com/kicad/code/kicad/-/issues/16075
2023-11-13 18:38:30 +01:00
jean-pierre charras f6314e6401 FOOTPRINT::cmp_drawings(): fix a incorrect sort criteria for polygons:
for polygons, GetStart() and GetEnd() have no meaning and cannotbe used
for sorting.
2023-11-13 18:36:00 +01:00
jean-pierre charras d5a5d25623 rework on commit b564d0713c50e50282a0545ee23bb3ec51906cfd: better fix 2023-11-13 11:16:21 +01:00
Ian McInerney e5f688e865 Plot footprint edgecuts in PDF drill map file
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15247
2023-11-12 23:21:46 +00:00
Zhuang Jiezhi 9b8fa85b32 feat:Add python API GetKicadCurrentLanguage 2023-11-12 22:52:54 +00:00
jean-pierre charras b564d0713c DRC: fix one of some things that can create false positive.
in bool shapeNeedsUpdate(), if a shape is a rectangle and the other is a polygon,
we need to try to convert the polygon to a rectangle for comparison, because some
transforms ( and especially PCB_SHAPE::Normalize() ) can convert a polygon to a rectangle
So a poly and a rectangle can be in fact the same shape

Partial fix of bug 16075.
2023-11-12 20:19:09 +01:00
Alex Shvartzkop 05e954ad5d Fixes for length tuning patterns. 2023-11-12 12:17:08 +03:00
Alex Shvartzkop 78c7dc85f0 Fix moving tuning patterns, disable rotation. 2023-11-12 02:24:35 +03:00
jean-pierre charras 0904231000 Partial revert of commit d8498b62e0, due to
comments in PCB_TEXTBOX::TransformShapeToPolygon()
2023-11-11 17:01:01 +01:00
jean-pierre charras d8498b62e0 PCB_TEXTBOX::TransformShapeToPolygon(): fix incorrect transform: when it
is a polygon (rotated rect by a non cardinal angle) the polygon is not
filled, so the shape is just a set of thick segments.
Fixes #16072
https://gitlab.com/kicad/code/kicad/-/issues/16072
2023-11-11 16:44:04 +01:00
Jeff Young 7e46e85c7d Update copyrights. 2023-11-11 15:29:34 +00:00
jean-pierre charras 75e0bf0cba Python fp wizards: Add a text ("${REFERENCE}") on fab layer to a few wizards. 2023-11-11 11:19:21 +01:00
Jeff Young 3e58425671 Flip rotation angle when board view is flipped.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15954
2023-11-10 22:30:06 +00:00
Jeff Young 9ef05fb762 Don't store document values in global PROPERTY_MANAGER.
At best it leads to the wrong units being used if they're different
between (for instance) PCB Editor and Footprint Editor.  (And this
will only get worse if we ever to to a single binary.)

At worst it causes crashes when accessing freed ORIGIN_TRANSFORMS.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16062
2023-11-10 18:37:29 +00:00
Jeff Young d41f4ec842 Only disable unflashed layers when they're conditionally flashed.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16061
2023-11-10 13:57:56 +00:00
Jeff Young e6081cf31a Use position of isolotaed spoke when reporting it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16058
2023-11-10 12:49:19 +00:00
jean-pierre charras 2f594e441b Fix a compil warning (shadowed variable). 2023-11-10 10:31:40 +01:00
Jeff Young 6ecfc89a4a Honour originTransforms in search panels.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15031
2023-11-09 18:41:18 +00:00
Alex Shvartzkop 7589de6120 Optimize footprint/symbol library hover previews. 2023-11-09 19:02:10 +03:00
Jeff Young cc721c4907 Improve encapsulation of group internals.
(It's still leaking into BOARD_COMMIT and some other places, but at
least it no longer leaks into all the edit tools.)

Also fixes some bugs when moving/copying/pasting multiple selections
containing length-tuning patterns.
2023-11-09 14:05:35 +00:00
Jeff Young 78e00ade7a Clearer naming. 2023-11-09 14:05:35 +00:00
Ian McInerney dd933b7d0e Update CERN copyrights 2023-11-08 21:34:14 +00:00
Jeff Young a003515ee7 Enable drill/place file origin for plotting PDF.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15834
2023-11-08 16:40:28 +00:00
Jeff Young 72c985bc07 Rewrite scoring algo again. (Third time's the charm?)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16042
2023-11-08 12:33:09 +00:00
Alex Shvartzkop 7abe2e3ea0 Restore clearance cache usage in PNS::NODE::NearestObstacle.
This (and the other commit) restores router performance to pre-7.0.3 levels.

(cherry-picked from commit 5e93814283)
2023-11-07 23:25:53 +03:00
Seneral 55c44966d9 Added a temporary item cache to improve router performance
Some items only used within algorithms were never cached
Because they are hard to manually clean up
But caching them does help the algorithms a lot
So this solution is the best I can think of

(cherry picked from commit d29c07a663)
2023-11-07 23:23:52 +03:00
Jeff Young 6d43ef5678 Don't specify sizes when we don't need to.
However, in some places we *do* have to because otherwise wxWidgets
will pick a minimum size for us (and it's rather large).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16039
2023-11-07 14:53:41 +00:00