Rather than selecting an arbitrary track to snap, we select the closest
track to our point, allowing the via to be placed along the full track
length.
Fixes: lp:1813324
* https://bugs.launchpad.net/kicad/+bug/1813324
Prior to placing the via, we check if the resulting via will pass too
close to different nets on different layers.
Fixes: lp:1718827
* https://bugs.launchpad.net/kicad/+bug/1718827
When creating the zone cutout, we delete the old zone and add a new one
with each cutout. This requires resetting the source zone and clearing
our previous selection if we would like to continue using the cutout
tool on the new zone.
Fixes: lp:1812339
* https://bugs.launchpad.net/kicad/+bug/1812339
Graphic lines and polygons are drawn to fit specific areas for which it
is helpful to have the endpoint controlled by the cursor even when
constraining the angle.
Fixes: lp:1805502
* https://bugs.launchpad.net/kicad/+bug/1805502
* Do not compile dxf old files.
* import gfx, gal mode: make absolute placement working.
* Import gfx in legacy canvas: use it and make interactive placement working
* Take imported line width in account. Ensure DXF line thickness is OK.
* handling empty files in legacy mode.
When we draw a path, we usually want to close the path when clicking on
the end of another line. This uses grid helper to ensure this
progression happens as expected.
Refactor the polygon event loop into its parent function to allow access
to the params structure. Active layer now updates the drawing layer for
add/cutout zones.
Fixes: lp:1797483
* https://bugs.launchpad.net/kicad/+bug/1797483
Get the board settings when changing the drawing layer. These include
default line thickness that should be updated.
Fixes: lp:1796489
* https://bugs.launchpad.net/kicad/+bug/1796489
When drawing the crosshair should track the element while the mouse
provides the position to calculate the next snap.
Fixes: lp:1796524
* https://bugs.launchpad.net/kicad/+bug/1796524
When drawing segments, the segment will be NULL'd after committing, at
which point we lost our snap layer. Choosing snap layers from the
current drawing layer is a more robust method.
Fixes: lp:1796467
* https://bugs.launchpad.net/kicad/+bug/1796467
Since we are handling snapping in the grid helper, we don't need to
enable it in the cursor position return. This allows the grid helper to
use the frame position while optionally snapping to segments.
This ensures that when starting to draw a zone or graphic element, the
preview is drawn in the same color/on the same layer as the element that
will be created. Previously, beginning a graphic polygon while a copper
layer was active would result in the preview being drawn in the color of
the active copper layer.
Also fixes some interactivity issues in the microwave tools around
single-click tools that have initial properties dialogs. Those
need to act kind of like a hybrid between single-click and two-click
tools.
Fixes: lp:1751381
* https://bugs.launchpad.net/kicad/+bug/1751381
This introduces a new util function in geometry_utils which snaps a vector
to axes or 45 degree lines. This can be used whenever you want to
snap a vector to these angles, but still want it to stay on a grid.
This snapping is used for the dimension tool and the ruler tool.
This is substantially simpler for two-point tools that the method
used by the line tool, which uses DIRECTION_45.
Fixes: lp:1780826
https://bugs.launchpad.net/kicad/+bug/1780826
Circles are defined by center and a point on their edge. This requires
the user to do extra math to figure out the size of the circle. The
patch allows the user to edit and draw circles using radial coordinates.
This allows the user to selectively disable the snap-to behavior when
placing stand-alone vias. Full solution will require an update to the
segment distance calculation that takes into account the rounded line
caps.
Fixes: lp:1769523
* https://bugs.launchpad.net/kicad/+bug/1769523