Provides an update action to refresh the icon display when the user
changes the angle mode using a hotkey. Also unifies the angle modes
between schematic, pcb and library editors
Allows the user to swap the label associated with a pin and other pin(s).
Will only allow swapping the label when the pin contains just a label
and nothing else (except wires).
The crash was due to use a temporary parent in SCH_LABEL_BASE::SetLabelShape()
The parent must be a SCH_SCREEN and is now tested before use.
It is also fixed and set to the current SCH_SCREEN at creation.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21786
Sanitizes data library aliases when caching and loading while keeping a
lookup table back to the original values. Prevents saving invalid data
into the schematic
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20653
This was a legacy thing. some time ago the Y axis of symbol graphics was
bottom to top, opposite of schematic Y axis.
This is no longer the case (since some time) and the Y sign change is a bug.
Note: for symbol files, the Y axis of symbol graphics is still bottom to top.
When using multi-label input or repeat commands, the previous element
should be deselected so that we can properly transform the current
element
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21765
1) Always be explicit about what the delimiters are
2) If space is a delimiter, we probably want to skip
empty fields (wxTOKEN_STRTOK)
3) If space is not a delimiter, we often need to
trim the resultant tokens
4) Be more lenient about \t\r\n (and when they are
included, include them in the same order)
These are semi-colon-separated.
This is different from the footprint_filters dict entry, which is space-separated.
The first footprint in the footprint dict entry
will go into the "Footprint" field, while the rest
will go into the symbol's footprint filters.
"description" and "keywords" must hold string values;
"footprint_filters" can either hold a (space-
separated) string value, or an array of strings.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20750
Updating to PCB always resolves text variables from the schematic. This
means that back annotation will always start from resolved variables if
they exist in the schematic. So to avoid this, we prevent overwriting
any text variables that exist in the schematic.
This does prevent the user from updating a text variable in a pcbnew
field and backannotating this variable change into the schematic where
the schematic had a text variable already. Text variables are forward
annotation only until we add an additional property to each field to
include the unresolved text
Fixes https://gitlab.com/kicad/code/kicad/issues/21724
You generally copy/paste whole rows in lib tables, so make this workflow
easier. Allows pasting rows as new data. Prevent overwriting existing
data and don't force pasting from the first column
Interestingly, the majority of people in a KiCad training course wanted
to draw subsheets this way. There is no real reason to keep the
existing select behavior, so this greases some skids