Also cleans up a misconception about table header borders,
and renames the getter/setter to be clearer.
Also makes sure that table cells are updated when the table
layer changes.
And another bug where we were writing the grey color value
back to the cell for hidden cells.
We use IN for INCH as units, but IN is defined in a Windows header
(cherry picked from commit b0fe4df3c5)
(cherry picked from commit 0acdabd1eb)
(cherry picked from commit eaa1e6d594)
A previous change introduced an invalid cast from
base to derived class. To clean this up, changed
DecodeIntLibStream to have an out param and allow
two-step initialization of ALTIUM_COMPOUND_FILE
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20099
(cherry picked from commit b6aac9369e)
Co-authored-by: Jon Evans <jon@craftyjon.com>
The passed in footprint is a filter, not the current
footprint from the iterator.
Also cleaned up confusion and bad reporting over
temp file usage, and need to const cast for
updating embedded fonts.
Pads should write that they exist on all layers using the wildcard and
then not also enumerate the copper layers (in this case, enumerating the
copper layers that were not enabled on the board).
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
IPC2581 classifies pad rotation as clockwise from the top layer looking
down. Which means that if you have the exact same footprint with
rotated pads on the top layer and bottom layer, then that will need two
different packages because one package will have the pads rotated one
way, the other will have the pads rotated in the opposite direction.
The IPC committee clearly was too smart for its own good here. So we
hash the footprints based on layer as well and then introduce the
rotation into the pad. This increases the number of packages but keeps
the code compact
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19703
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.
System attributes should be prefixed by the . while user-defined
attributes can be freeform ASCII
Adds DNP & Component Type for footprints to ODB++ export
Some parsers like the stackup def and this gets additional information
about the materials/colors into the output
Also fixes an issue where we could get missing pads in unusual cases.
Also fixes an issue were we generated invalid contours when footprints
had split courtyards
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16665
Altium stores (or can store) full information about the absolute
location of libraries for each footprint in their board files. Since
KiCad only stores an alias, we have no place to keep the full path.
Just keeping the filename should be enough for most cases and still
allows the user to disambiguate manually after import without crowding
the UI.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15593
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