Support explicit jumper symbols, defined either by a
flag that all pins with the same number are connected,
or by explicit groups of jumpered pins
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
When building a net tie, all elements in the footprint that belong to
the net tie can be arbitrarily close to one another. outside of the
footprint, connected items can be arbitrarily close to the tie element
but must respect the clearance values for elements that have nets
assigned to them
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19933
(cherry picked from commit bff819edb08e3d303c695b79f990374d259e4d0a)
Not sure what it is that caused it to break (reported by
Seth on Linux, but works for me and on the CI).
Rather than trying to be clever at this point, just do the dumb
thing (and remove the boost_test_print_type for wxSize to prevent
someone using it for the time being).
The m_imageData buffer in the BITMAP_BASE is an
internal implementation - the public API to persist the
data to a stream appears to be SaveImageData - so use that,
which hides the implementation (and generates the image data
"live" when needed).
Remove the public access to the m_imageData buffer as it isn't
needed for public use, and also is misleading.
Also break out the formatting of the data into KICAD_FORMAT,
as it's currently replicated in eeschema/pcb/pagelayout
formatting code.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19772
This means that you can run just a single case from the command line,
for example:
`qa_pcbnew -t DRCCopperSliver/_0`
The case is also automatically printed as context.
This means that when isolating a specific defect in one case,
you can run only that one case, which is useful under debuggers
and also when using slow tools like valgrind.
Not all possibe tests are doing this, but they're easy to do
when needed (i.e. when you want to run just one case)
This is not only a useful place to hang regression tests,
but also allows to catch defects specific to loading or
saving footprints.
For example, it would catch:
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19713
We still conflate the fieldID, the position in the
array of fields, and whether or not that means the
field is mandatory. But this attempts to clean up
*some* of that, without introducing too much risk.
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.
Handle arcs properly even when not exactly concentric. Properly check
for interfering elements that would prevent coupling. Avoiding those
that are directly connected
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17967