1) Intermediate states might be self-intersecting, and we shouldn't
be policing our users on what order to do things in
2) The polygon might already be self-intersecting, at which point we're
preventing the user from fixing it.
Also includes better const management for SHAPE_POLY_SET API.
Fixes: lp:1833831
* https://bugs.launchpad.net/kicad/+bug/1833831
(cherry picked from commit a3c74051c2)
The returns of KiCad file extensions on GTK contain basic regex matching
case-insensitive file extensions. We need to match these in the
provider and tests
(cherry picked from commit 1956c074ba)
This adds the upper-case version of files names to the selection box for
filesystems that support case-sensitive file names.
Fixes: lp:1832853
* https://bugs.launchpad.net/kicad/+bug/1832853
(cherry picked from commit 36f70704eb)
1) Generate refreshPreview events so the modern toolset doesn't
fall behind by one event (see LP:1818667)
2) In the legacy toolset don't call unimplemented routines and don't
snap to grid on the non-movement axis.
wxWidgets sends the KillFocus event before the Cancel button event,
and it sets the receiving-focus window pointer to NULL (so you can't
even check for it being the Cancel button. Last time around (with
the UNIT_BINDER) I also tried a bunch of hacks for whether the window
pointer is NULL, etc., but they aren't discriminatory either.
Fixes: lp:1834975
* https://bugs.launchpad.net/kicad/+bug/1834975
Fixes: lp:1834966
* https://bugs.launchpad.net/kicad/+bug/1834966
(cherry picked from commit 1c30f3d9a9)
More than that just gets annoying, and there is at least one edge case
which throws us into an infinite loop if we don't have something to
break us out.
Fixes: lp:1834966
* https://bugs.launchpad.net/kicad/+bug/1834966
(cherry picked from commit 29db6152b3)
When approximating arcs for polygons, we should allow for large radius
arcs/circles without coarsening the arc beyond a limit. This is a
5.1.x-only patch to address this issue. It should not be picked to
master as this is already addressed separately by max_error
We do not allow non-copper routed tracks and they will break assumptions
elsewhere in the code. We drop them in the beginning so that they are
not saved.
Oblong holes (slots) use now a aperture attribute similar to round holes.
(The previous attribute "slot" is now deprecated)
However they have a specific aperture, and a comment is added in drill files for these apertures.
Prevent the symbol and footprint library table editors from substituting
the current project path (${KIPRJMOD}) when adding libraries to the global
library table. This will almost assuredly fail when opening a different
project. We still allow users to manually use ${KIPRJMOD} in global table
paths under the assumption that if they are typing this in then they most
likely understand environment variable substitution.
Fixes lp:1830694
https://bugs.launchpad.net/kicad/+bug/1830694
(cherry picked from commit 288982b15d)
Footprint library nicknames are case sensitive but the comparison for
the library tree control was case insensitive.
Also make the footprint name comparisons case sensitive as well. While
not strictly necessary, the plan is to start using the name defined in
the footprint file instead of the file name which will allow for case
sensitivity.
Fixes lp:1833701
https://bugs.launchpad.net/kicad/+bug/1833701
Non-copper zones do not have a fillet/chamfer option, so we need to
clear it before the zone tool uses the last-used option.
Fixes: lp:1833672
* https://bugs.launchpad.net/kicad/+bug/1833672
The previous commit missed a case where the number was so large that it
overflowed the integer invalidating the comparison. This protects
against that case by using floating point comparison.
This checks the movement against a maximum value that would place the
selection outside of the valid area for the footprint or board.
Fixes: lp:1833478
* https://bugs.launchpad.net/kicad/+bug/1833478
Custom pads are referenced to the anchor pad 0-point, so flipping the
polygon should be about 0 and not the flip point.
Fixes: lp:1831311
* https://bugs.launchpad.net/kicad/+bug/1831311
DIALOG_EXIT was not being laid out correctly after setting the dialog
message. Rather than fix our custom DIALOG_EXIT, wxMessageDialog and
wxRichMessageDialog were substituted as direct replacements for all
of the variants of DIALOG_EXIT. This make message dialogs appear more
consistent because wxMessageDialog uses the default platform message
dialog and wxRichMessageDialog uses the default platform rich message
dialog on windows.
Remove DIALOG_EXIT_BASE as it is no longer required.
Fixes lp:1832899
https://bugs.launchpad.net/kicad/+bug/1832899
(cherry picked from commit 3f665318f4ab5c02b7d3c29b5233a273fdac2e4e)
Create a new action in pcbnew, gerbview and the footprint viewer/
editor to display the help documentation. Disconnect the wxID_HELP
event from the window so that it no longer conflicts with the zoom
action.
Fixes: lp:1822041
* https://bugs.launchpad.net/kicad/+bug/1822041
Mouse capture end is called by some actions such as save board. This
resets the cursor image but doesn't change the current tool. Resetting
the cursor image during action prevents this.
This standardizes the import vector graphics file dialog to use the
sbSizer titles instead of bold+lines. Tooltip changes will be in the
next change as we don't change strings for bugfix releases and this
commit is targeted for 5.1.3
Fixes: lp:1823462
* https://bugs.launchpad.net/kicad/+bug/1823462
(cherry picked from commit f7550940ee)
We prevent the creation of invalid polygons by keeping the converging
lines from intersecting. This test doesn't make sense for triangular
polygons as they always intersect and we want to allow them to move
outside of the singular point.
Fixes: lp:1831481
* https://bugs.launchpad.net/kicad/+bug/1831481