414 Commits

Author SHA1 Message Date
Seth Hillbrand
5952c2fb9a ADDED: Pad edit table
Allows editing common pad properties in table format

Fixes https://gitlab.com/kicad/code/kicad/issues/10789
2025-09-12 05:39:25 -07:00
John Beard
e016dc52fd Pcbnew: Add concept of a 'point'
This is a zero-dimensional object that can be used for snapping
and documentation of useful, but non-physical features on a
board or footprint. They do not correspond to any physical
output in exports or plots.

Points do have a "size", but this is a graphical property only
and determines how large they are drawn on the board.

They also have a layer, which allows them to be selected and
made visible according to layer filters.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/4691
2025-09-01 23:44:21 +08:00
Seth Hillbrand
26f0c03e61 ADDED: support for 45 degree crosshairs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6047
2025-08-23 06:20:00 -07:00
John Beard
ed01324c1d Footprints: allow to set specific internal copper layers
Footprints can now have a custom stackup. This means that they specify
an exact number of copper layers and the layers map 1:1 to board layers.
If the board doesn't contain that layer, the element just doesn't
show. We could make this a DRC check later on.

If there is no stackup, the behavior is the current default: a rule area
the In1 layer "expands" to all Inner layers.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10838
2025-08-19 04:59:48 +08:00
Seth Hillbrand
188ffda029 Add a 90°-only mode for polygon creation
Sometimes, you don't want those 45° corners in your nice, clean zones.
This adds an additional mode that can be selected, cycling through
free-angle, 45° angle and 90° angle constraints
2025-08-12 16:48:36 -07:00
Seth Hillbrand
73aa437259 Finalize lasso selection tool
- Move under rectangular selection
- Simplify available modes
- Link to new icon
- Make selection state persistent
- Allow additive/subtractive with KiCad configurable keys
2025-08-06 16:07:43 -07:00
Andrzej Wolski
c73d555fe2 ADDED: Lasso selection in pcbnew
Adds a lasso or freeform selection tool to KiCad in addition to standard
rectangular selection.  Adds supporting HitTest routines

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1977
2025-08-06 16:06:40 -07:00
Seth Hillbrand
66f37beff7 Move canvas selection to common
Makes all canvases obey the same rendering parameter.  Also keeps the
canvas selection with the anti-alias selection, which makes logical
sense.  Reduce the antialias selection to a single choice rather than
two different choices for different canvases
2025-07-27 20:22:59 -07:00
Jeff Young
c49156fb35 Naming conventions. 2025-07-21 20:59:26 +01:00
Jeff Young
beb83e87ea Must use addParamsForWindow to init WINDOW_SETTINGs structs. 2025-07-17 16:26:50 +01:00
Jeff Young
5390e0d7f9 Don't double-delete panes. (Potentially KICAD-22T) 2025-07-07 18:31:31 +01:00
Jeff Young
59cec7ec3a Update enabled layers when starting FP Editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21245
2025-07-03 14:42:28 -06:00
Jeff Young
a7fdea9b6f Attempt to fix destruction order crash (KICAD-6KC). 2025-06-24 11:52:29 -06:00
Jeff Young
18e107529a Don't force callers of GetAppSettings to implement exception processing. 2025-06-14 20:25:59 +01:00
Jeff Young
06dcb64ad8 Harden progress reporter API against misuse.
Also, titles are nouns, not verbs.  (Messages
*inside* reporters are verbs.)

Also implements progress reporter for Altium
schematic import.
2025-06-01 19:38:24 +01:00
John Beard
a116f5cd57 Point editors: move cycle arc mode to common action, add to menu
This isn't the best possible UX (having the various modes immediately
available as graphical affordances would be best). But it's somewhat
discoverable, and at least shows the hotkey, if any, and it in the
context menu and not hidden in a toolbar right click menu. So if the
affordance-type system doesn't make it for v10, this will at least
provide something in eeschema.
2025-05-02 21:30:33 +08:00
John Beard
ff31b88857 Pcbnew: add keep-radius arc-edit mode
This is (now) fairly easy to slot into the PCB point editor
framework.

In this mode, the endpoints adjust only the endpoints on the existing
radius. Radius can ve changed with the midpoint point. The center
point moves the arc, as in the "keep center/adjust radius and angle"
mode.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15661
2025-05-01 22:07:46 +08:00
Mike Williams
0c0dbc6271 groups: commonize group tool 2025-04-15 09:59:38 -04:00
Mike Williams
40058ebe80 actions: move all basic selection operations to common actions 2025-04-02 12:02:01 -04:00
Mike Williams
f40b24d04a groups: move actions to common actions 2025-04-01 14:34:20 -04:00
jean-pierre charras
79fbae00ce FP editor preferences: Fix crash when closing (by OK) the dialog if no FP loaded.
After opening the PANEL_FP_EDITOR_FIELD_DEFAULTS panel, due to a null pointer
when no FP loaded in FP editor, closing the dialog by OK button crashed Pcbnew.
2025-03-30 11:19:37 +02:00
Mike Williams
a90b8ec57a pcb: merge RunOnChildren/Descendants into one function with a mode 2025-03-27 13:16:09 -04:00
Jeff Young
3380afd9fd Auto-enable user layers that have custom FPEditor names. 2025-03-25 17:34:43 +00:00
Jeff Young
9a7b82a8c0 MOVED: fp editor layer names to Display Options.
(It was on Footprint Defaults, which didn't make
any sense.  Probably just ended up there because
there was similar code there.)

Also fixed a bug with accepting the dialog with
a grid cell editor open.

Also fixed a bug where the number of copper layers
would get set back to 2.

Also fixed a bug where the layer names weren't
getting updated in the Appearances tab.
2025-03-25 10:34:01 +00:00
Jeff Young
9c375581ff Don't assert (or crash) on shutdown.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20433
2025-03-24 12:36:44 +00:00
Jeff Young
459cf030b8 Don't disable first internal layer in footprint editor.
It's used as a proxy for all internal layers.

Also fixes LAYER_RANGE_ITERATOR so that it works with an odd
number of copper layers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20246
2025-03-11 19:11:11 +00:00
jean-pierre charras
9d1b320896 Fix compil warnings 2025-03-08 09:40:23 +01:00
Jeff Young
305bb6302b User layer bug fixes.
1) Don't set user layer count right after we've
cleared the enabled user layers.  (It will
always be 0 by then.)

2) Allow un-enabled layers in some layer
selectors.  (Currently this is just the private
layers selector.

3) Reset the appearance panel layers each time a
footprint is loaded.  Also, auto-enable any user
layers that the footprint already has.

4) Footprint editor layer visibility is stored in
the view, not in the boars (as is usual).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20022
2025-03-05 17:59:22 +00:00
jean-pierre charras
eaa1e6d594 Fix a collision with a Windows define and our use of the same var name.
We use IN for INCH as units, but IN is defined in a Windows header
2025-03-02 11:34:30 +01:00
Jeff Young
f951497a4f Code brevity. 2025-03-01 21:58:31 +00:00
Ian McInerney
85810510f4 Tweak toolbar settings a bit
* Manage the settings using the settings manager for better lifetimes
* Better architect the internals and JSON to make it easier to identify
  the various tool types
2025-02-28 01:57:37 +00:00
Ian McInerney
548334b4e2 Load toolbar configuration from settings 2025-02-28 01:57:37 +00:00
Ian McInerney
ea2f8a63c1 Actionize more PCB actions 2025-02-28 01:57:37 +00:00
Ian McInerney
f0a76f62b6 Cleanup PCB/fpeditor layer box handling 2025-02-28 01:57:37 +00:00
Ian McInerney
7ad1103f55 Move toolbars to a serializable storage format 2025-02-28 01:57:37 +00:00
Ian McInerney
c24dbc17bf Move toolbar setup flags into the action definition
This makes them centrally defined, and removes the need to specify them
when creating the toolbar.
2025-02-28 01:57:37 +00:00
Jeff Young
797de67c6c Apply EEschema fixes to PCBNew and Footprint Editor.
(Symbol Editor doesn't have the issue of the properties
being overwritten.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20066
2025-02-26 20:06:30 +00:00
Jeff Young
8874f137fa Read hotkeys from disk after they change.
(Otherwise we'll write the old versions back out
when closing one app.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19612
2025-02-01 20:01:13 +00:00
Jeff Young
9083c9e6ab Remove dead code. 2025-01-29 20:54:33 +00:00
Seth Hillbrand
81fbaacae2 Keep track of user layer mapping for footprints
Footprints in orgs have standard naming.  We need to allow designers to
keep their standard namings outside of boards where they are fixed.
This belongs in the preferences as a set-once for local standards
2025-01-28 12:22:39 -08:00
Alex Shvartzkop
0216b186aa Disable Bezier and Table tools when no footprint is loaded. 2025-01-21 01:15:22 +03: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
Jeff Young
753d385473 Reduce dependency on dynamic_cast.
Also switches to checking __clang__ instead of __WXMAC__.
2024-12-08 21:46:54 +00:00
Seth Hillbrand
5eb11f705b Ensure that auimanager has a frame
restoring the last footprint might ask for the infobar, which requires
the auimanger to have a frame

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19103
2024-11-18 12:11:31 -08:00
John Beard
39d72a84df Pcbnew: register array tool in FP editor 2024-11-10 19:07:06 +08:00
Alex Shvartzkop
bc7d5c821c Fix some warnings. 2024-11-03 00:01:26 +03:00
John Beard
3b2f6d9d03 FP editor: string consistency
119eea38c3fd345af45aef44579ab66a35990cd1 changed to using
%s rather than '%s' - follow that convention in the FP editor
strings.
2024-11-01 11:21:18 +08:00
John Beard
78d626d38c FP editor: add call-to-action to open a board footprint in the library
Useful both as a confusion reduction measure when confronted with the
inforbar message, and also useful when you pressed Ctrl+E, not
Ctrl+Shift+E.

Also bind Ctrl+Shift+E in the editor to perform this action
(again, useful when you used the wrong hotkey).
2024-11-01 10:29:59 +08:00
John Beard
418e81702f FP editor: choose the right conflict resolution... 2024-10-17 00:32:27 +08:00
John Beard
2fd2e1d837 FP editor: a 'new' footprint with no library is 'editable'
When creating a footprint from the main menu, as opposed to from
a library context menu, there is no library set until it's saved
(the user will get a save-as dialog to set the library at that
point). So lack of a library doesn't mean 'read-only'.

So, don't show the 'read only library' warning in that case -
the user will not be able to save the footprint "in place" as there is
no "place" yet, but it's a reasonable and consistent workflow (like
editing a File->New'd file in a text editor).
2024-10-17 00:15:28 +08:00