Makes all canvases obey the same rendering parameter. Also keeps the
canvas selection with the anti-alias selection, which makes logical
sense. Reduce the antialias selection to a single choice rather than
two different choices for different canvases
There are enough cases of problematic OpenGL implementations to need a
way to avoid calling OpenGL in the first place. This provides a
temporary method for people experiencing crashing KiCad or starting
KiCad over a remote terminal to temporarily enforce software rendering
ViewGetLayers returns the item layer even if it is invalid. We filter
this out at the base and skip items that cannot be displayed in the
view.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21368
Instead of iterating through the segment list each time, we use a kdTree
structure to efficiently query a 2d point cloud for the nearest
neighbors
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21352
We now allow the user to specify which in the
New Library dialog.
Also retires the "Export power symbols too" dialog.
Also gives a bunch of file and library dialogs
more explicit titles.
Also removes separate code-paths for Export to
Library and Export to New Library. The regular
code path has a "New Library..." button now.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16323
This still leaves a few things out in the cold,
such as hit-testing and polygon generation.
But at least it allows us to plot with a default
font.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19031
WALKAROUND::singlestep is used by both shove and walkaround modes and
can bog down when applied to clusters with many objects. In these
cases, we are unlikely to find a viable solution and it is beter to
allow the user to find a different ending position
(cherry picked from commit d9cfb94281)
After forcing the locale-specific read/writes out of our IO, we can
remove the global LOCALE_IO calls in many places.
Still to do: exporters, pcm, specctra, settings, drawing sheets,
plotters
Use only C-locale functions wxString::ToCDouble and fmt::format{}
functions so that we do not need to set the locale for file io
operations
This also introduces a cmake check that looks for certain banned
functions (strtod, strtof and atof) that convert strings into doubles
by the user locale or formatting specifiers like %f/%g that convert
doubles into strings by the users locale. It will prevent compilation
in this case.
For the limited cases where we want to show the user a string in their
locale, we have an override string "format:allow" that can be added to
lines in order to allow them with %f/%g format specifiers