10877 Commits

Author SHA1 Message Date
Jeff Young
e230d5164d Honour renderSettings' default font.
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
2025-07-17 09:35:21 +01:00
Seth Hillbrand
1066595a2c Add wallclock timeout to PNS walkaround
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 d9cfb942812a57238d5ed6bbaa2c1d22a8676071)
2025-07-15 15:24:36 -07:00
Seth Hillbrand
ab5aa661e9 Fix a few more stagglers for floating point
Update banned functions to better catch these

- page size
- erc/drc reports
- x/y position files
- color alpha
- footprint reports
- specctra
2025-07-15 13:27:45 -07:00
Seth Hillbrand
9cb3a37b6f Prevent command line applications handling dark mode
Double-check before getting background color from invalid m_parent also

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21317
2025-07-15 08:56:51 -07:00
Jeff Young
6541202d42 Repair COMMON_TOOLS to know about frame-specific WINDOW_SETTINGS
Remove the older architectures for ensuring non-empty
grids and zooms

Move new architecture to PARAM_LIST::Load,
and add zoom support

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21318
2025-07-15 15:24:11 +01:00
Seth Hillbrand
6cd076eed4 Blast quite a bit of LOCALE_IO into the sun
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
2025-07-14 15:30:42 -07:00
Seth Hillbrand
55da0e46af Remove locale-specific floating point from io
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
2025-07-14 14:26:00 -07:00
Seth Hillbrand
60822714de Prevent mutex deadlock
Load calls migrate so they don't both need locks
2025-07-14 14:22:46 -07:00
Jeff Young
28da0d3e1e Attempt to fix non-Mac builds. 2025-07-14 20:47:51 +01:00
Jeff Young
0c220d1a8c Move CURL shutting-down flag to std::atomic.
Also removes lock from KICAD_CURL::Init(), which
leaves us open to multiple parallel Init()'s, but
it's not clear that happens.
2025-07-14 19:16:31 +01:00
Jeff Young
f7e85a7b20 Improved thread safety. 2025-07-14 13:17:53 +01:00
Jeff Young
1b21b880e6 Thread safety. 2025-07-14 13:17:53 +01:00
Jeff Young
a1c26e4516 Thread safety. 2025-07-14 13:17:53 +01:00
Jeff Young
f0909e125e Thread safety. 2025-07-14 13:17:53 +01:00
Jeff Young
da57c4aa74 Formatting. 2025-07-14 13:17:53 +01:00
Jeff Young
4bc0651a3e Better debugging. 2025-07-14 13:17:53 +01:00
Jeff Young
a7e2878e6b Kicad SEXPR should no longer need LOCALE_IO. 2025-07-14 13:17:53 +01:00
Jeff Young
d3046e6aee Don't steal unrelated timer events (potentially KICAD-XJN). 2025-07-13 16:30:03 +01:00
Jeff Young
68d4940087 Thread-safety (potentially KICAD-VMX...)
... KICAD-6PV, KICAD-82, KICAD-R3A, and others.
2025-07-13 15:25:10 +01:00
Jeff Young
f0c3f469a1 Quiet wxWidgets assert (KICAD-HRE). 2025-07-13 15:25:10 +01:00
Jeff Young
2d2ba268ae Quiet wxWidgets assert (KICAD-XJ2). 2025-07-13 15:25:10 +01:00
Jeff Young
eb877a2fb4 Don't presume a selection. 2025-07-12 16:49:17 +01:00
Jeff Young
66921b5026 Fix copy/pastas. 2025-07-12 16:39:40 +01:00
Jeff Young
c09fc59ba5 It's too late to flag these at render time.
(And we don't control what kind of nonsense fonts
have either.)
2025-07-12 16:08:45 +01:00
Jeff Young
be1e79ccd8 Debugging. 2025-07-12 15:46:07 +01:00
Jeff Young
4d7cbed3a9 Remove over-zealous assert (KICAD-SJZ).
Items can be deleted more than once (for instance, a
global deletion of all zone will still try to
clean-up teardrops at the end, deleting them a
second time).
2025-07-12 15:26:30 +01:00
Jeff Young
68109fc0a9 Don't try to write to non-editable combobox (KICAD-6JS). 2025-07-12 09:14:39 +01:00
Jeff Young
34367020c4 Don't presume a selection (potentially KICAD-8VP). 2025-07-11 21:26:19 +01:00
Jeff Young
5b91a24380 Retire WINDOW_FREEZER in favour of wxWindowUpdateLocker.
Also pulls out previous fix to a Sentry issue I can
no longer find, at least until I figure out what
went wrong.
2025-07-11 13:21:04 +01:00
Jeff Young
53c90b0469 Upgrade ShowPlayer re-entrancy guard (KICAD-XAC). 2025-07-10 17:54:42 +01:00
Jeff Young
f097fbdfcc Multithreaded safety. (KICAD-T5A) 2025-07-09 13:05:22 +01:00
Mark Roszko
49db4df92d Add a -n arg for "new instance" to kicad.exe for use with the relaunch command 2025-07-08 23:17:46 -04:00
Mark Roszko
572d394be7 Fix shift+middle click on windows no longer working
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21267
2025-07-08 23:17:46 -04:00
Jeff Young
479daa37c5 Shutdown safety. (Potentially KICAD-TJK.) 2025-07-08 18:05:34 +01:00
Jeff Young
30adcaa390 Don't attempt to update status bar while closing (KICAD-506). 2025-07-08 10:44:40 +01:00
Jeff Young
f0972a8667 More protection for stale wxDataView items. 2025-07-08 10:23:40 +01:00
Jeff Young
d3b293ee42 Cleanup. 2025-07-08 09:42:19 +01:00
Mark Roszko
5b599213f6 Unbind the onsize event from the parent while destructing the child
Fixes KICAD-RJA
2025-07-07 20:58:40 -04:00
Mark Roszko
c29ca703c7 Remove accidental change 2025-07-06 11:12:19 -04:00
Mark Roszko
1ab8a5944b Add tiny test for IsCopperLayerLowerThan 2025-07-06 11:10:39 -04:00
Jeff Young
09e5afbe67 Don't ask for a string param from a frame_t event. (KICAD-THA) 2025-07-05 12:02:36 -06:00
Jeff Young
275ff1cb4e Clear seleciton before removing rows. (KICAD-BER). 2025-07-05 12:02:36 -06:00
Mark Roszko
69e2c55291 Fix crash because the infobar button doesn't have a window yet (because the infobar was not shown yet on Windows), fixes sentry KICAD-X9Z 2025-07-05 13:48:09 -04:00
Mark Roszko
b07fdd0e37 Add some variables to ctor initializer list for CONSTRUCTION_MANAGER
m_batchesMutex in particular needs to be ready before accptConstructionItems is called

Sentry KICAD-TYJ
2025-07-05 11:32:13 -04:00
Jeff Young
0730a0bc86 Formatting. 2025-07-04 22:13:49 -06:00
Jeff Young
82d4ab5094 Don't assume a string (KICAD-8QP). 2025-07-04 13:20:41 -06:00
Jeff Young
da9544dfd1 Attempt to patch SWIG for VIEW_ITEM::GetClass(). 2025-07-04 10:00:50 -06:00
Jeff Young
0375985d58 Debugging for removing items not in the view. 2025-07-03 20:45:11 -06:00
Jeff Young
4d06fbce1a Assert when nested_settings is null. 2025-07-03 17:12:17 -06:00
Jeff Young
fde693ebe1 Don't overflow trying to draw ticks on ruler (KICAD-9HV). 2025-07-03 16:34:21 -06:00