The new connectivity algorithm had a tendency to cleanup
globally, but that could insert undo records from other sheets
into the current screen's undo stack. Needless to say, this
was a recipie for segfaults.
Fixes: lp:1846247
* https://bugs.launchpad.net/kicad/+bug/1846247
When checking for 3 or more connections, at least one of them must be
a pin. Otherwise we need to fall down to the next check which also
ensures that at least one of them is not parallel.
Fixes: lp:1841458
* https://bugs.launchpad.net/kicad/+bug/1841458
When removing a junction, we need to keep the next pointer for deleted
item, marking them with a flag until committed.
Fixes: lp:1837398
* https://bugs.launchpad.net/kicad/+bug/1837398
(cherry picked from commit 4363e6a213)
When loading a new file, we do not want to add junctions where they did
not exist before. This could generate invalid netlists by breaking a
wire at a pin connection point.
We do break/add connections when the user modifies the schematic but
this happens while the user is actively working with the component and
sees the action.
Fixes: lp:1830411
* https://bugs.launchpad.net/kicad/+bug/1830411
The break wire command is actually two commands: modify the existing
wire and add a new wire. This means that the command must append to the
previous commit to avoid breaking the undo stack
Fixes: lp:1824251
* https://bugs.launchpad.net/kicad/+bug/1824251
The wire image undo/redo option required special handling and was only
used in a single location. Replacing with single change handling
reduces the code complexity
Don't prepend "/" for nets at the top level
Revert "Don't prepend "/" for nets at the top level"
This reverts commit fa9533222f7d33eee5f3fa2320bd9f3167e28076.
Bus upgrades: core new connectivity code
Bus upgrades: eeschema integration and modifications
Bus upgrades: eeschema dialogs
Bus upgrades: netlist export
Bus upgrades: file format changes
Somewhere during v5 rc cycle, the trimming of wires laid over simple
components was removed. The wires were still removed as soon as the
user moved the component again. This corrects the first behavior to
intended action for simple components.
Fixes: lp:1794019
* https://bugs.launchpad.net/kicad/+bug/1794019
(cherry picked from commit 9831a14ef3)
This adds a set of conditions that will prevent a wire from being
automatically trimmed. Wires that are currently being moved or are
newly created or are explicitly avoided will not be removed. This also
adds a function to set a flag on items in a block.
Fixes: lp:1744632
* https://bugs.launchpad.net/kicad/+bug/1744632
Schematic cleanup only makes sense after the libraries are fully updated
and loaded. Before pin caching, this was a minor difference but once we
needed to update pin caches, schematic cleanup can remove junctions from
pin-wire connections incorrectly.
Instead, we use the global OpenProjectFiles() schematic cleanup call to
be sufficient and not call a second time, prior to all libraries being
rescued and loaded.
Fixes: lp:1743148
* https://bugs.launchpad.net/kicad/+bug/1743148
Allows buses to acquire junctions based on their connections. Buses
can only have junctions with other buses. Also allows buses to be
draggable junctions for collections
CHANGE: In Eeschema, when placing a component directly over an existing
wire, the wire is automatically removed where it shorted pins.
This helps workflow in Eeschema, allowing one to quickly add components
to existing lines.
Fixes: lp:1678449
* https://bugs.launchpad.net/kicad/+bug/1678449
BreakSegment now breaks a known segment and BreakSegments
breaks all segments. This allows functions to break a
segment without needing to iterate through the whole list.