Commit Graph

223 Commits

Author SHA1 Message Date
Seth Hillbrand 26f0c03e61 ADDED: support for 45 degree crosshairs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6047
2025-08-23 06:20:00 -07:00
Jeff Young d5f16adde1 ADDED: maintenance page to preferences. 2025-08-15 16:57:46 +01:00
Seth Hillbrand 0a5de5010f ADDED: Spacemouse support for Linux
Uses libspnav to handle spacemouse data.  Overlays on existing
spacemouse framework to handle view activation

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16133
2025-08-12 07:04:54 -07:00
Seth Hillbrand a7e6fa8198 Allow panning with selectable key
Add optins to mouse dialog to allow modifier key-based mouse movement
panning

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2492
2025-08-11 13:21:22 -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
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
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
Jeff Young e1a6261df5 Fix one more missing addParamsForWindow(). 2025-07-17 16:50:35 +01: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
jean-pierre charras 5d8c8b9c54 pcbnew, appearance control: add entry to enable/disable LAYER_BOARD_OUTLINE_AREA 2025-06-19 18:42:03 +02:00
Jeff Young 18e107529a Don't force callers of GetAppSettings to implement exception processing. 2025-06-14 20:25:59 +01:00
Jeff Young 96fa79cef2 Minor performance optimizations. 2025-06-03 11:41:27 +01:00
Mark Roszko 9d32d208b8 Fix project lock both working and not working.
Turns out project locks would get created and only stick around for a short duration as the default move constructor was letting the og object free the lock.
But if you crashed kicad or managed something weird, you can get a lock file with no override prompt which also creates confusion as some stuff gets set read only.

So lets just fix this up.

- Implement move constructor on lockfile so that the old object will no longer free the lockfile
- Move lock ownership to the project itself, just slightly less weird to handle for the lock override
- Implement the override lock prompt
2025-06-01 20:20:49 -04:00
Mike Williams 9ca881112b design blocks: as place as group functionality to schematic 2025-05-06 11:29:42 -04:00
John Beard ff31b88857 Pcbnew: add keep-radius arc-edit mode
This is (now) fairly easy to slot into the PCB point editor
framework.

In this mode, the endpoints adjust only the endpoints on the existing
radius. Radius can ve changed with the midpoint point. The center
point moves the arc, as in the "keep center/adjust radius and angle"
mode.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15661
2025-05-01 22:07:46 +08:00
JamesJCode eb17ebee4e Implement time-domain length tuning
- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
   - Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints
2025-04-17 21:46:56 +01:00
Jeff Young 8b19777d5d Revert part of name change that affects settings files. 2025-04-13 21:09:07 +01:00
Jeff Young ecb5c5e0d4 Visibility control is for *filled* shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20635
2025-04-13 13:12:43 +01:00
Jeff Young 98ec2d7ba2 ADDED: metadata searching.
Symbol and footprint search panels can now optionally
search library links, descriptions and keywords.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10602
2025-04-09 17:46:07 +01:00
Jeff Young 3def4afaec ADDED: menu item to control searching of hidden fields.
Applies to both PCBNew & Eeschema search panels.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20370
2025-04-07 17:00:48 +01:00
Alex Shvartzkop 82f94e9185 Improve GetAppSettings performance.
There's no need to construct a wxString first.

(cherry picked from commit a6d81d019f)
2025-04-04 23:28:02 +03:00
Jeff Young da05ad93ac Fix being able to delete custom layer names.
(Or anything in a PARAM_MAP, but layer names appear
to be the only current use of it.)
2025-03-25 18:06:00 +00:00
Seth Hillbrand f83e607e6e Enable/disable git tracking in user prefs
Don't require advanced config for people who want to disable
2025-03-24 11:52:50 -07:00
Mike Williams e11cf94a3e design blocks: add PCB design blocks behind advanced config
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/2508
2025-03-20 15:13:52 -04:00
Seth Hillbrand 4b07565d35 Remove debug printing 2025-03-06 08:13:57 -08:00
Ian McInerney e202b00a74 Rework the toolbar settings storage and panel
This format is more extendable in the future, should separator and
spacer support be added to groups.

Also, this now has a working UI for modifying the toolbars.
2025-02-28 02:05:50 +00:00
Ian McInerney 85810510f4 Tweak toolbar settings a bit
* Manage the settings using the settings manager for better lifetimes
* Better architect the internals and JSON to make it easier to identify
  the various tool types
2025-02-28 01:57:37 +00:00
Ian McInerney caa03ab59e Add setting for custom toolbar and read custom toolbar config 2025-02-28 01:57:37 +00:00
Ian McInerney 7e2a81da15 Initial JSON work 2025-02-28 01:57:37 +00:00
Ian McInerney 784246575b Move footprint viewer/cvpcb actions to tool framework 2025-02-28 01:57:37 +00:00
Ian McInerney 7ad1103f55 Move toolbars to a serializable storage format 2025-02-28 01:57:37 +00:00
Ian McInerney df15db3236 Initial toolbar reconfigurability settings 2025-02-28 01:57:37 +00:00
Jon Evans 5426bfcdcd Don't autosave future formats of project settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19910

(cherry picked from commit 7d689e0c61)
2025-02-10 19:20:56 -05:00
Jon Evans 42b9a9604b Fix several data races triggered by parallel library loading 2025-01-25 11:44:15 -05:00
Jeff Young 60c2469c75 Don't use dynamic_cast across compile boundaries.
(Especially not after we've already tested the
filenames explicitly so that we don't have to.)
2025-01-24 16:54:52 +00:00
Jon Evans c6d8f4a62e Fix wiping out non-controlled GAL layer visibility
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19544
2025-01-10 08:37:11 -05:00
Jon Evans 96f87b5b83 Move layer presets to use named render layers
Add a migration to account for KiCad 8 render
layer id numbers

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18718
2025-01-08 00:15:56 -05:00
Wayne Stambaugh 89db935910 Housekeeping in include path sub-folders. 2025-01-04 09:21:11 -05:00
Seth Hillbrand 0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Jon Evans 9eda526871 API: Show API actions alongside SWIG action plugins in preferences 2024-12-14 18:00:07 -05:00
Jeff Young 753d385473 Reduce dependency on dynamic_cast.
Also switches to checking __clang__ instead of __WXMAC__.
2024-12-08 21:46:54 +00:00
Jon Evans 09652efec5 Clear unknown keys from environment variable maps on save
Also fix the previous code for clearing unknown keys to use
a JSON pointer so that it functions correctly when the JSON path
is more than one level deep.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18734
2024-11-02 14:53:39 -04:00
Seth Hillbrand e54cf6c834 Remember the size/pos of the new proj from template
Stores the new project window position and size in the KiCad prefrences
for use between sessions

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12920
2024-11-01 15:49:52 -07:00
John Beard 277b963fac Search pane: add zoom to fit option in a settings menu button
Includes zoom to selection, and pan to selection (which
centres the result but doesn't change the zoom).

I'm not sure this is the perfect solution to search pane
settings, but it's near to the action, but not taking up
too much space, doesn't need to open a modal to mess
with it, and has room for more options in future.

I haven't made toggling these options into full-blown
TOOL_ACTIONs, but they could be if a hotkey to toggle
these is desirable - it's an ACTION_MENU, so it should
just slot in..

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16192
2024-11-02 03:11:17 +08:00
Jon Evans eb6d85bacf Use a persistent flag to track JSON modifications 2024-10-31 17:39:03 -04:00
John Beard a56da89bb8 JSON_SETTINGS constness
The Load and MatchesFile methods never change the aSettings parameter.

They also immediately dereference the pointer unchecked, so make it a
ref so that the client code (single call site) becomes formally
responsible for never passing a nullptr.
2024-10-10 12:33:52 +08:00
Marek Roszko d74caace0a Initial jobset creation and running within the CLI and GUI.
Incomplete, just pushing this before feature freeze, much fixing left
2024-09-30 20:04:53 -04:00
John Beard 215533f31a Unify flip direction handling
There was a gentle mish-mash of booleans, some with
true being left/right and some up/down, and some functions that
can flip in both axes (which is never actually done, and doesn't
really make geometric sense).

Replace all this with the FLIP_DIRECTION enum class, which makes
the intention completely unambiguous.

This also then allows a small scattering of simplifications,
because everything takes the same type and you don't have to
fiddle booleans to fit.
2024-09-27 17:13:13 +01:00
Astropeak 3066ad2088 Pcbnew: make 'Flip board items' option more clear
CHANGED: The 'Filp board items' checkbox in the 'PCB Editing Options'
was changed to a radio box.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16652
2024-09-27 17:13:13 +01:00
Mike Williams 53022ab347 mouse settings: add reverse zoom option
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18583
2024-09-23 17:09:44 +00:00