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.
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
The various wxCHECKs in the SCH_PIN object where being raised inside
the SCH_SYMBOL object which would also raise it's own wxCHECK that
would cause a recursion guard failure and segfault. The offending
wxCHECKs were replaced with null pointer checks. Missing library
symbol links will be shown with the missing library symbol.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17146
Manually cherry picked from cf71e5707e66d0775e1590a151898b2d905c4aab
I don't think this was the original intent, but the
GUI for setting the flag leaked out via the
properties inspector so it kind of needs to work.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18760
The sheet list is returned as a copy of the cached list rather than a
reference to prevent external code from changing the list. While not as
performant, it eliminates the risk of the sheet list being altered in
ways that could break the schematic. The sheet list should only be
updated by calling SCHEMATIC::RefreshHierarchy() when any appropriate
sheet changes are made.
Note to developers: there is something inherently different about how the
QA tests are loading and handling schematics versus the schematic editor.
Using the cached sheet list for the SCHEMATIC object will cause some QA
test to fail. This is why SCHEMATIC::Hierarchy() has not replaced
SCHEMATIC::BuildSheetListSortedByPageNumbers() everywhere.
- Adds Component Class field to SCH_DIRECTIVE_LABEL
- Adds SCH_SYMBOLs to SCH_RULE_AREA item lists
- SCH_SYMBOLs resolve Component Class directives
- Netlist exporter / importer handles Component Class names
- Adds DRC expressions and functions
- Adds QA check for component class netlist export
Also removes the Exclude from Simulation property from
the list of things we sync. Someone may not want to sim
a triode's heaters unit, for instance.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18415
If the field text is ${FIELD}, then we want to avoid the obvious loop.
This doesn't stop a larger loop FIELD1->FIELD2->FIELD1 but that will be
caught by the depth count.
They are particularly damaging when our event loop
gets tied up in knots with the log message window
behind a modal window -- thereby locking up KiCad.