choose ResolveExcludedFromBOM() over GetExcludedFromBOM() to test refs
for exclusion from BOM in order to honor a rule area's "exclude from
BOM" flag for all refs inside that area.
closes#23411.
Restructure the attribute creation logic in GetAttr to properly handle
the combination of URL editor cells and variant highlighting. The
previous code had issues where it would modify the shared URL editor
attribute or fail to properly merge column attributes in some cases.
The new approach collects the needed attributes first, then creates
the appropriate attribute object based on what is needed. This ensures
URL editor attributes are cloned before modification and column
attributes like checkbox renderers are preserved for variant-highlighted
cells.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22856
When viewing a variant in the Symbol Fields Table or BOM Generator, cells
with variant-specific attribute values (DNP, Exclude from BOM, etc.) were
displaying raw "0" or "1" strings instead of checkboxes.
Now the custom attribute properly merges with column attributes, preserving
the renderer while still applying the variant highlight background color.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22819
When deleting a field in the Symbol Fields Table, the underlying data
model column was removed but the grid was never notified of the change.
This caused the grid to have a stale view with more columns than the
data model actually had, resulting in field corruption where the next
field would appear to "merge" and become uneditable.
Added wxGRIDTABLE_NOTIFY_COLS_DELETED notification in RemoveColumn() to
properly sync the grid state after column removal.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22406
In the symbol fields table, we can't rely on the UUID being unique
across sheets. So, we need to keep the full path as our key to unique
symbols
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21998
This also necessitates showing the Symbol Name in
a column, as the Value will show "<-- mixed -->"
when multiple values are selected. (And, in some
cases the symbol name and the value are not the
same.)
Please do not attempt to use this yet as it is a work in progress. Given
large number of merge conflicts, I pushed this partial commit to save time
rebasing.
All of the user interface is hidden behind the "EnableVariantUI" advanced
configuration flag until variants are ready.
1) Moved view controls list to a wx_grid.
2) Allow show/hide of columns in view controls.
3) Allow editing of BOM Names in grid without long-click on Mac.
3) Added column show/hide states and sash pos to prefs.
4) Decreased mininum sash pane width to allow wider main grid.
5) Simplified presentation by moving "include" and "cross-probe"
settings to config menu.
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