getPageNumber is actually asking for the parent path rather than the
sheet path itself. Without this, we don't match the cached page number
and instead match against the virtual page number that is position
dependent
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21296
(cherry picked from commit 8edc7b8b40)
We implemented the intermediate temporary file in order to avoid issues
during save. Unfortunately, this is heavily system-dependent and seems
to cause problems with unusual setups. Now that we cache writing using
the prettifier, the errors during output will not affect the existing
file
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21330
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)
When editing using synchronized pins mode, you place a pin on all units
but if you already have a pin that only exists on one unit, you might
get a confusing error. This helps nudge people with to to resolve it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18466
After placing a zone, we want to be able to immediately edit the zone
points. But in the zone tool, we have the intermediate context menu
that doesn't help, so breaking back to the selection tool simplifies
that workflow
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21319
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
This will also handle the case when more than two items are subtracted,
e.g. many small items witrhin one larger item. Again, thanks to
Kliment for a smart idea!