VIEW::GetBoundary() returns the entire view area, not the visible area.
Surprisingly, we had no API for this, so I added one.
Also, changed the dragger behavior to toggle between optimizing just the
modified area and optimizing the visible area, i.e. we will now never
optimize off-screen portions of the dragged track.
CHANGED: The interactive router settings now include a switch to
enable or disable optimization of the entire dragged track,
which is now disabled by default. When enabled, the router
will reroute the entire track (from the dragged segment to
the closest pad/via in each direction) to be more optimal.
When disabled, only the area around the dragged segment
will be modified.
CHANGED: The "optimizer effort" slider is removed from the interactive
router settings dialog, as this setting did not have any
meaningful impact in most cases and was a source of confusion.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5918
Options that do not have code implementing them are now hidden from the
user so that they are not searching for ways to enable the greyed out
options. Similarly, when selecting a routing option that disables
free-mode, we show the effect of disabling the mode in the dialog.
Improve dialog layout and fix UI policy issues with all of the dialog
boxes in the Gerbview and Pcbnew code paths.
Updated the use of component to footprint where appropriate.