311 Commits

Author SHA1 Message Date
John Beard c4c19018c3 Pcbnew: Restrict includes of pad.h/footprint.h
There are some headers which don't need to include pad.h (which brings
padstack.h) - they just need forward defines.

While pad.h is not an especially heavy include on the scale of things,
footprint is quite heavy. And both reduce inclusion load and
reduce the number of files needlessly sensitive to changes in headers.
2026-03-05 02:18:34 +08:00
Seth Hillbrand 37cbfbdaaa Fix build warnings
So. many. build warnings. :)  Ran multiple times with clang and gcc to
try to get them all
2026-03-02 13:28:48 -08:00
Seth Hillbrand 381559def0 Add separate User Layer Names preferences panel
This creates a new panel under Footprint Editor preferences that
contains the user layer count dropdown and the named layers grid.

The user layer count setting now controls how many unnamed user layers
appear in the footprint editor. Setting it to zero hides all unnamed
user layers unless they are used by the loaded footprint or have been
given a custom name.
2026-01-26 17:15:14 -08:00
Seth Hillbrand 88aa527e1e Fix case-insensitive and lib-prefixed footprint filter matching
The KIFACE footprint filtering function now correctly matches filters
using the same pattern as FOOTPRINT_FILTER. Patterns and footprint
names are lowercased for case-insensitive comparison. Filters
containing a colon (e.g., Resistor_SMD:R_*) now include the library
nickname in the match string, allowing library-scoped filtering to
work correctly.
2026-01-23 09:17:35 -08:00
Seth Hillbrand 55036f9921 Replace GFootprintList with KIWAY-based filter
The symbol chooser's footprint dropdown now fetches filtered results from
pcbnew via KIWAY instead of requiring direct access to FOOTPRINT_LIST.
Filter criteria (pin count, footprint patterns) are serialized as JSON,
sent to pcbnew, and matching footprints are returned as a JSON array.

The filtering uses preloaded footprints from the adapter rather than
re-reading from disk, which eliminates the main performance bottleneck
when selecting symbols.
2026-01-23 08:44:31 -08:00
Seth Hillbrand 764cfdd3ba Remove fp-info-cache and simplify footprint library loading
Tree adapters now call GetFootprints() directly instead of going through
GFootprintList and its cache file. FOOTPRINT implements LIB_TREE_ITEM so
footprint objects work directly in library tree displays similar to
LIB_SYMBOL.

Removed cache read/write calls from files.cpp, footprint_edit_frame.cpp,
and pcb_base_edit_frame.cpp. The footprint chooser uses AsyncLoad() and
BlockUntilLoaded() to ensure libraries are ready before building trees.

GFootprintList still exists for cvpcb and eeschema cross-module access
via KIWAY, but no longer reads or writes cache files.
2026-01-23 08:44:31 -08:00
Seth Hillbrand e342c6eef1 Fix race condition in footprint library preloading
Do the same thing for footprint libraries that we did for symbol
libraries in 9c0e406e94.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/22481
2026-01-19 08:16:32 -08:00
Seth Hillbrand 7ce777c1ba One more try at fixing standalone assertion
Need to abort the pcb editor preload task as well.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/22697
2026-01-13 16:50:19 -08:00
Seth Hillbrand 9b9899979b Stop showing popup for library load errors
Errors are stored to a vector for display after clicking the warning
icon in the toolbar.
2025-12-31 13:15:06 -08:00
Jeff Young ba3e35b13e Protect toolbar controls from improper contexts. 2025-12-30 13:26:20 +00:00
Jon Evans a9bd653253 Avoid crash when switching projects during background load 2025-12-22 11:42:36 -05:00
Jeff Young ec8547ad2c Re-enable library table saving in project Save As...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22482
2025-12-08 20:54:07 +00:00
Jeff Young 666e7f5bc5 More flexible (and correct) version of CopySexprFile(),
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21738
2025-12-04 14:22:09 +00:00
Jeff Young da1a3a944e Update sheetfiles and instance projects in Save As.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21738
2025-12-04 10:59:11 +00:00
Jon Evans 7527a1154a ADDED: background loading of footprints 2025-11-04 06:54:53 -05:00
Jon Evans baa29c1a58 Port footprint library table to new system 2025-11-04 06:54:53 -05:00
Jon Evans 266c8c8754 Refactor and consolidate startup wizard
- Add welcome page
- Add settings migration
- Add library table configuration
- Combine sentry and updates into a privacy step
- Support in single-top mode
2025-10-15 22:18:52 -04:00
Marek Roszko d2f927dd7e ADDED: Central startup wizard to prompt for initial settings 2025-10-15 22:18:52 -04:00
Seth Hillbrand 7f46f2a8d1 Remove unused variables 2025-07-27 17:23:53 -07:00
Jeff Young 0464cc18b1 Progress reporting for Run Jobs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19629
2025-06-28 16:23:34 -06:00
Jeff Young 18e107529a Don't force callers of GetAppSettings to implement exception processing. 2025-06-14 20:25:59 +01:00
Jeff Young 9a7b82a8c0 MOVED: fp editor layer names to Display Options.
(It was on Footprint Defaults, which didn't make
any sense.  Probably just ended up there because
there was similar code there.)

Also fixed a bug with accepting the dialog with
a grid cell editor open.

Also fixed a bug where the number of copper layers
would get set back to 2.

Also fixed a bug where the layer names weren't
getting updated in the Appearances tab.
2025-03-25 10:34:01 +00:00
Jeff Young f951497a4f Code brevity. 2025-03-01 21:58:31 +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 ab114c4159 Put preferences panes for toolbars, but hide behind an advanced config
There is still more work to do to make this feature actually
user-friendly and make it so people can't break their UI config too
easily.
2025-02-28 01:57:37 +00:00
Jeff Young 8874f137fa Read hotkeys from disk after they change.
(Otherwise we'll write the old versions back out
when closing one app.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19612
2025-02-01 20:01:13 +00:00
Ian McInerney 6be3401b92 Add more global extensions and switch archiver to use them 2025-01-05 21:59:53 +00: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
John Beard 9d7d6eae10 FP-edit: split fields and graphics default settings
This prevents the dialog growing too much and going off a
smaller screen. It's also more consistent split to match
Pcbnew, which has the same graphical items settings and
allows more granular resetting and avoids confusing settings
that only apply to new footprints with settings that apply
to items with in a footprint.

Resetting is also then more granular, so you can reset text item
defaults without, say, also resetting your default line widths.
2024-12-24 20:38:34 +08:00
Marek Roszko 62ec7e2d6d Add the ability to capture job reporting and display it in the result window 2024-12-23 23:05:37 -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
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
Marek Roszko 83ef5fd7d6 Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
Marek Roszko 6a37f99e94 Fix crash if we exit lib table setup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16917
2024-02-11 21:05:23 -05:00
Jeff Young 7cc663ad77 Schematic parity checking for CLI DRC. 2024-02-02 23:05:37 +00:00
Marek Roszko 9a890cdba9 Kick the wildcards and file exts into a static class, export it from kicommon 2023-12-27 21:10:01 -05:00
Jeff Young f7420bc820 Separate Footprint Editor's sketch modes from PCB Editor's.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15345
2023-10-26 10:59:26 +01:00
Jeff Young fc4bc10d27 Separate out axes definitions between ModEdit and PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5711
2023-10-25 15:01:36 +01:00
Jeff Young 1047130046 Push most of footprint chooser into PANEL_FOOTPRINT_CHOOSER.
Create 2 wrappers for it: DIALOG_FOOTPRINT_CHOOSER and
FOOTPRINT_CHOOSER_FRAME.  The first now gets called from wxGrid
editors, text button editors (such as Change Footprints), etc.

Retire FOOTPRINT_VIEWER_FRAME_MODAL.  FOOTPRINT_VIEWER_FRAME still
exists, but has very few uses at this point.
2023-09-27 16:02:13 +01:00
Marek Roszko bd3aca2887 Cleanup the kiface dll export declaration slightly
Why in the bloody world would you pass in the return type as part of the macro for export/import preprocessing
2023-09-08 20:44:08 -04:00
Marek Roszko b566f994bb Flip the RegisterSettings order to avoid legacy import crashes
(cherry picked from commit 32c2135047)
2023-09-05 03:23:07 +00:00
Marek Roszko a2522a2230 Don't call .Load() and cause settings to reload from disk
RegisterSettings can load the new settings json as added by not turning off the load now parameter
2023-09-04 22:42:00 -04:00
Jeff Young fe0fb92441 Reduce visual clutter in GAL display options. 2023-09-04 13:06:46 +01:00
Jeff Young e6b0a6abca ADDED: lib tree previews.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2418
2023-09-02 23:30:22 +01:00
Jeff Young 4fefd95e0c Move grid definitions to Prefs and grid origin to a separate dlg.
Grid origin is document-wide, while grid definitions are app-wide.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2262
2023-08-26 13:32:24 +01:00
Jeff Young 0c37e3c443 Remove realistic-mode (and duplicated settings from preferences).
Most of these settings are now available in the appearances panel.
It was concluded in a Zulip discussion that any missing items can
be added back in time if people find they need them (ie: complain).

Also hooks up 3DViewer to the common language framework.
2023-08-23 14:07:58 +01:00
Marek Roszko 5d001d4858 ADDED: ERC over cli....mostly 2023-08-13 20:31:19 -04:00
jean-pierre charras 1094cc5331 Fix issues related to the splash screen when no config file found:
- do not show it before the application is actually started.
- hide the splash screen before displaying dialogs.
Fixes #15047
https://gitlab.com/kicad/code/kicad/-/issues/15047
2023-06-24 18:09:43 +02:00
Roberto Fernandez Bautista 3f758711fd Use external REPORTER for EESCHEMA_JOBS_HANDLER / PCB_JOBS_HANDLER 2023-06-10 23:35:32 +02:00
Seth Hillbrand 32d17547e5 Fixup settings loading
Settings loading needs to account for potential chaining, so each
instance should be created before being Load()ed.  Additionally, add the
settings loading to QA
2023-04-18 16:00:31 -07:00