CHANGES: Symbol library file format has been converted to s-expressions.
Add support code for picking apart symbols at some future junction that
will allow full inheritance conversion of existing symbol libraries. For
now, symbols arranged by unit and body style numbers are nested for round
robin testing of symbol libraries once the parser is complete.
Scope: NETLIST_ITEM, CONNECTION_TYPE, ELECTRICAL_PINTYPE,
NET_CONNECTION, NETLIST_ITEM, GRAPHIC_PINSHAPE
Note, the pin type enum had PT_ added to the front to prevent
shadowing of the INPUT symbol on msys2 (see discussion at
c17c9960d8)
... and GetMsgPanelInfo.
Step 4 in the g_UserUnit eradication effort.
Also removes a couple of conversion routines that were close
enough to extinction.
(cherry picked from commit c75da51)
1) don't call UI-level LIB_PIN routines when reading library --
not only are they a performance hit, they set the modified flag
too
2) limit progress dialog updating to 15 times a second (this
had crept back up to 31% of the time spent loading libraries)
Fixes: lp:1734773
* https://bugs.launchpad.net/kicad/+bug/1734773
1) Edit Symbol gets similar fix as Place Symbol
2) progress dialog updating reduced to once every 50ms
3) SearchText gets lazy normalization
4) TypeNames get lazy translation
5) default fieldNames get translated a single time per language change
These fixes reduce first-load-time of both Edit Symbol and Place Symbol
by about 2/3, and second-load-time of Edit Symbol to near-instantaneous.
This is the last of the object save/load code that was not moved into
the SCH_LEGACY_PLUGIN object. All schematic and library I/O is now
performed in the SCH_LEGACY_PLUGIN object and as been removed from the
schematic and library objects.
The old single symbol file format has been replaced with the normal
symbol library file format since there was no difference between them
except the SYMBOL token. The SYMBOL token was no longer being read
since the introduction of the SCH_LEGACY_PLUGIN symbol library loader.
Update the Doxygen comments in all of the modified files.
- pad names are stored as wxString instead of a char[4] & integer union
- removed pad name to string conversion functions
- fixed pad & pin properties dialog restrictions regarding the name
length
eeschema now supports arbitrary colors for all object types, and
pcbnew does in GAL canvas. When switching from GAL to legacy canvas,
pcbnew will convert colors to the nearest legacy color.
* When multiple pins are in the same position and one is not connected,
show connection indicator correctly.
* LIB_PIN::IsVisible should be a const method so it can be called on
DANGLING_END_ITEM children without having to discard const.
* Test the (!IsVisible() && GetType() == PIN_POWER_IN) condition in a method
LIB_PIN::IsPowerConnection to avoid duplicating that condition if the test
needs to be performed in more than one place. (e.g. dunderheads like myself
might forget about the necessary GetType() == PIN_POWER_IN and just check
visibility.)
* Coding style fix: break a couple lines that were above the 99-column maximum.
* Add and/or improve Doxygen comments on SCH_COMPONENT::IsPinDanglingStateChanged
and SCH_COMPONENT::IsDanglingStateChanged.