Comment 49 for bug 594073

Revision history for this message
jean-pierre charras (jp-charras) wrote :

In DisplayCurrentSheet, SchematicCleanUp is called only once, the first time the sch_screen is displayed, so the undo list is empty.

EndSegment saves the old wire list in undo list before calling SchematicCleanUp.

Calling SchematicCleanUp in AddNoConnect without saving the old wiring is suspicious. Could be a bug.

Calling SchematicCleanUp before building the netlist is mainly made to avoid very rare corner cases taht can create unexpected connections.
From my point of view, calling SchematicCleanUp is not mandatory to highlight a connection.
(Remenber SchematicCleanUp is called when editing wires, so it is frequently called on connection change)

There is still the case of not yet annotated components.
This is the major issue.
One cannot annotate new components during the creation of a schematic at any time without creating serious issues (Especially with multiple units per package components and/or inside a hierarchy)
Most of time the annotation will be no suitable (for instance a not wanted selection of units)
For me, the best way is to *temporary* use (only for highlight purpose) the full time stamp as replacement of the the standard reference for these components (including multiple units per package components, without changing the unit selection)
Perhaps (just an idea) this temporary reference could be build and stored in the pin NETLIST_OBJECT (for highlight purpose only).

I don't think we can always easily use the time stamp instead of the reference to build a netlist (especially fo pcbnew) because for multiple units per package components there are many time stamps (one by unit) for only one reference (one footprint).
And grouping the pins by package can be made only when the reference is known.