Commit Graph

14439 Commits

Author SHA1 Message Date
Mike Williams 0e75bf02fa Selection: refactor modifier checking 2022-12-08 14:12:12 -05:00
Jon Evans 2b0d7f65d0 Properties: sync wxPGGlobalVars map state with editor global state
Thanks to @dsa-t for suggesting this

(maybe)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12297
2022-12-08 07:55:57 -05:00
Jon Evans 435651237c Properties: Support overridden availability functions 2022-12-08 00:09:51 -05:00
Marek Roszko 2fc0cd68ed Avoid crashing due to empty lib tables in cli
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13097
2022-12-07 23:56:03 -05:00
Jon Evans 33d76f63b0 Properties: save and restore splitter position 2022-12-07 21:38:33 -05:00
Alex e03a91c9c7 Reduce static ratsnest opacity when moving items; tweak colors. 2022-12-07 21:01:56 +03:00
Alex 82874daf08 router: Limit the amount of move attempts in ROUTER::Finish
Otherwise auto-finish hangs in some cases.
2022-12-07 19:24:13 +03:00
Marek Roszko aa537fe559 Change bezier curve iteration to be easier to read
Fix #https://gitlab.com/kicad/code/kicad/-/issues/11153 somewhat
2022-12-06 23:25:04 -05:00
qu1ck 25688eb75e Include plotprint_opts.h in swig 2022-12-07 04:02:59 +00:00
Marek Roszko 24ca892afb Update tinysplice to latest
A few years worth of bug fixes
2022-12-06 22:28:23 -05:00
Marek Roszko 61119fbf64 Poke a const to make gcc happy 2022-12-06 22:00:23 -05:00
Marek Roszko c0b5fe58c3 Implement output targeting of symlib/fplib upgrade per request 2022-12-06 21:20:27 -05:00
jean-pierre charras 593dc9e8b6 Some fixes in Gerber job file:
- Ensure colors use a normalized value (normalized name or RnnGnnBnn notation).
- Better code.
2022-12-06 17:01:37 +01:00
Alex 008704fc6f router: Allow highlighting both DP nets when routing. 2022-12-06 05:24:23 +03:00
Jon Evans 38a509e768 Properties: support bitmaps 2022-12-05 18:31:40 -05:00
Jeff Young c771d866f5 Cleanup 3D caches before d'tors run.
Fixes https://gitlab.com/kicad/code/kicad/issues/10973
2022-12-05 22:39:09 +00:00
Seth Hillbrand d8f94962ff Prevent halting the main GUI thread 2022-12-05 11:10:57 -08:00
Alex 0089df8ca4 Update comment in zone filler. 2022-12-05 21:48:12 +03:00
Alex c4aed1d941 Make sure that threads are not running after zone filling. 2022-12-05 21:36:59 +03:00
Alex 6d513e7ecf Expose changing arc edit mode in arc button context menu and Preferences
Ctrl+Space can still be used to cycle through modes.

Fixes https://gitlab.com/kicad/code/kicad/issues/5412
2022-12-05 21:28:16 +03:00
jean-pierre charras c3dddaf41f panel_board_finish: mark board as modified when a finishing parameter is modified.
Fixes #13074
https://gitlab.com/kicad/code/kicad/issues/13074
2022-12-05 18:39:18 +01:00
Jeff Young 295ef6588d Fix uninitialized variable. 2022-12-05 14:42:05 +00:00
Jeff Young b7d41e0e56 Update simulator with NUMERIC_EVAL, decimal separator processing, etc.
Also includes fixes for instance data and resolving of textvar
references.

Also includes virtual d'tors for IBIS parser to get rid of all the
compile warnings on CLang.

Fixes https://gitlab.com/kicad/code/kicad/issues/12357
2022-12-05 12:40:29 +00:00
Alex 4482e9f634 Minor UI fixes. 2022-12-05 00:37:25 +03:00
Seth Hillbrand 47e7cd2e90 Don't allocate/delete a PG_UNIT_EDITOR unless needed
We cannot actually delete the PG_UNIT_EDITOR without substantial issues
from the global variables in wx.
2022-12-04 10:27:38 -08:00
Alex 90ad4dcc05 router: Various bugfixes in length tuning meandering
- When fine-tuning, keep adjust to the original baseline length
- Enforce a minimum amplitude based on settings, DP gap and track width
- Use binary search to fine-tune amplitude if the length is not trivial
- Account for inequalities in balancing
- Don't add the meander if adding it with min. amplitude will make the
  tuning worse
- Keep a distance after meandering end to prevent overlaps in DP

Fixes https://gitlab.com/kicad/code/kicad/issues/9267
Fixes https://gitlab.com/kicad/code/kicad/issues/1776
2022-12-04 16:30:00 +00:00
Graham Keeth ef83d01455 Minor string changes: "eeschema" / "pcbnew" in tooltips, and power port terminology 2022-12-04 14:29:57 +00:00
Jeff Young f6822120b3 Enable tab and return commit in property grid. 2022-12-04 11:51:44 +00:00
Jeff Young f805fd267f Divorce UNIT_BINDER from wxFrame.
This allows us to supply Pcbnew or Eeschema as the unitsProvider when
called from the main frame.

Fixes https://gitlab.com/kicad/code/kicad/issues/13066
2022-12-04 11:51:44 +00:00
Jeff Young 96819f6c01 Better cache invalidation for text objects with references.
Fixes https://gitlab.com/kicad/code/kicad/issues/13059
2022-12-04 11:51:44 +00:00
Jeff Young 8c97a7b8c6 If fps contain complete board-edge holes then exclude those edges from main calc.
Fixes https://gitlab.com/kicad/code/kicad/issues/12921
2022-12-04 11:51:44 +00:00
Seth Hillbrand 92266635cc Add an advanced config value for the minimum sliver
The hard coded value was too small for certain calculations.  Better to
have a configurable value that is initially set to our error level to
allow for deviations that don't meet the visibility test for spikes.
These have become more apparent with Clipper2
2022-12-03 16:03:43 -08:00
Seth Hillbrand b5bd633625 Strict-order points in connection_width
The connection width checker uses morton codes to order elements.  The
sort should be primarily morton-based but needs to be stable in order to
ensure that nextZ/prevZ elements are properly placed as the actual
next/prev elements in the list.  Otherwise, hitting a fracture point
might make us skip in the wrong direction

Fixes https://gitlab.com/kicad/code/kicad/issues/12831
2022-12-03 16:03:43 -08:00
jean-pierre charras 497b368006 Pcbnew menubar: View/Drawing Mode/Sketch Text Items and Skecth Graphic Items:
Handle the Checked/Unchecked bitmap symbols of these 2 submenus.
2022-12-03 11:03:14 +01:00
Jon Evans 4134db3c47 GCC fixes 2022-12-02 22:38:15 -05:00
Jon Evans 050d282c12 Properties: Hide some copper-only properties from non-copper zones 2022-12-02 21:59:17 -05:00
Jon Evans a5f7ecbe00 Properties: support text knockout 2022-12-02 21:46:03 -05:00
Jon Evans 0bc06d506c Properties: reselect after canceled move 2022-12-02 21:40:21 -05:00
Seth Hillbrand f9a36b9c91 Update thread_pool to 3.3
Fixes an issue with `wait_for_tasks()` and adds a lower-overhead
`push_loop` helper.  We replace our usage of `parallelize_loop` with
`push_loop` as we didn't use the multi-future vector return and don't
need the extra overhead.
2022-12-02 12:01:34 -08:00
jean-pierre charras 50d34e232b pcbnew: fix a bug that crashes pcbnew on startup when running under gdb/msys2 2022-12-02 15:14:17 +01:00
Jeff Young bba8a0826e Clear caches before undo operation.
The undo will remove/re-add items to the view in order to update the
RTree.  However, if we only clear caches at the end (in the OnModify
call), then the (stale) bbox caches are still used for the re-add
operation, and they end up at the wrong place in the RTree.

Fixes https://gitlab.com/kicad/code/kicad/issues/13048
2022-12-02 10:59:48 +00:00
jean-pierre charras 93c631af44 drawing_stackup_table_tool: fix incorrect color of dielectric sublayers.
when a dielectric has sublayers, the printed color was always the main layer color.
2022-12-02 10:41:20 +01:00
Jon Evans 73b3f28c25 Properties: mask layer property for items that can't set it 2022-12-01 22:22:29 -05:00
Jon Evans ef3f2a8f1e Properties: ignore shape props for textbox 2022-12-01 21:54:12 -05:00
Jon Evans e0ff8ba09c Fix normalize flags for wx3.1 2022-12-01 18:49:08 -05:00
Alex e56064696b router: Refactor m_padToDieLength out of meander placer base. 2022-12-02 01:03:34 +03:00
Jon Evans 3b25fdc212 Properties: Fix zones stomping on position props for other items 2022-12-01 16:55:12 -05:00
Jon Evans 6066ccdfd5 STEP: Normalize path to kicad-cli
Keeping the path relative messes up the logic that loads the DSO

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12728
2022-12-01 16:55:12 -05:00
Jeff Young 3501ad1b4d Record layer for starved thermal exclusions. 2022-12-01 18:04:34 +00:00
Jeff Young 20791c99ac Allow conversion of single track segments and vias.
Fixes https://gitlab.com/kicad/code/kicad/issues/13047
2022-12-01 17:15:29 +00:00
Alex 1aa05c0e10 router: Fix up single meander side switching. 2022-12-01 18:39:19 +03:00
jean-pierre charras d7368588db stackup manager: fix incorrect handling of colors for multi-layer dielectrics
The dialog allows a color selection for each dielectric layer.
However for a "dielectric" defined by more than one layer, the color was handled
only for the first layer, and not for the other sub-layers.
2022-12-01 16:19:13 +01:00
jean-pierre charras c378d01068 code cleaning. 2022-12-01 16:01:38 +01:00
Jeff Young 6befa1c57e A bit of cleanup to recent convert tool changes. 2022-12-01 14:53:13 +00:00
Jeff Young 4d8e73a630 Allow tracks as input to bounding hull generation.
Fixes https://gitlab.com/kicad/code/kicad/issues/13047
2022-12-01 14:53:13 +00:00
Jon Evans 757b73e50e Hide some unusable zone properties 2022-11-30 23:36:53 -05:00
Alex 7dbdb68730 router: ADDED option to create single-sided meanders. 2022-11-30 20:39:02 +00:00
Seth Hillbrand b31349b679 Get consistent point for gfx import
TopLeftItem() should always return same element for our import

Fixes https://gitlab.com/kicad/code/kicad/issues/13041
2022-11-30 12:25:34 -08:00
Seth Hillbrand cf33f33899 Standardize placement tool modifiers
PlaceImage, PlaceImportedGraphics and PlaceText need to handle the grid
and hotpoint snapping as well as the modifiers to disable them
2022-11-30 10:57:42 -08:00
Jeff Young 3c4c4e5166 Remove shortened debug time from zone refill message.
Also adds a time-out for it.
2022-11-30 17:38:02 +00:00
Jeff Young 074c087c21 Allow disabling of grid snapping while placing imported image.
Fixes https://gitlab.com/kicad/code/kicad/issues/13040
2022-11-30 14:38:22 +00:00
Jeff Young 98ab078905 Remember conversion strategy.
Fixes https://gitlab.com/kicad/code/kicad/issues/13043
2022-11-30 14:29:16 +00:00
Mike Williams 17bb57cc73 PCB: fix stale ratsnest between moves in Move Individually 2022-11-30 09:11:37 -05:00
Jeff Young 03f79f512c Nullptr safety.
Fixes https://gitlab.com/kicad/code/kicad/issues/12966
2022-11-30 14:02:22 +00:00
jean-pierre charras 6dc1c9b0b7 Step exporter: filter very small segments when exporting them.
very small segments create issues in step export.
Add also more messages and more controls.
Fixes #13038
https://gitlab.com/kicad/code/kicad/issues/13038
Fixes #12905
2022-11-30 14:56:02 +01:00
Jeff Young 8dbd6fee00 Go back to smaller chaining epsilon.
Using a large epsilon here to allow for sloppy drawing can cause
the algorithm to miss very short segments in a converted bezier.
So use an epsilon only large enough to cover for rouding errors in
the conversion.

Fixes https://gitlab.com/kicad/code/kicad/issues/12951
2022-11-30 13:26:45 +00:00
Jeff Young 19eab62516 More safety around ratsnest state.
Fixes https://gitlab.com/kicad/code/kicad/issues/13011
2022-11-30 13:00:21 +00:00
Jeff Young 9fa8b9e49f Fix memory leak and re-code non-memory-leak so Coverity can understand it. 2022-11-30 13:00:20 +00:00
jean-pierre charras ec4fd42bee Pcbnew: force courtyard area shape rebuild afret rotation/flip.
Fixes #13039
https://gitlab.com/kicad/code/kicad/issues/13039
2022-11-30 09:07:32 +01:00
Alex 8c468dcffc Use ecoords for distance comparison in PCB grid helper.
Fixes a bug where a cursor would jump to a far location while hovering
over some 45-degree tracks.
2022-11-30 08:18:19 +03:00
Seth Hillbrand e4b7bc82be Prevent UI events during footprint dialog ctor
Errors may get thrown when the 3d models are loaded for missing search
paths.  This triggers the idle event that makes assumptions about the
state of the dialog.  We halt event handling until the ctor finishes.

Fixes https://gitlab.com/kicad/code/kicad/issues/12944

(cherry picked from commit be86e9f57f)
2022-11-29 19:39:35 -08:00
Jon Evans 81ab8a0499 Properties: Move orientation to basic 2022-11-29 18:56:15 -05:00
Jon Evans 41ca2789a6 Get rid of shadowing warning 2022-11-29 18:12:39 -05:00
Seth Hillbrand 1a670f4673 Catch IO_ERROR thrown in timestamp gen
Missing nickname can throw when generating a timestamp, this should be
caught and prevent further work in the footprint loading (the entry does
not exist)

Fixes https://gitlab.com/kicad/code/kicad/issues/13029
2022-11-29 14:09:22 -08:00
Jeff Young abd818a426 Update msgpanel after entering or exiting group.
Fixes https://gitlab.com/kicad/code/kicad/issues/13031
2022-11-29 21:33:04 +00:00
Jeff Young 31eb91e9e5 Infobar for slow zone auto-refill. 2022-11-29 21:09:16 +00:00
Seth Hillbrand 0ee7f8e2bd Fix 436f95e02e
NanoSVG does handle opacity (thanks Mark) but the check needs to be
unsigned if we are comparing the resulting down-shifted value against
zero

Fixes https://gitlab.com/kicad/code/kicad/issues/13033
2022-11-29 11:21:16 -08:00
Seth Hillbrand 436f95e02e Don't look for alpha in nanosvg color
Nanosvg colors are only RGB, so we will never get an alpha value here.

Fixes https://gitlab.com/kicad/code/kicad/issues/13033
2022-11-29 10:44:03 -08:00
Jeff Young b6bd74d822 Replace single zone fill under "draft" terminology.
Also sets Autofill Zones to default to on.
2022-11-29 18:13:36 +00:00
Seth Hillbrand 5fc5a2132b Fix Properties panel to reference the correct frame
The properties editors are global but the frame that they reference is
not static, so we need to be able to update the frame reference when
restarting pcb editor from the main window.  This updates the frame,
being careful to remove the signalling when closing pcbnew but keeping
the instance of the editor in place.

Fixes https://gitlab.com/kicad/code/kicad/issues/12297
2022-11-29 09:24:41 -08:00
Mike Williams ad6ef35c9f PCB: Add skip action to Move Individually 2022-11-29 15:42:03 +00:00
Jeff Young 6d52601241 Update stale tooltip. 2022-11-29 15:21:20 +00:00
Jeff Young b2177718a1 Tighten up refresh logic for net & netclass references.
Also tightens it up a bit for text variables which can reference things
like netnames and netclasses, but also board settings.

Fixes https://gitlab.com/kicad/code/kicad/issues/13032
2022-11-29 15:18:36 +00:00
Jeff Young 8260f0ee13 Add support for unitless values to PCB_EXPR_EVALUATOR.
Fixes https://gitlab.com/kicad/code/kicad/issues/13016
2022-11-29 14:24:20 +00:00
Marek Roszko 25d5defc10 Add cli for "fp" upgrade 2022-11-28 20:48:14 -05:00
Seth Hillbrand bd40684ecd Handle polygons' triangulation
Graphic polygons may be invalid and so need to be explicitly simplified
before triangulation.

Also clean up hole handling in triangulation routine
2022-11-28 15:46:12 -08:00
Jeff Young 8165fc6c44 Give up trying to infer what kind of polygon the user wants.
In many instances there are 3 valid answers: mimic linewidths, use
centerlines, and build a bounding hull.

Fixes https://gitlab.com/kicad/code/kicad/issues/12950
2022-11-28 22:12:53 +00:00
Seth Hillbrand 137b4de1c2 Allow groups in groups
This was allowed in the qa test, so we allow it going forward
2022-11-28 11:28:31 -08:00
Mike Williams 4a4fab78a3 PCB: allow swap while moving 2022-11-28 14:16:08 -05:00
Mike Williams 3042633f4a PCB: block unroute and move individually when already moving 2022-11-28 14:16:08 -05:00
Seth Hillbrand 259e41be2d Don't add non-groupable items to the group
Things like markers and netinfo should never get added to the group,
even if we are inside the group while adding the items

Fixes https://gitlab.com/kicad/code/kicad/issues/13026
2022-11-28 09:11:20 -08:00
Seth Hillbrand d232ade752 Remove cloned items from groups
When destroying, the group must be null and there's no group purpose in
the DRC checks
2022-11-28 09:11:20 -08:00
Jeff Young eb19e32b40 Performance optimization for pad drawing.
Fixes https://gitlab.com/kicad/code/kicad/issues/12999
2022-11-28 13:20:12 +00:00
Jon Evans b2b3f5752f Properties: Add grouping and sorting by creation order 2022-11-27 22:40:23 -05:00
Jon Evans 64f315c649 Move properties panel to widgets with the other AUI panels 2022-11-27 22:40:23 -05:00
Seth Hillbrand 3460c50afa Attempt to avoid double-free when shutting down on Windows 2022-11-27 16:21:06 -08:00
Jon Evans 5bbe21f540 Properties: don't rebuild the panel when closing an editor
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12984
2022-11-27 14:29:16 -05:00
Jeff Young c0ab2258a4 Update LAYER_PAD_FR when F_Cu colour changes (and same for back).
Fixes https://gitlab.com/kicad/code/kicad/issues/13012
2022-11-27 18:55:00 +00:00
Jeff Young ec9c6a8053 Separate creation of polygons for open and closed shapes.
This allows us to create a bounding hull from an open shape-line-chain,
which is useful for defining milled slots.
2022-11-27 18:29:41 +00:00
Jeff Young 740e193871 Increase bounding box of stroke text and the leader box of all text.
Fixes https://gitlab.com/kicad/code/kicad/issues/13009
2022-11-27 15:27:30 +00:00