7265 Commits

Author SHA1 Message Date
Seth Hillbrand
29eee9f126 Refactor grid_helper to allow testing
Make view and tool manager optional so that we can implement QA on the
actual snapping
2025-08-05 16:10:17 -07:00
Seth Hillbrand
416e54f0d5 Update template selector to modern webview
Allow more attractive templates.  Start of building singular
template+new project layout

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15987
2025-08-04 22:20:54 -07:00
Seth Hillbrand
321b5793a2 Add some QA tests
Created basic tests for:
- Notification Manager
- Clipboard
- File history
- Filename Resolver
- Hotkey store
- Collector
- Reporters
2025-08-04 11:36:43 -07:00
Jeff Young
ea84879b06 Allow deletion of nested embedded files.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20581
2025-08-04 19:11:59 +01:00
Jeff Young
7240128130 Formatting. 2025-08-04 19:11:59 +01:00
Seth Hillbrand
50c7aff3ff Simplify KiROUND using std::llround/clamp
Removes the bespoke rounding in favor of std::llround and std::clamp
routines
2025-08-04 09:26:25 -07:00
Seth Hillbrand
4aa2047f45 Replace alg::delete and alg::delete_if with std c++20 2025-08-04 09:03:16 -07:00
Seth Hillbrand
e379e91081 Store hierarchy expansion/collapse state
Defaults to fully expanded but stores the names for nodes that are
collapsed in project local settings.  Because project local settings are
generally changed by modifying views or selection filters, these should
be saved on close rather than only when the project is saved

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19276
2025-08-04 08:34:09 -07:00
Seth Hillbrand
bf16dcfbe8 Make all windows remember their preferences
Hook into DIALOG_SHIM to remember stylistic preferences for windows such
as position, size, sash position, notebook selection, etc.

Dialogs and controls can opt out of this by setting a client data user
property "persist" to false.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19992

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10756

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21108
2025-08-03 20:22:30 -07:00
Seth Hillbrand
11d0bb466b ADDED: PROPERTY_HOLDER class
Useful for attaching arbitrary properties to userdata
2025-08-03 20:22:30 -07:00
Jeff Young
34e075e112 Rework libtree SearchTerms to honour shownColumns.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21419
2025-08-03 20:32:19 +01:00
Seth Hillbrand
558627289b Add WebView widget for future use
This is mostly for testing Thunderdome but we will be using this for
future template rendering as well
2025-08-03 12:28:43 -07:00
Wayne Stambaugh
b76ef4e239 Fix broken GCC build. 2025-08-02 17:57:55 -04:00
Jeff Young
5accdc2d94 Move search handlers to std::shared_ptr. 2025-08-02 22:04:53 +01:00
Jeff Young
a75fd2bb23 See if copying netclasses is responsible for KICAD-V6Z (and others). 2025-08-02 22:04:53 +01:00
Jeff Young
8c85cd43f3 Copy c'tor / operator= safety.
Also fixes a memory leak of search pane handlers.
2025-08-02 22:04:53 +01:00
Jeff Young
b0663d84cb ADDED: Paste tabular contents to parent table.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21109
2025-07-31 14:15:13 +01:00
Jeff Young
325570eeec Coverity tweaks. 2025-07-28 19:37:52 +01:00
Jeff Young
59caea4344 Shutdown safety (KICAD-N5Y). 2025-07-28 19:37:52 +01:00
Seth Hillbrand
66f37beff7 Move canvas selection to common
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
2025-07-27 20:22:59 -07:00
Seth Hillbrand
7f46f2a8d1 Remove unused variables 2025-07-27 17:23:53 -07:00
Jeff Young
a191d4e6e5 Handle undo when changing new item before placing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21391
2025-07-27 15:56:16 +01:00
Jeff Young
1b8119056f More code sharing. 2025-07-26 21:24:37 +01:00
Jeff Young
2dfacd648f Share more code. 2025-07-25 18:03:49 +01:00
Seth Hillbrand
322c08d5f0 Pass hotkeys from search pane to frame
If the search pane doesn't handle the key, push it through the frame
hotkey handling system

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12474
2025-07-24 13:14:31 -07:00
Seth Hillbrand
e064a3481d Add Rule Area selection filter in schematic editor
Allows rule areas to be ungrouped from the "Other Items" when selecting
2025-07-24 11:03:38 -07:00
Jeff Young
14c9ed1fda Prevent stale selection when deleting grid rows. 2025-07-24 18:16:21 +01:00
Seth Hillbrand
094870e7a4 String fixes
- Clarify wording in a couple places
- Fix missing 'not' and remove non-standard dashes
- Standardize on single-quote for strings in strings
2025-07-23 17:36:51 -07:00
Jeff Young
8c72711662 Increase contrast on grid origin over grid.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13532
2025-07-24 00:11:27 +01:00
Seth Hillbrand
e387953490 ADDED refdes tracker
Provide an option to track ever reference designator ever used in the
project to prevent its reuse even if the component has been removed

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13052
2025-07-23 14:28:33 -07:00
Jeff Young
ec155c00f3 Comboboxes for units and body styles.
Also for pin-types in pad properties.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19904

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19905
2025-07-23 14:35:37 +01:00
Jeff Young
9d074c1679 See if we can't fix the ever-growing window bug.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20120

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18543

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10609
2025-07-21 17:24:29 +01:00
Jeff Young
55a36c1ce7 CHANGED: retire the select-lib-table dialogs.
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
2025-07-20 19:06:40 +01:00
Seth Hillbrand
53b659dadc Update languages
Allow translators to view their work in the master branch
2025-07-18 08:08:33 -07:00
Jeff Young
e1a6261df5 Fix one more missing addParamsForWindow(). 2025-07-17 16:50:35 +01:00
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
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
Jeff Young
a7e2878e6b Kicad SEXPR should no longer need LOCALE_IO. 2025-07-14 13:17:53 +01:00
Jeff Young
273ca3de77 Re-entrancy guard for sym/fp change timers.
(Potentially KICAD-XJN.)
2025-07-13 16:39:50 +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
f097fbdfcc Multithreaded safety. (KICAD-T5A) 2025-07-09 13:05:22 +01:00
Jeff Young
e0351b60b2 No point-editor support for rotated tablecells. (KICAD-RN8) 2025-07-08 18:05:34 +01:00
Jeff Young
479daa37c5 Shutdown safety. (Potentially KICAD-TJK.) 2025-07-08 18:05:34 +01:00
Jeff Young
f0972a8667 More protection for stale wxDataView items. 2025-07-08 10:23:40 +01:00
Jeff Young
69b23df4c3 Make sure we don't end up with stale picker handlers (lots of Sentry tickets). 2025-07-04 12:10:59 -06:00
Jeff Young
0375985d58 Debugging for removing items not in the view. 2025-07-03 20:45:11 -06:00
Jeff Young
880ff60416 Attempt to circumvent GetValue() getting called when there's no wxDataViewItem. 2025-07-02 23:10:10 -06:00
Jeff Young
01a8d44bce Further simplify scoring logic.
Do away with special cases for showing.
Do away with resetting the score separately.
All methods are subtractive (logical AND).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21220
2025-07-01 11:03:53 -06:00