19555 Commits

Author SHA1 Message Date
Jeff Young
de1c6c86ab Fix missing initialization. 2025-08-19 13:38:43 +01:00
Jeff Young
e841ca1906 Add spacing for Mac file dialog custom controls. 2025-08-19 12:52:21 +01:00
Jeff Young
dfee657456 Don't append to previously-restored value.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21458
2025-08-19 10:40:37 +01:00
John Beard
34a73a3d77 FP edit: Move private layer settings to layers panel 2025-08-19 05:00:03 +08: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
Jeff Young
6f389fd320 Tighten parent/child undo/redo architecture.
Always look for pre-existing undo/redo record.  Checking for IsNew()
is less robust and should be avoided.  Also moves the checking to a
location where it will be easier to ensure that it's uniform.

Push get-undo-level-item processing down a level so it is uniformly
called.

Make sure tables & labels are uniformly handled.

Remove incorrect usage of Get/SetGroupId() for storing lastPin
(which we don't use anyway).

Lists of deleted and changed items MUST include the screen pointer.
An item could be changed on one screen but not on another.

Also tightens handling of PCB_NETINFO_T items, which are not in the
view.

Also fixes a bug where there is no increment parameter if you assign
the base increment command to a hotkey.
(This was discovered while testing the above changes.)

Also fixes a bug where delete during a move in PCB Editor did an
undo instead of a delete.
(Again, found while testing above.)

An experiment was also run to collapse shared parts of SCH_EDIT_FRAME
and SYMBOL_EDITOR_FRAME into SCH_BASE_EDIT_FRAME.  However, sharing the
undo code actually increased complexity, and there was very little else
of value in SCH_BASE_EDIT_FRAME (other than the Increment() routines).
2025-08-18 19:20:09 +01:00
Seth Hillbrand
8faf1b4d0e Allow soldermask bridging between nettie items
Previously we only allowed graphical items but within the net-tie we
need to allow bridging for connected items as well

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19288
2025-08-18 08:47:26 -07:00
Seth Hillbrand
4c5b44545f Slight modification to followTrivialPath
Now keeps track of branch points, recursing through them to find the
longest path it can in both directions.  This helps to ignore
overlapping segments

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7809
2025-08-17 20:19:40 -07:00
Seth Hillbrand
9f2b04c7e2 Prevent autosave error from cluttering the screen
Once per session, per editor we can show the error.  After that, assume
that the designer has seen and knows about the issue.

Fixes https://gitlab.com/kicad/code/kicad/issues/21464
2025-08-16 13:49:32 -07:00
John Beard
85dcdd5cb2 Altium: advanced config to skip models
This can be really slow, and isn't required if testing
something that's unrelated to models in a large demo file.
2025-08-16 05:36:11 +08:00
Seth Hillbrand
1166cacc64 Snap point editor into place
Adds 90° support to the point editor and ensures editing is the same as
creating when it comes to point snapping

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21481
2025-08-15 12:19:06 -07:00
Seth Hillbrand
ddae938aa4 Allow grouping tuning pattern with tracks
Any object that shares a name should be able to be handled in a group
2025-08-15 10:54:23 -07:00
Seth Hillbrand
3ec380d93c Allow generator actions to affect children
Changing the generator will often modify the underlying children's
properties.  We should store these data in the stack.  Also add the
ability to change layers

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21476
2025-08-15 06:50:46 -07:00
Seth Hillbrand
8bf7975440 Make move tool obey snap settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21192
2025-08-15 06:35:12 -07:00
Mark Roszko
53e8d051e3 Reuse the visibility bitmap bundles to reduce gdi object exhaustion
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21386#note_2654658071
2025-08-15 08:15:24 -04:00
Seth Hillbrand
a45cb0015a Fix copy pasta causing crash
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21486
2025-08-14 16:28:10 -07:00
dsa-t
7c499f499d Altium PCB import: fix 3D models rotation when 3D body is on bottom side.
See https://gitlab.com/kicad/code/kicad/-/issues/18450


(cherry picked from commit 9de49e3ac5cde06db7f1a0d86f66b3bde4c24f71)

Co-authored-by: Alex Shvartzkop <dudesuchamazing@gmail.com>
2025-08-15 01:15:13 +03:00
jean-pierre charras
de47d89e41 DIALOG_IMPORT_SETTINGS: fix some minor issues.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21483
2025-08-14 13:44:01 +02:00
Jeff Young
33c73d7db4 Fix crashes when settings manager doesn't exist yet. 2025-08-14 11:33:25 +01:00
Jeff Young
dafc9dd05a Fix crash with empty grid setting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21479
2025-08-14 10:34:43 +01:00
jean-pierre charras
4ac43a212e DIALOG_BOARD_REANNOTATE: ensure the Grid selection choice is valid (existing grid).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21479
2025-08-14 11:31:55 +02:00
Olliver Schinagl
98d77db5ae export_vrml: Skip missing 3D models with warning 2025-08-13 18:06:28 +01:00
Jeff Young
a0e768dd0e Cleanup compiler warnings. 2025-08-13 16:22:51 +01:00
jean-pierre charras
2afd752bbc Fix my previous commit 20d8c9c7. 2025-08-13 14:35:54 +02:00
jean-pierre charras
20d8c9c7f9 PLOT_CONTROLLER::PlotLayer(): fix bug when drill marks must be plotted.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21474
2025-08-13 12:54:07 +02:00
Jeff Young
60b4202766 CHANGED: Rework lock overrides architecture.
We now use a checkbox in the aux toolbar rather
than a query dialog (with "remember setting" checkbox).
2025-08-13 10:30:26 +01: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
Ian McInerney
87c86c04fd Don't recreate initializer list everytime we test a track
The initializer list stays the same, so don't waste time recreating the
list everytime we want to test a track.
2025-08-12 17:37:05 +01:00
Andrea Greco
f969a87ce5 Add some pcb stats to statistics dialog
ADDED: Track statistics, board thickness and drill sizes to the PCB statistics dialog
2025-08-12 17:19:02 +01:00
jean-pierre charras
516cfb7a74 DIALOG_BOARD_STATISTICS: display castellated and press-fit pads count. 2025-08-12 17:23:11 +02:00
Seth Hillbrand
0a5de5010f ADDED: Spacemouse support for Linux
Uses libspnav to handle spacemouse data.  Overlays on existing
spacemouse framework to handle view activation

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16133
2025-08-12 07:04:54 -07:00
John Beard
803a25792f Pcbnew: Array tool - remove duplicate rotation checkbox
Sync up a few defaults too while in the area.
2025-08-12 20:01:02 +08:00
John Beard
d1aa7b148a Eeschema/Pcbnew: allow multiple nets to be assigned to a netclass at once
There is only a simplistic multi-net pattern expression
generator here (A|B|...) with a single prefix detected
rather than anything too fancy.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/21451
2025-08-12 20:00:33 +08:00
John Beard
6ad1a5bd61 Netinfo: HasAutoGeneratedNetname is const 2025-08-12 20:00:15 +08:00
John Beard
299a6c6c7b Netinfo: avoid transitive string_utils.h include
Put the string manipuuation utils in the cpp, and
remove string_utils.h from the includes of netinfo.h.

This spams that header into about 350 files, not all of which
need it. Then go round and tidy up the places (most exporters
and dialogs) where CPP files weren't including string_utils.h
when they used it, as well as some other order-sensitive
include issues that turned up.
2025-08-12 20:00:15 +08:00
jean-pierre charras
09e1fca7e4 More about support of press-fit pad fabrication property
Also some fixes in dialogs.
2025-08-11 18:48:35 +02:00
Jeff Young
6947b3b233 Even more open-coded dialog state-saving cleanup. 2025-08-11 17:19:12 +01:00
Jeff Young
cd325198c1 Give WX_TEXT_ENTRY_DIALOG a title- and label-specific hash.
This keeps us from attempting to save/restore control
state between different usage cases.
2025-08-11 17:19:12 +01:00
Seth Hillbrand
8f625086b1 Remove namespacing from IPC2581 output
Because some readers maintain global namespace per the standard, we make
sure that we don't overlap names between namespaces but keep the minimum
viable name for each element

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19914
2025-08-11 08:50:23 -07:00
jean-pierre charras
da92279436 Pcbnew: add pad fabrication property Press-Fit
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21457
2025-08-11 15:59:19 +02:00
Seth Hillbrand
77b99968ed Fix typo in previous commit 2025-08-10 20:25:35 -07:00
Seth Hillbrand
02e9dd697b ADDED: Action to embed all 3d models referenced
Moves through the footprints and replaces external references with
internal embedded files

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20847
2025-08-10 20:20:32 -07:00
Seth Hillbrand
c4d78d2bce Add plausibility check to DRC custom rules
- Checks for duplicate conditions
- Checks for non-existent netclasses
- Checks for non-existent layers

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13498
2025-08-10 19:28:20 -07:00
Jeff Young
cf5c00bcf2 Make more use of shared dialogs. 2025-08-10 21:32:10 +01:00
Jeff Young
892f9031d7 More open-coded dialog state-saving cleanup. 2025-08-10 21:00:17 +01:00
Jeff Young
567c7aa96b Separate control building from control value setting.
The first needs to happen before dialog layout, the
second after DIALOG_SHIM's control state restoration.
2025-08-10 18:43:09 +01:00
Jeff Young
8d26313d8d Separate control building from control value setting.
The first needs to happen before dialog layout, the
second after DIALOG_SHIM's control state restoration.
2025-08-10 18:30:14 +01:00
Jeff Young
44bd29d592 More removal of open-coded dialog state saving. 2025-08-10 15:57:20 +01:00
Jeff Young
2909e984b6 There is no need to store the m_reporter pointer. 2025-08-10 11:40:04 +01:00
Jeff Young
661be06168 Use TransferDataToWindow() to init controls. 2025-08-09 21:52:08 +01:00