Jon Evans
48e4005111
Fix diff pair router checking of min clearance
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13720
3 years ago
Jeff Young
8268234aa1
Reverse shown-source logic so we report if it's the netclass width.
(whether or not it's *also* the previous track width).
3 years ago
Mike Williams
a76a4f9788
Router: don't unnecessarily change track widths on layer change
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13546
3 years ago
Tomasz Wlostowski
65def26b4d
router: follow up ROUTER::GetUpdatedItems() API changes in the ROUTER_TOOL
3 years ago
Jeff Young
4c63b4e061
Class name <-> file name sync.
3 years ago
Jon Evans
ee0a41e3bc
Remove excess calls to SelectedItemsModified
We really don't want to post these events unless the *selected* items
were actually modified, since it results in a redraw of the properties
panel (which disturbs edit state and causes flicker on MSW).
Now the COMMIT system is responsible for sending this event iff the
commit touches items that are selected.
Side note: UpdateMsgPanel is useless on every app except pl_editor, so
it can probably be refactored/removed at some point.
3 years ago
Alex
008704fc6f
router: Allow highlighting both DP nets when routing.
3 years ago
Jon Evans
7a9467b0d5
Get rid of some gcc warnings
3 years ago
Jeff Young
226529235c
Mostly const safety, but also performance opt. by avoiding shared_ptr overhead.
3 years ago
Tomasz Wlostowski
24c271d508
router: GetUpdatedItems() now returns an unique_ptr to the temporary NODE so that the items it owns do not get deleted upon return from the method
3 years ago
Jeff Young
9724f6e736
Don't allow zone filling during other editing operations.
It's a very heavy op, and is likely to violate all manner of
assumptions the other ops make.
Fixes https://gitlab.com/kicad/code/kicad/issues/12736
3 years ago
Tomasz Wlostowski
65507e7186
router: extend dump format to support automatic regressions tests of interactive routing scenarios
3 years ago
Jeff Young
01b4c20c94
Router only owns message panel when routing.
Also fixes a pair of copy/paste error not caught earlier.
Fixes https://gitlab.com/kicad/code/kicad/issues/12780
3 years ago
Jeff Young
6fd195c389
Use comma to separate diff pair nets/netclassse rather than /.
("/" is problematic because it's more likely to appear in netnames.)
Fixes https://gitlab.com/kicad/code/kicad/issues/12592
3 years ago
Jeff Young
e3842514e7
Move courtyard collision setting to preferences.
Also cleans up PCBNew/FPEditor edit options panel to be more in sync
with each other.
3 years ago
Jeff Young
413fd82813
Re-entrancy guard for router tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/12604
3 years ago
Jeff Young
6357c83a8c
Debug code to try and catch Undo/SyncWorld mismatch.
Fixes https://gitlab.com/kicad/code/kicad/issues/12640
3 years ago
Jeff Young
07d9671126
Repair unbalanced UndoRedoBlock call.
3 years ago
Jeff Young
b01bf081d8
Cleanup.
3 years ago
Jeff Young
de5980b92e
Share more of the courtyard collision highlighting code.
3 years ago
Jeff Young
11dc5424cb
Pull interactive courtyard checker out of move tool to share with router.
Fixes https://gitlab.com/kicad/code/kicad/issues/12594
3 years ago
Jeff Young
bc58480e24
Missed some other uses of m_startItem in previous commit.
Fixes https://gitlab.com/kicad/code/kicad/issues/12592
3 years ago
Jeff Young
cbb997a3b5
Use GetCurrentNets(), not m_startItem for message panel updates.
Fixes https://gitlab.com/kicad/code/kicad/issues/12592
3 years ago
Jeff Young
40ad5b6de3
Broaden reset-sizes-after-layer-switch algorithm.
Fixes https://gitlab.com/kicad/code/kicad/issues/12576
3 years ago
Jeff Young
d8a3ba7917
Update router sizes when switching layers.
We may have layer-specific rules involved. Note that at some point
we also need to do something similar on every "fix route" step to
handle area-specific rules.
Fixes https://gitlab.com/kicad/code/kicad/issues/12576
3 years ago
Jeff Young
7be05e9eb1
Make sure we have nets before grabbing the first.
Fixes https://gitlab.com/kicad/code/kicad/issues/12554
3 years ago
Mike Williams
ba6afafc86
Router Tool: get rid of getNearestRatnestAnchor
Unused now that the PNS Router handles the actions that needed it.
3 years ago
Mike Williams
6252840abd
PNS/Router Tool: Refactor Continue From End
3 years ago
Mike Williams
1be0deb58f
PNS/Router Tool: Refactor Finish Route
3 years ago
Ian McInerney
1683e552f7
Add/fix some variable initializations
3 years ago
Ian McInerney
fdb97a46c1
Don't copy items in for loops when not needed
3 years ago
Mike Williams
9304607624
TOOL_EVENT: make command string non-optional
We're getting segfaults in places where this isn't checked. Also, add
some asserts so we can catch bad tool push/pop.
Removes all uses of GetCommandStr() and makes it private.
3 years ago
Jeff Young
45d6b4a9fc
Readability improvements.
3 years ago
Mark Roszko
b00178adb3
Nuke base_units from orbit
3 years ago
Mike Williams
1a023f5dd0
PCB Editor: (Auto)Route Selected (From Other End)
3x Selection-Based Routing Tools. Takes a selection of routable objects
and routes them one at a time individually, with an attempted finish, or
from the other end, depending on the action given.
3 years ago
Mike Williams
dc20e24c4a
Route Other End: Perform Steps in one Undo Commit
3 years ago
Alex
cc4e34ef49
Don't sync the world twice in inline router tools.
Activate() already clears and syncs the world via PNS::TOOL_BASE::Reset,
so there's no need to sync in InlineDrag and InlineBreakTrack.
3 years ago
Mike Williams
fa3e9efdce
PCB Router: return to original active layer after routing
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12313
3 years ago
Mike Williams
68f71e4a62
PCB Router: Pressing V again can untoggle Via
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12315
3 years ago
Jeff Young
c30a557810
ADDED netclass assignment from PCB canvas.
Fixes https://gitlab.com/kicad/code/kicad/issues/5975
3 years ago
Seth Hillbrand
b736460e71
Move optional access from value() to *operator
`value()` throws. Where we check for existence, we don't need to use
the throwing version and should just use the unprotected variant
3 years ago
Seth Hillbrand
91fbb5c957
Don't prevent immediate actions while router active
Immediate actions that can take place are useful. We should only be
preventing immediate actions while actively routing or dragging
Fixes https://gitlab.com/kicad/code/kicad/issues/12311
3 years ago
Seth Hillbrand
f1261e71d4
Replace boost::optional with std::optional
3 years ago
Jeff Young
aa2ad3b44c
Move KICAD_T[] to std::initializer_list<KICAD_T>.
3 years ago
Mike Williams
f06e28b7a7
PCB: Finish Route, Route From End
Adds restart routing from other ratsnest' end and automatically finish
routing.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5051
3 years ago
Jeff Young
a9536b5de9
CHANGED netclass assignments now done via canvas or via patterns.
3 years ago
Seth Hillbrand
a9a5136c1c
Always allow blind/buried/micro vias
Removes a nanny setting that prevented the use of
blind/buried/micro-vias without a checkbox. If the designer does not
want microvias in their board, they simply do not place microvias.
3 years ago
Jeff Young
e122dc38bd
Add context menu item for clearing net highlighting.
In selection tools, drawing tools, router tool, line_wire_bus tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/11920
3 years ago
Tomasz Wlostowski
0bd7f603a3
router: consider mouse drag event a valid route start/end event
L-clicks during routing operation while the mouse is moving (even slightly) were ignored, which was annoying to some users (myself included). Now the router
always fixes the track upon mouse click.
3 years ago
Tomasz Wlostowski
eaee610fd9
router: save project settings together with the debug log
3 years ago