787 Commits

Author SHA1 Message Date
Jeff Young
60b4202766 CHANGED: Rework lock overrides architecture.
We now use a checkbox in the aux toolbar rather
than a query dialog (with "remember setting" checkbox).
2025-08-13 10:30:26 +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
Jeff Young
38023a33b2 Give some more dialogs separate hashkeys for separate usages. 2025-08-11 17:19:12 +01:00
dsa-t
6eb68aaf6e Revert "Fix copy-pasta in common PCH command (-5.4% time on MSVC/Debug)"
This reverts commit af8491e788323bfc3316001730d88c364ef2a665
2025-08-04 08:16:41 +03:00
Alex Shvartzkop
af8491e788 Fix copy-pasta in common PCH command (-5.4% time on MSVC/Debug) 2025-08-04 08:02:05 +03: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
Seth Hillbrand
f2b6ac5d18 Refactor git calls into their own namespace 2025-07-31 08:32:07 -07:00
Seth Hillbrand
5b3d4fc91d Put PCH behind a cmake flag
Allows developers to turn it off if they don't like/don't want it
2025-07-30 17:04:06 -07:00
Seth Hillbrand
2aad11e3e7 Refactor some git routines into utility class 2025-07-30 16:59:41 -07:00
Seth Hillbrand
53f8ccef22 Suppress warnings in MSVC/gcc 2025-07-26 16:57:04 -07:00
Seth Hillbrand
42ed78cf69 Fix PCB for gcc 2025-07-26 16:40:40 -07:00
Seth Hillbrand
267b21d81c Added precompiled header support
- PCBNew
- Schematic Editor
- Common libs
2025-07-26 15:33:42 -07:00
Seth Hillbrand
4dab336f95 One more pass at optimizing the board outline gen
Instead of iterating through the segment list each time, we use a kdTree
structure to efficiently query a 2d point cloud for the nearest
neighbors

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21352
2025-07-22 12:49:13 -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
jean-pierre charras
ea12df80be make board area colored (from Ethan Chien) 2025-06-19 18:26:39 +02:00
Marek Roszko
a5e4ed38a3 Move most of the sentry logic to a class inside the APP_MONITOR namespace 2025-06-07 14:55:07 -04:00
Marek Roszko
3c76e042e2 Start a central space to manage sentry things without exposing sentry everywhere 2025-06-06 23:00:25 -04:00
Jeff Young
8dadbc1c5c Insert a cover for wxBitmapCombobox.
(This will allow us to hack-fix wxWidgets' bug
for determining the height when fonts are scaled.
This commit includes such a fix, but I have no
idea if this particular one will work or not.)
2025-05-29 11:45:02 +01:00
Jeff Young
c452fe9686 REMOVED: HPGL plotting.
Its sketch-mode greatly complicates the plotting
code and it is poorly maintained due to lack of
use.
2025-05-10 17:31:59 +01:00
John Beard
4c8b971021 Eeschema: Symbol editor: pin table CSV interchange
This adds the ability to export the pin table content to a CSV file
or the clipboard as CSV, then re-import it from CSV or TSV. This allows:

* to round-trip pin table data via a spreadsheet program, so that the pin
  data can be manipulated in a richer/more familiar editing environment
* an import method to bring in tabular pin data from other formats
  "semi-automatically", without having to write a full-blown symbol generator.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19207
2025-05-03 23:22:35 +08:00
Salvador E. Tropea
c528f3c605 Add HPGL job support
- kicad-cli pcb export hpgl
- "Export HPGL" job
2025-04-28 23:05:45 +00:00
JamesJCode
aac9731852 Refactor PCB calcs to common library, and add coupled stripline
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16863
2025-04-25 23:27:52 +01:00
Salvador E. Tropea
a590d28c8e ADDED: Postscript job support 2025-04-23 13:41:00 +00:00
Seth Hillbrand
e75076ab41 Revert "Replace glew with epoxy"
This reverts merge request !2217
2025-04-22 15:16:58 -07:00
Michal Suchánek
0c36e16292 Replace glew with epoxy
Glew has the problem that it has to be selected at build time if GLX or
EGL is supported by the library, and this in not encoded in the library
name, nor ABI, nor anything.

Then it's easy to get into the situation that a binary is built but
cannot run because glew supports an API different from the one used by
wxWidgets, or the binary fails to link in the end after all objects are
compiled.

epoxy can support both with the same library avoiding this problem.

epoxy is not initialized explicitly, replaced initialization with
version check where one was not done already.

It seems to be available as vcpkg https://vcpkg.link/ports/libepoxy

There are problems related to GL context switching on Windows which does
not seem to be used in kicad
https://github.com/anholt/libepoxy#known-issues-when-running-on-windows
There is also a problem related to multithreaded rendering on Windows
https://github.com/anholt/libepoxy/pull/265 It's harder to tell if
threading is used for rendering but it does not look like kicad is doing
anything complex enough to warrant using multiple rendering threads.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20630
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12543
2025-04-22 12:54:39 -07: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
Mike Williams
0c0dbc6271 groups: commonize group tool 2025-04-15 09:59:38 -04:00
Mike Williams
05e9772d54 groups: extract common class methods into EDA_GROUP base class 2025-04-01 14:34:20 -04:00
Wayne Stambaugh
2b0d082df5 Move all PAD object methods to into PAD object source file.
No functional changes.  Just make it easier to find all of the PAD object
methods.
2025-03-30 11:35:06 -04:00
JamesJCode
906c24bc6d Unify length calculation between router, board / frame, and DRC 2025-03-30 09:18:41 +01:00
Jeff Young
0d6838b803 Add support for mixed-state checkboxes in grids.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17730
2025-03-21 13:49:07 +00: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
JamesJCode
ede5faee72 Implement dynamic assignment of component classes 2025-03-15 14:33:47 +00:00
Ian McInerney
e53c155b8c Initial dialog work 2025-02-28 01:57:37 +00:00
Ian McInerney
7e2a81da15 Initial JSON work 2025-02-28 01:57:37 +00:00
Connor Goss
5a5759c41a Add IPC-D-356 Export to kicad-cli
ADDED: Added IPC-D-356 exporting to kicad-cli.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13951
2025-02-22 21:00:54 +00:00
jean-pierre charras
8a5b71a01b Print dlgs: add panel printer to select the current printer. Windows only
Other platforms show the available printers in print dialog.
2025-02-20 17:04:47 +01:00
Ian McInerney
a6fffb15ff Forgot to remove the file from CMake... whoops. 2025-02-07 14:13:06 +00:00
jean-pierre charras
69c6412b43 Revert "fix commit 4ef2853a on non Windows platforms"
This reverts commit e587e5029c487e69222f6bf545a0ad0f07e0f210.

Revert "Print dlgs: add panel printer to select the current printer. Windows only"

This reverts commit 4ef2853ae51afa028350c0c42ee01286837e5178.
2025-02-06 14:27:30 +01:00
jean-pierre charras
4ef2853ae5 Print dlgs: add panel printer to select the current printer. Windows only
Other platforms natively show the available printers.
2025-02-06 12:29:18 +01:00
Jeff Young
a7c130b82d Hook up TITLE_BLOCK resolver to jobs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19471
2025-01-12 22:31:09 +00:00
Marek Roszko
1ebcd24944 Forward declarations are your friends
Why leak gl headers into most of kicad
2025-01-09 09:03:08 -08:00
Seth Hillbrand
d48c40ba26 Move GL_CONTEXT_MANAGER to kicommon 2025-01-09 09:03:08 -08:00
Seth Hillbrand
452e69de85 Move thread pool into true singleton
Thread pool needs to be stored in a single location for all of KiCad
otherwise each kiface will spin up its own pool of persistent threads
2025-01-09 09:03:08 -08: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
Jon Evans
3f7e459d62 API: add a schema for plugin config files
Also flip the dependence between json_schema_validator and kicommon,
and create a shared JSON_SCHEMA_VALIDATOR so that we don't have to
copy/paste the schema loading code as much
2025-01-05 17:08:33 -05:00
Marek Roszko
1a0427a375 Add initial but not yet working correctly copy files job 2025-01-01 23:57:46 -05:00
John Beard
e9f8b2ba77 Pcbnew: apply same IPC rule in properties panel as in dialog
This means when you switch a pad to be roundable (round rect or
chamfered-with-round), you get the same behaviour as in the dialog
(and an IPC-compliant pad by default).

Also fixes the radius visibility in the properties panel for
chamfered pads (which can have radii).
2025-01-02 00:42:31 +08:00
Marek Roszko
6c43c25b4c Move two things to kicommon 2025-01-01 00:14:34 -05:00
Marek Roszko
9fb8de959c Fix windows builds broken by 8aa0b3e16cd8f18db404e3909624c0ff09670a95 2024-12-31 15:41:05 -05:00