The fix for https://gitlab.com/kicad/code/kicad/issues/10529 kicked the
subsequent IDs for unit selection off the maximum ID value for popup
menus. This increases the maximum popup number (integers are free)
Removes the ability to hide symbol units in file formats. This was
mostly the case for a while but there remained corner cases where we
left a default/hidden option
Fixes https://gitlab.com/kicad/code/kicad/issues/10888
(cherry picked from commit 8c36ba3653)
When reading sheet fields, we need to maintain a consistent order for
the mandatory fields as they are dereferenced by place. We force this
during the `SetFields()` call.
We need to keep the screen blank while initially loading a sheet before
the hierarchy is developed. Avoid resolving text variables during this
process
Fixes https://gitlab.com/kicad/code/kicad/issues/11000
Also makes sure the progress dialog is closed when we're done reading
symbols (it used to stay up for much of the symbol editor initialization).
Also makes sure that any cancel in the preLoad step is honoured in the
sync step. (The preload is done because it is multi-threaded and therefore
faster than the single-threaded sync.)
Also makes sure that individual threads pay attention to the cancellation,
not just the GUI thread.
Fixes https://gitlab.com/kicad/code/kicad/issues/8372
(cherry picked from commit 1f16092e29)
KiCad has stricter requirements for what consititutes an annotated
symbol. This checks for and corrects annotations that begin with '#',
do not begin with a non-numeric character or do not end with a number
(cherry picked from commit 78620347c8)
Fixes https://gitlab.com/kicad/code/kicad/issues/10760
Center rotation will often misalign lines to the grid, which is bad
until fix off grid items on the schematic.
We can rotate a connection end into a new connection or to become
collinear with an existing line, so we need to check for this at the end
of rotation.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10565
If a wire intersects more than 2 pins from the same symbol, we don't
trim connections. If the wire intersects exactly two pins from a single
symbol, we remove the wire between the pins.
We avoided doing this before because we didn't have a good metric for
trimming vs. not. But the per-symbol calculation feels like the least
surprising option.
Fixes https://gitlab.com/kicad/code/kicad/issues/10909
Fixes https://gitlab.com/kicad/code/kicad/issues/1857
Apparently at some point during V5 development, symbol cache library names
were saved by replacing the LIB_ID separator character ':' with '_'. This
caused the cache look up to fail there by skipping the symbol rescue which
could result in broken schematics.
I have no idea where this happened during V5 development. The video demo
in the HEAD of the 5.1 branch shows the issue. All of the other demo cache
libraries are correct.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10488
gcc doesn't need it and computes during compile regardless, but experimenting in godbolt, both clang and MSVC actually do need it or else it's partially computed at runtime
(cherry picked from commit ca7840334c)
We need the item to be currently selected when repeating the last symbol
insert. This ensures we have a valid selection before starting the move
tool and possibly getting odd system behavior from mouse positions
Fixes https://gitlab.com/kicad/code/kicad/issues/10619
We can't stay in a sheet that is deleted by the action of undo. Checks
the current sheet and, if we are currently using it, ensures that the
following action is to leave the current sheet
Fixes https://gitlab.com/kicad/code/kicad/issues/10733
When the grid editor is shown, we also want to ensure that the grid gets
resized to account for the new editor. Queuing the event will ensure
that happens after the editor is emplaced in the grid
Fixes https://gitlab.com/kicad/code/kicad/issues/5690
On GTK, the full editor needs to be shown and, for some systems, the
editor will not show correctly. By yielding we should allow the time to
recalculate sizes for the editor in the grid
Fixes https://gitlab.com/kicad/code/kicad/issues/5690
Our undo/redo list is tied to the screen that gets cleared when we
reload the file after renaming. We need to clear the Undo list at this
point to prevent possible crashes when moving too far back in the stack
Fixes https://gitlab.com/kicad/code/kicad/issues/10504
Eeschema/libedit support open, filled polylines. When printing, this
should be drawn as a fill, followed by the polyline to avoid assumptions
about closed polygons in the graphic code
Fixes https://gitlab.com/kicad/code/kicad/issues/10537
Rather than skipping our endEdit() call in libedit, we need to
parameterize whether we want the shape open/closed. Closed will remove
the last segment if it lands on the first point. We don't want that
but we do want to remove the last point if it duplicates the second to
last (in the case of double-clicking)
Fixes https://gitlab.com/kicad/code/kicad/issues/10334
SHAPE_LINE_CHAIN will, by default, remove duplicate points when
appending. We don't want to do this when constructing our polygons in
symbol editor, so we need to explicitly call the routine without
deduplication
Fixes https://gitlab.com/kicad/code/kicad/issues/10289
When leaving the main point editor loop, we need to ensure that the edit
point is cleared as well. This is usually cleared by a ClearEvent call
but in case this is missed, we need to ensure that other tools are not
caught out
Fixes https://gitlab.com/kicad/code/kicad/issues/10288
Undo/Redo can change the symbol referenced by the symbol drawing tool.
This updates the current symbol before important steps to keep the
system synced
Fixes https://gitlab.com/kicad/code/kicad/issues/10125
Exporting the Bill of Materials uses the netlist exporter. Both of
these routines were stripping the extension, leading to projects like
"test.project.kicad_pro" having the project name stripped. We separate
the BOM netlist export from generic plugin netlist export to allow the
correct behavior when exporting netlists and generating BOMs
Fixes https://gitlab.com/kicad/code/kicad/issues/10270
We were only checking for the selection of a single line that gets
merged. This prevents the merged line from being highlighted but not
selected after merging
Fixes https://gitlab.com/kicad/code/kicad/issues/10202
This is particularly important when reading legacy projects as 0 is
what signals the painter to use the old algorithm (1/2 pin name/number
size).
Fixes https://gitlab.com/kicad/code/kicad/issues/10100
(cherry picked from commit f089cf44a7)
It is no longer acceptable to set a LIB_FIELD index to -1. This was
trashing the sorting on load cause all kinds of false field comparison
failures. There are now assertions when attempting to use -1 as a field
index.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9811