With this change, "A.Component_Class == 'SOME_CLASS'" will return
true if either SOME_CLASS exists in the list of component classes
attached o the footprint, or if SOME_CLASS is the full component
class name.
(cherry picked from commit 85e6978aa271528952427812bbc404d2341c4ff6)
Also adds migration from older layer numbers to strings.
This may require users to dump their 9.0 settings files
(which will have the wrong layer numbers in them), but
those files are often useless anyway as they'll already
have messed up colours if they were migrated from 8.0.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18709
The export SVG dialog was removed some time ago (merged with plot svg).
But some settings of this removed dialogs were not removed.
(cherry picked from commit 9a1cf81ca655374cbeee031a7e41d8200826b91d)
When A references B and B references A, the shared pointer reference
count will never go to zero by just removing the parent container. We
need to explicitly clear the shared pointer references when we are done
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20272
(cherry picked from commit 641e06e67c4358283eb35de7ffa269246e01d1a2)
This reverts previous behaviour whereby 'A.Netclass == x' compared
the full name of an effective netclass (e.g. 'Class1,Default'). This
was found to be unexpected behaviour to users, who were expecting
the equality to compare single netclasses. The equality check now
first checks for a constituent class with the given name, and then
falls back to a check of the full class name.
Inequality requires the netclass name being tested to not be a
constituent netclass and to not be the full class name.
(cherry picked from commit f0e287a87b070c29d7467b911d1280ebdabaefe6)
(Some of these items don't currently get printed, but
there's no sense in leaving a latent bug around in case
we ever change our minds.)
(cherry picked from commit 877c6bce8938e9ca6e3d3c6381a5dd5d9acfb9a4)
Altium doesn't require sheet names to be unique but KiCad does, so we
disambiguate the names when importing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19281
(cherry picked from commit ca51b0f37ddbaf2f285b6a17833ac4fb340e8490)
Set the library symbol equal to total unit count so that we can assign
elements to the correct unit in the SCH_SYMBOL
(cherry picked from commit 81fcc16cc9c15dbc3f03af59a42535c75f720dcf)
This can happen when running standalone, where component classes
have not been resolved.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20235
(cherry picked from commit 54540f9e827968a35ab44aef79e3d005ece8c916)
We sometimes represent circles as 360° arcs. These are approximately
colinear but are definitely not a line
(cherry picked from commit c24832f72b2b636dd7cfb9dce29ef9133b5d3908)
Since it is effectively infinite resolution, pass the vectors to the
printer and let it decide if there should be a dot there or not. Hiding
based on perspective is a screen optimization
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20226
(cherry picked from commit 8e048d0c42a85add48470c3eb0ad6acbaf3ab283)
GuessPluginTypeFromLibPath() was previously testing the type, but also the
existence of the lib file of *.kicad_sym filename, but when creating a new lib,
its existence obviously must not be tested
(cherry picked from commit e54c73b516b874e577c69daaf554819a6d5c0383)