We want to look for a junction before merging two touching colinear
segments, but the old code would also check for a junction when
merging two overlapping segments, which is not what you want.
Fixes https://gitlab.com/kicad/code/kicad/issues/5960
When running the cleanup routine, we should check that we haven't
changed our lines during the process. If we have, we run again to pick
up the new merges
Fixes https://gitlab.com/kicad/code/kicad/issues/5265
This moves EESchema DLIST structures to rtree. These changes are more
fundamental than the pcbnew changes from 9163ac543888c01d11d1877d7c1
and 961b22d60 as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
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