53 Commits

Author SHA1 Message Date
Jon Evans 24778647ab API: fix netclass filtering for multiple membership
Fixes https://gitlab.com/kicad/code/kicad/-/work_items/23435
2026-03-15 09:19:52 -04:00
Jon Evans f07f1083ac API: Add support for retrieving user names for all layers
(cherry picked from commit 3514d130cb)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2026-03-01 22:25:39 -05:00
Seth Hillbrand 6c9c75eb07 Remove property.h and property_mgr.h from inspectable.h
This breaks the view_item.h -> inspectable.h -> property.h chain that
pulled wx/propgrid/property.h into 150-200 TUs. The lean inspectable.h
now includes only wx/any.h, wx/string.h, wx/variant.h.

Headers using DECLARE_ENUM_TO_WXANY (board_item.h, sch_item.h) retain
their property.h include since the macro requires it.
2026-02-13 19:54:46 -08:00
Seth Hillbrand c52ab91c84 Reduce compile times by extracting headers
Break the most expensive header include chains that contaminate the
largest number of translation units

New lightweight headers for extractdded types:
font_metrics.h, mouse_drag_action.h, board_project_settings_params.h,
common_settings_internals.h, wx_infobar_message_type.h,
zone_layer_properties_grid.h
2026-02-13 17:10:45 -08:00
Lenny Khazan 6f3aa92ae0 Preserve group membership when updating footprints via IPC API 2026-01-05 21:56:57 -05:00
Mark Roszko cd8aaa02ee Fix build due to 311ee1b045 2025-11-22 12:49:31 -05:00
Jon Evans 311ee1b045 API: Ensure new footprints have unique child UUIDs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21340


(cherry picked from commit 5818b52a38)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2025-11-22 11:28:57 -05:00
Seth Hillbrand e005e75333 ADDED: API for injecting arbitrary DRC errors/warn
Allows external tools to calculate/represent specialized DRC errors on
the board

Fixes https://gitlab.com/kicad/code/kicad/issues/21727
2025-10-14 11:55:36 -07:00
Jeff Young 507b22bbaf Fill in more missing barcode code. 2025-10-02 21:52:43 +01:00
Jon Evans dabd8cdab8 API: Add ability to set enabled board layers and copper layer count
(cherry picked from commit ca0207016e)
2025-09-22 22:03:06 -04:00
Jeff Young 044ac6e8e5 Prefer board's errorMax to a constant. 2025-06-27 22:59:12 -06:00
Jon Evans 0997205ffb Minor code style fixes 2025-06-25 21:25:45 -04:00
Seegong 66d8a133e2 Implement PCB_GROUP serialization and deserialization methods 2025-06-25 21:22:02 -04:00
Jon Evans f9d1a4d31b API: Don't accidentally copy board's net info
(cherry picked from commit c9668b81c8)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2025-06-16 23:24:00 -04:00
Jon Evans 061cb2eba8 API: Add CheckPadstackPresenceOnLayers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20587


(cherry picked from commit d1e4b03ec1)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2025-05-26 21:47:44 -04:00
Jeff Young 4bb54b3439 Move more stuff to ACTIONs framework. 2025-05-23 15:19:49 +01:00
Jeff Young f58fc0b952 Rewrite GROUP undo based on uuids.
This also removes the GROUP/UNGROUP-specific undo actions.

This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.

This also fixes some undo bugs when dividing wires etc.

This also fixes some bugs with new sch items not
being created within an entered group.
2025-05-21 14:24:59 +01:00
Jon Evans 71417fbe3b API: Use action wrapper for setting grid origin
Fixes https://gitlab.com/kicad/code/kicad-python/-/issues/47
2025-05-07 23:28:19 -04:00
Mike Williams 40058ebe80 actions: move all basic selection operations to common actions 2025-04-02 12:02:01 -04:00
Jon Evans 12861345d3 API: Brute-force fix for footprint modifications 2025-03-29 23:53:55 -04:00
Jeff Young 60a26308ae COMMIT lifetime safety.
If we pass a COMMIT to a posted action, the COMMIT
may no longer exist when the action is run.
Equally problematic, if another COMMIT is pushed
in between we'd probably also run into trouble.

We still allow the API to do this because we don't
have a better solution at present.  But we need
one.
2025-03-29 21:24:08 +00:00
Jon Evans 31f3c44520 API: Clear footprint caches when making changes 2025-03-29 16:47:13 -04:00
Jon Evans dc9fa2e2ac More functional fix for IPC API item modifications
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20206
2025-03-28 20:27:45 -04:00
Jon Evans 3bac9344d2 Revert "Switch to operator= for item updates"
This reverts commit d0b22d21bb.
2025-03-28 20:27:45 -04:00
Jon Evans d0b22d21bb Switch to operator= for item updates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20206
2025-03-04 21:12:21 -05:00
Jon Evans 5cec2fac9d API: Add board origin setter/getter
See https://gitlab.com/kicad/code/kicad-python/-/issues/20
2025-02-25 20:13:16 -05:00
Jon Evans d29025ef78 API: Refresh screen after changing selection
Required on Linux/Windows

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20008
2025-02-22 16:00:40 -05:00
Jon Evans 0682d319fb API: Don't check for busy when not needed
see https://gitlab.com/kicad/code/kicad-python/-/issues/11
2025-02-03 18:02:46 -05:00
Jon Evans 4118c14d97 API: Add selection handling 2025-01-21 19:53:03 -05:00
Jon Evans bd47692bf2 API: Include custom layer names in stackup 2025-01-07 18:28:07 -05:00
Jon Evans a557c23576 API: Add board file management
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16774
2025-01-04 09:47:36 -05:00
Seth Hillbrand 0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Jon Evans 06e0e16336 API: Fix GetPadShapeAsPolygon to not re-use a SHAPE_POLY_SET
TransformShapeToPolygon appends instead of assigning
2025-01-01 16:34:30 -05:00
Jon Evans d8b8d8aa3c API: Add GetNetClassForNets; handle implicit netclasses 2024-12-31 17:51:19 -05:00
Jon Evans 19c748048c API: Add some board editor appearance settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18269
2024-12-29 22:10:01 -05:00
Jon Evans 6c47f32ccf API: Fixes for creating new zones 2024-12-26 13:34:16 -05:00
Jon Evans 96536f380d API: refactor handlers to be slightly less verbose 2024-12-08 20:23:11 -05:00
Jon Evans 98ae574c78 API: Add PCB editor visible and active layer setters/getters
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18268
2024-12-03 21:17:48 -05:00
Jon Evans 9499eda7ef API: Implement saving selection and board as string 2024-12-01 21:37:31 -05:00
Jon Evans 49d5e64428 API: Add initial definitions for dimensions 2024-11-29 21:18:51 -05:00
Jon Evans 8ff3ef5fd5 API: Add ExpandTextVariables 2024-11-28 19:21:18 -05:00
Jon Evans 3129e072c4 API: Move graphics and text handling to common
Required moving API_HANDLER_COMMON out of kicommon
2024-11-28 11:28:06 -05:00
Jon Evans d64b17050d API: Serialize PCB_TEXTBOX 2024-11-24 17:25:56 -05:00
Jon Evans 2355f76e36 API: Add zones to item handler 2024-11-24 00:20:28 -05:00
Jon Evans af71ea869e API: Expose title block info 2024-11-19 23:44:29 -05:00
Jon Evans 033fb4fc8f API: Add GetBoundingBox and Box2 2024-11-19 22:09:00 -05:00
Jon Evans f97f79426a API: Add a way to get merged polygon from pad shape 2024-11-19 21:17:22 -05:00
Jon Evans cb06d750de Add trapezoid delta to the padstack API definition 2024-11-17 22:32:35 -05:00
Jon Evans 251cbbd287 Handle PCB_SHAPE in GetItems API 2024-11-17 16:22:49 -05:00
Alex Shvartzkop b3bc352c57 Use default stackup if stackup is not defined in STEP/BREP/XAO export. 2024-04-26 15:25:48 +03:00