Alex Shvartzkop
865e3a9f3c
Improvements when working closer to 32-bit integer limits.
...
- Changes BOX2 size to extended coordinates.
- Adds BOX2ISafe to construct a BOX2I that will fit in int32.
- Adds more checks.
- Safer computations.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17670
2024-04-23 16:34:07 +00:00
Jeff Young
e8be782687
Mostly clean-up, but also bug fixes with bounding boxes.
2024-04-22 11:16:14 +01:00
Alex Shvartzkop
2babd574be
Refactor autosave prefix into FILEEXT.
2024-04-22 04:06:04 +03:00
Alex Shvartzkop
c68e3ceb44
ADDED: Export inner PCB copper layers to STEP / BREP / GLTF.
...
Also adds options to exclude board body and components.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16855
2024-04-22 03:39:46 +03:00
Alex Shvartzkop
41c4bd58ba
Fix warnings.
2024-04-20 20:09:17 +03:00
Jeff Young
95136494b3
RIP LIB_PIN.
2024-04-20 12:10:31 +01:00
Seth Hillbrand
3435c6ebee
Prevent double-entry into footprint load
...
Avoids double-clicking on the footprint library symbol crashing due to
overwriting the global footprint table by multiple instances
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17040
2024-04-19 17:21:18 -07:00
Seth Hillbrand
abd0388794
Remove trailing zeros from all values
...
If we are showing a value to the end user, we should avoid unneeded
precision
2024-04-18 18:21:13 -07:00
Seth Hillbrand
d8b6e28890
Excise the remaining unused ifdef EESCHEMA
...
Common units are now shared between programs, so we need a different way
other than compile definitions to choose how many digits to display.
2024-04-18 18:21:13 -07:00
Alex Shvartzkop
cd2925d3d7
ADDED: Fuse Shapes option for STEP/BREP/GLTF export.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17777
2024-04-19 03:43:26 +03:00
Seth Hillbrand
2ca8abd7f1
Add locale information to the Version Info
2024-04-18 12:41:31 -07:00
Seth Hillbrand
d2701323a8
Don't sort on lost references
...
The arraystring reference is lost when we don't keep the wxFileName
variable in scope.
This also adds removing invalid paths and checking for correct version
before sorting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17749
2024-04-17 11:35:50 -07:00
Wayne Stambaugh
d79619edd1
Minor net navigator improvements.
...
Ignore bus member connection subgraphs. They do not have a valid net
name nor do they contain schematic items. This prevents empty nodes
from being added to the tree. They can be reintroduced in the future
if someone wants to pursue it.
Freeze the wxTreeCtrl while populating it and thaw when done to prevent
any unnecessary repainting.
Add profiling to test how long it takes to rebuild the net navigator.
The recently added populate the navigator with all nets when no net
is highlighted has exposed some potential performances issues with some
versions of wxWidgets on certain platforms. Namely wxWidgets 3.2.4 on
Linux GTK.
Fix an issue where a sheet name change would not update the highlighted
net navigator resulting in a stale human readable sheet path.
Prevent the highlighted net navigator from being rebuilt twice when
loading a schematic. SCH_EDIT_FRAME::RefreshNetNavigator() was being
called from both SCH_EDIT_FRAME::UpdateHierarchyNavigator() and
SCH_EDIT_FRAME::RecalculateConnectivity().
Add a new trace helper "KICAD_UI_PROFILE" to show trace output when
profiling user interface performance. It's used in the net navigator
profiling mentioned above.
Reuse PROF_TIMER::Show() to generate string for PROF_TIMER::to_string().
2024-04-17 14:31:50 -04:00
Alex Shvartzkop
d98d7f9017
ADDED: Support 3D shape export in BREP format.
...
BREP doesn't support colors or label names,
but is much faster to write/read compared to STEP.
2024-04-17 17:31:10 +03:00
Jeff Young
d761b4f22f
RIP LIB_TEXTBOX and LIB_SHAPE.
2024-04-16 16:31:16 +01:00
Jeff Young
3efe504dcc
Collapse LIB_TEXT into SCH_TEXT.
2024-04-16 16:31:16 +01:00
aris-kimi
66bb49e2da
Silence some GCC warnings
2024-04-16 11:11:50 +00:00
Mike Williams
ea904c9fb1
Symbol Fields Table: configurable excluded from BOM filtering
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17747
2024-04-15 13:08:04 -04:00
Marek Roszko
2a3b597ab9
Strip out no longer needed links on the top executables
...
Not needed due to kicommon
2024-04-14 07:52:02 -04:00
Alex Shvartzkop
ab531a33d9
Tweak GRID_CELL_STC_EDITOR offset on GTK.
2024-04-14 01:19:55 +03:00
Alex Shvartzkop
affcfed677
Fix some warnings.
2024-04-14 01:19:39 +03:00
Alex Shvartzkop
76b7cdd128
Improve grid cell editors appearance.
2024-04-13 23:26:01 +03:00
Marek Roszko
d7685a40ee
More lambda updates to explicit capture
2024-04-13 15:09:34 -04:00
Marek Roszko
c1afade6f9
Silence the assert in NUMERIC_EVALUATOR on windows due to unicode
...
The reality is we parsing potentially unicode strings, char by char with the ascii functions like isdigit.
It's kind of broken already but at least I can make the assert go away lol
2024-04-13 15:05:09 -04:00
Jon Evans
02ec894b83
Remove LIB types from API for now
...
All with the possible exception of LIB_SYMBOL are going away
2024-04-13 15:03:34 -04:00
Jeff Young
d77eae3e7e
Collapse LIB_FIELD into SCH_FIELD.
2024-04-13 15:42:13 +01:00
Marek Roszko
aa8f449d48
Remove extraneous struct keyword
2024-04-13 09:56:25 -04:00
Marek Roszko
0ce227fa92
Can't use forward declare with std::vector
...
Not allowed per C++ standard
See https://github.com/llvm/llvm-project/issues/57700
2024-04-13 08:22:20 -04:00
Marek Roszko
89dd8e1166
Move the PARAM_LIST<> specializations for BOM to bom_settings
2024-04-13 07:59:25 -04:00
Marek Roszko
b2115445cc
Make screenCenter a VECTOR2D for now to silence c++ 20 build error
2024-04-12 21:55:19 -04:00
Alex Shvartzkop
1516aaf163
Improve custom grid cell editors' margins on MSW.
2024-04-13 03:54:04 +03:00
Alex Shvartzkop
aa51cc5167
Remove macOS size tweak in custom grid cell editors.
...
Since the text field now has the no-border flag, it shouldn't be needed.
2024-04-13 03:54:04 +03:00
Marek Roszko
953c285ff0
fmt::format wants an actual constexpr format string under c++20
2024-04-12 20:04:52 -04:00
Marek Roszko
9e3865ed01
Remove wchar mixed into ostream output
2024-04-12 20:00:38 -04:00
Marek Roszko
d8343a97dd
explicit wx_str comparison
2024-04-12 19:59:43 -04:00
Marek Roszko
4a3018615b
Be explicit with lazy_ctor captures
2024-04-12 19:56:02 -04:00
Marek Roszko
24a790a7dc
Don't compare against the wrong type
...
Technically this is still wrong because of doubles..
2024-04-12 19:53:26 -04:00
Marek Roszko
5087c076c1
Lambda capture this for a callafter
2024-04-12 19:52:42 -04:00
Alex Shvartzkop
49dcd5f4fc
Fix default cell alignment and FBP file for Configure Paths dialog.
2024-04-11 00:48:48 +03:00
Alex Shvartzkop
5d22c1adee
Make grid cell editors with extra button consistent with normal text cell editors.
2024-04-11 00:47:27 +03:00
Jeff Young
5abc7145da
Fold LIB_ITEM into SCH_ITEM.
2024-04-08 10:24:50 +01:00
Jon Evans
7baccba01c
Coverity fixes
2024-04-05 08:16:29 -04:00
Jon Evans
aff2d5c0d3
Factor out SHAPE_LINE_CHAIN utilities
2024-04-04 18:55:58 -04:00
Jeff Young
92910d5d0f
Factor common parts of SCH_ & LIB_SYMBOL into SYMBOL.
2024-04-04 13:18:55 +01:00
Jeff Young
bf2b3b0b0f
Deconflict some LIB_TREE_ITEM APIs so they can remain non-const.
...
(The non-const is required by FOOTPRINT_INFO, which must load
footrpints to get some of the data.)
2024-04-04 13:18:55 +01:00
Jon Evans
9c113b25a4
Allow turning the API server on/off at runtime
2024-04-03 22:04:11 -04:00
Marek Roszko
e0b913cc65
Get rid of code path that has been unreachable for many years
2024-04-03 19:54:07 -04:00
Jon Evans
75b61956e9
Fix Windows name collision
2024-04-02 20:06:36 -04:00
Jon Evans
1dbe78c68b
Add QA tests and expand serialization for API
2024-04-02 19:51:18 -04:00
Jon Evans
6bd02cae6d
Refactor; add user control over API server
2024-04-02 19:51:18 -04:00
Jon Evans
a3b6ab48a4
Add a new plugin system for the new API
2024-04-02 19:51:16 -04:00
Jon Evans
f613cd1cb4
ADDED: A new IPC API based on protobuf and nng
...
Details, documentation, and language bindings are works in
progress and will be evolving over the course of KiCad 9
development.
2024-04-02 19:34:36 -04:00
Jon Evans
77eaa75db1
Show all library children if library name matches search
...
(cherry picked from commit a042d1aab4
)
2024-04-02 22:51:41 +00:00
Alex Shvartzkop
b905b4eac8
Improve moving, rendering and plotting of very small angle arcs.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17110
2024-04-03 00:40:18 +03:00
Seth Hillbrand
d82e8ee41a
Map nets in pasted data
...
Add missing nets to the existing board and use any existing nets of the
same name.
Adds option to clear all nets in Paste Special
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17626
2024-04-01 16:56:44 -07:00
Ian McInerney
9456f35491
Properly cleanup git repos and memory on project/frame deletion
...
* Ensure the git backend is deleted when the project tree is deleted.
* Unload the git repo for a project when the project is unloaded from
the tree.
2024-04-01 21:59:50 +01:00
Ian McInerney
921358b096
Make instance checker path globally writable
...
On Linux, this directory is shared between users, so a multi-user
machine needs to let the other users have access to the directory to
create their own lockfiles.
2024-04-01 21:59:46 +01:00
Ian McInerney
9e597ea754
Add the option to use alternating row colors in tables/grids
...
ADDED: Option to use alternating row colors in tables/grids
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16739
2024-04-01 21:59:37 +01:00
Céleste Wouters
e98c9f283f
Improve SHAPE_POLY_SET fracture performance
...
Refactors `SHAPE_POLY_SET::fractureSingle()` to be more efficient, while
not changing the actual algorithm:
* increase cache locality by using contiguous arrays instead of what was
effectively a linked list
* reduce latency and jitter by replacing per-edge allocator calls with
ahead-of-time std::vector reserves
* increase cache efficiency by making the vertex struct smaller
* replace O(n^2) leftmost edge search with O(n log n) std::sort
* sort the polygons instead of the edges
* cut iteration count in half in the remaining O(polygons * edges) part
2024-03-27 21:19:02 +00:00
Ethan Chien
0a89236f19
CLI: Add allegro and pads netlist output format options
2024-03-26 19:58:22 +08:00
Jeff Young
2f2c42a06b
More defensive coding for KICAD-YP.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17560
2024-03-24 19:22:05 +00:00
Jeff Young
a53bc9e026
Attempt to prevent KICAD-YP.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17560
2024-03-24 18:12:58 +00:00
Jeff Young
5d37a00759
Table plotting for PCBNew.
...
Also fixes some bugs with property exposure that (along with
other things) allowed you to put table cells on a different
layer than their parent table.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17438
2024-03-24 16:49:33 +00:00
Jeff Young
f3ce3bc758
Close active cell editor when showing/hiding columns.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17425
2024-03-24 10:09:27 +00:00
Alex Shvartzkop
bd59fb7768
Fix spelling mistake.
2024-03-23 21:43:30 +03:00
Alex Shvartzkop
93581607a8
Don't print unnecessary digits after decimal point for imperial units.
...
1 nm = 0.00003937 mils = 0.00000003937 inches,
So there's no reason to print more decimal places than 5 for mils and 8 for inches.
Related: https://gitlab.com/kicad/code/kicad/-/issues/15539
2024-03-23 21:19:04 +03:00
Jeff Young
fc572bfbc6
Make sure users don't run into min text size.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17543
2024-03-23 15:50:45 +00:00
Jeff Young
7218d501d4
Better locality-of-reference for footprint chooser filters.
2024-03-23 12:48:52 +00:00
aris-kimi
d7abed2d60
Footprint Chooser dialog: Allow toggle buttons to work simultaneously
2024-03-23 09:48:15 +00:00
Jeff Young
a3f3da5a7d
Implement STROKE_PARAMS::Stroke() for SH_RECT.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17516
2024-03-22 12:22:30 +00:00
Marek Roszko
f0912b6128
Fix msys2 build
2024-03-21 19:52:18 -04:00
Seth Hillbrand
7e7fec69f6
Add logging and area check to tesselation
...
Logging is useful when we find an area that cannot be triangulated.
This will be used to generated test cases.
Skipping minor untesselated areas means that the polygon will still be
considered fully tesselated (and not sent back again and again) even if
the tesselation misses an area less than the configured limit.
Currently, this is 31^2nm.
2024-03-21 13:57:57 -07:00
Seth Hillbrand
4f03bb2fb6
Update triangulation
2024-03-21 13:57:57 -07:00
Jeff Young
b285545aee
Don't take too long worrying about very small exposed areas.
...
(And in particular, don't take forever if the min / 10 results
in step being 0.)
2024-03-21 18:14:29 +00:00
Jeff Young
58df9c96f4
ADDED: Expose units and DeMorgan to properties system.
...
(Also fixes inheritance bug in LIB_PIN's properties.)
2024-03-21 16:19:55 +00:00
Marek Roszko
83ef5fd7d6
Move PGM_BASE to kicommon
2024-03-20 23:29:42 -04:00
Marek Roszko
e32b26ebeb
Move JSON_SETTINGS and PARAMS to kicommon
2024-03-20 23:29:42 -04:00
Jon Evans
e7b6573717
wxWidgets 3.3 compatibility: properties API
2024-03-20 22:02:40 -04:00
jean-pierre charras
f3966371be
Simulation: add export current plot to clipboard and current schematic
...
These exports are in file menu.
2024-03-19 17:05:55 +01:00
JamesJ
a763d613e5
Move Net Inspector dialog to a widget panel in pcbnew
...
Introduces some updates to the inspector, and a number of bug fixes:
- Correctly handles changes in board stackup
- Correctly handles unit change events
- Correctly handles language change events
- All layout / panel settings are stored to the project settings
- Retains ability to create net report
- Simple filter searches on net name and net class name (stored in settings)
- Allows hide / show of columns (stored in settings)
- Grouping by netclass (stored in settings)
- Optional filtering by net name (stored in settings)
- Optional filtering by net class (stored in settings)
- Custom grouping by net name match
2024-03-19 01:02:01 +00:00
Jeff Young
05cdd44404
Don't assume all glyphs are outline with an outline font.
...
Underline and overbar may be stroke glyphs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17478
2024-03-18 22:21:01 +00:00
Mike Williams
5318001726
prettifier: add newline to end of file
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17480
2024-03-18 15:29:43 -04:00
jean-pierre charras
0fab12f367
hotkey selector dialog: accept hotkey using Alt key modifier on Windows.
...
On Windows, Alt key is specific, and the dialog did not accept the modifier
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17453
2024-03-18 18:16:37 +01:00
Mark Roszko
72d83cd5de
Revert "Move JSON_SETTINGS and PARAMS to kicommon"
...
This reverts commit 81855aaaa6
2024-03-18 00:08:46 +00:00
wh201906
3f2e3d89e2
Fix selected item count in the properties panel
...
The code for updating selected item count is skipped if the properties
items don't change.
2024-03-17 22:26:31 +00:00
Marek Roszko
81855aaaa6
Move JSON_SETTINGS and PARAMS to kicommon
2024-03-17 18:11:49 -04:00
Jeff Young
da2610b93b
Add autocomplete accept & cancel to the hotkeys list.
2024-03-15 00:40:17 +00:00
Jeff Young
f22f5f47cb
Reset penWidth before stroking.
...
(PlotPoly will have set it to "1".)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17218
2024-03-14 17:40:04 +00:00
Jeff Young
e30b6398b7
ADDED: optional PDF metadata from AUTHOR and SUBJECT variables.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17289
2024-03-14 17:40:04 +00:00
Wayne Stambaugh
34ec57958d
Fix Eagle board import when footprint library versions exist.
...
This was a crude hack that appends the library URN ordinal to the name of
the footprint so that it can be correctly looked up by the "element" node.
The Eagle XML DTD does not make it clear how the URN "ASSET_ID" and
"VERSION" are used to look up the appropriate "ASSET_TYPE" so this is a
best guess and seems to work correctly.
The inferred edge clearance dialog had to be disabled when importing third
party boards because on GTK (and possibly other platforms) the dialog would
completely hang KiCad preventing the imported board and possible schematic
from being saved.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12897
2024-03-14 09:45:05 -04:00
Jeff Young
7ec2a1f09c
Allow Scintilla-created clipboard to be accessed after quit.
2024-03-12 17:09:07 +00:00
Jeff Young
2a0ce409e3
Attempt to fix non-MacOS build error.
2024-03-12 15:17:30 +00:00
Jeff Young
87121af3c9
Simplify about dialog impl and make it real-time performant.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17213
2024-03-12 14:50:10 +00:00
Alex Shvartzkop
463b609993
Disable infinite panning when using XWayland.
...
Cursor warping doesn't work properly in this scenario.
https://gitlab.com/kicad/code/kicad/-/issues/14109
2024-03-12 10:31:23 +03:00
Alex Shvartzkop
e4218effbd
Disable search ctrl cursor management on non-OSX.
...
Buggy at least on GTK and MSW.
(cherry picked from commit 764de7257f
)
2024-03-12 08:28:11 +03:00
Alex Shvartzkop
bf6ff5b805
Do not write alpha to the main framebuffer when performing antialiasing.
...
This allows correct background display when the main framebuffer has alpha.
Noticeable on Wayland with Mesa 24.0.2 Iris driver.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17341
2024-03-12 08:04:56 +03:00
Jeff Young
85d0126187
Auto-start text entry for Scintilla grid cells.
2024-03-11 17:46:09 +00:00
Mojca Miklavec
01cb1543bb
Change the platform detection order
...
Make sure that windows-specific getWindowsKiCadRoot() is only called on Windows
2024-03-11 15:43:33 +00:00
Jeff Young
1152b0462c
Grid properties for GerbView.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17372
2024-03-10 18:21:50 +00:00
ecorm
4dcd1fb8e2
Fix formatting from simulator X/Y zoom changes
2024-03-10 12:43:18 +00:00