Append board reads the BOARD_ITEMs directly onto
the board and so pushes the commit with CHT_DONE
flags. However, this means the added items aren't
added correctly to the connectivity system.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20314
There should be far fewer hatched objects than other
objects, so we're spending too much effort finding
all the possible damage when we probably should
just be auto-regenerating all the hatching.
This also moves it out of being done during redraw,
which was proving problematic. Plus the refill
zones architecture does it during commit, and has
a lot more miles behind it.
There are two netclass name methods, which previously were not
obvious in their uses. These have been renamed to now have:
GetName() : Used for internal or tooling (e.g. netlist export) usage
GetHumanReadableName() : Used for display to users (e.g. in infobars)
Fixing the previous unclear naming will result in fewer bugs
when users start using the multiple netclass functionality, as
the incorrect usage had started creeping in to new code. Also this
will help authors of new code select the correct name method.
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
The TOOL_EVENT constructor searches for ACTONS::cancelInteractive. That
action is global, so we need to ensure it is created before we try to
create these events - so switch to a create on first use paradigm for
the events.
- fix PCB_CONTROL::LayerNext() and PCB_CONTROL::LayerPrev() (hotkeys + and -)
- fix PCB_EDIT_FRAME::SwitchLayer( PCB_LAYER_ID layer )
- fix PCB_BASE_FRAME::SwitchLayer( PCB_LAYER_ID layer )
-PNS router SwitchLayer is still broken and can crash.
- better fix for PCB_VIA::SetLayerSet() than commit 0c959075.
- Ensure saved via from a board and pasted to another board have a layer pair
compatible with this board copper layer count (if not, skip it)
- workaround in PCB_VIA::GetLayerSet() that hang when a LAYER_RANGE has start
and end layers id not compatible with the copper layer count (bug in LAYER_RANGE?)
This is the second piece of the layer pair preset quick
switcher that allows a action (i.e. hotkey) to cycle between
the enabled preset layer pairs.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15227
The paste code removed items managed by the footprint when they are not on
an enabled layer.
This is a bug: all items must be kept in the parent footprint.
This is the only one command that tried to remove such items.
Other commands (Ctrl+D, load Footprint and read netlist) do not delete any item
(And we already filter all mandatory fields in
pasteFootprintItemsToFootprintEditor() anyway.)
Also, don't nuke a footprint which contains only fields
during a paste.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17937
The clearance between two zones could be rather slow. This was in part
to trying to do triangle-triangle collisions between zones when we only
need outline collision and in part to the shape_line_chain collision
routine. The shape_line_chain collisions don't need to recreate
segments on each iteration and should instead create them once and using
this to check all collisions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17327
When selecting two objects, we display the measured clearance between
them. This can be problematic with large zones as they have thousands
of triangles.
This is a temporary fix for 8.0.1 to disable the check until we have a
performant version
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17327