Commit Graph

8060 Commits

Author SHA1 Message Date
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 0a881e091c Fix build for gcc and wx < 3.1.6 2022-12-08 07:30:04 -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
Jeff Young b15913bd53 Support env variables in spice library paths.
Also removes a bunch of std::string stuff from the file handling in the
simulator.  All our file handling, env variable expansion, project path,
etc. stuff is wxString based, and jumping through std::string in between
just makes it more complex and increases the potential bug surface.

Also fixes a bug where you'd get two error messages when a spice model
library wasn't found.

Also fixes a bug where you'd get a spice model library not found error
when the text field was empty.

Also fixes a bug where we'd try to absolutize a path starting with an
unresolved text or environment variable.  If the path starts with a
variable it's probably absolute, and tacking on the project path in the
error message just obfuscates things.

Fixes https://gitlab.com/kicad/code/kicad/issues/13082
2022-12-07 15:07:25 +00:00
Marek Roszko c0b5fe58c3 Implement output targeting of symlib/fplib upgrade per request 2022-12-06 21:20:27 -05:00
Jon Evans ad8e5891d2 Properties: update evaluator locale when creating editors 2022-12-06 17:56:33 -05:00
Jon Evans d435ba6485 Properties: improve handling of enter/return 2022-12-06 09:10:59 -05:00
Jon Evans 1a0c774940 Properties: Space to toggle booleans; fix arrow keys 2022-12-06 08:56:13 -05:00
Jon Evans 071a2ec46d Properties: clean up some unit handling
Make sure units show up properly in editor on focus kill
Make sure editor shows correct value initially
2022-12-06 08:55:48 -05:00
Jon Evans 40f9a59255 Remove disconnects from SetControl
These aren't needed as the control is going to be destroyed by the grid,
and can cause a crash on exit if the control is destroyed before the unit binder.
2022-12-06 08:06:16 -05:00
Jon Evans 74fa88c0f6 Defer splitter calculation until next event
Windows doesn't have valid sizes in the size event

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13019
2022-12-06 08:05:28 -05:00
Jon Evans c326c57e05 Properties: make sure to reset binder units when changing rows 2022-12-05 23:47:00 -05:00
Jon Evans b673202a4e Remove extraneous event binding 2022-12-05 20:44:47 -05:00
Wayne Stambaugh 5001555f0e Fix crash in Altium schematic importer.
The crash was caused by an unhandled exception. The uncaught exception
caused a cacophony of null configuration setting pointers so guards were
added to prevent crashes should other exceptions occur that do not get
handled correctly.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13046
2022-12-05 20:20:01 -05:00
Jon Evans d0024bd9f7 Properties: clear text ctrl from unit binder before it is destroyed
The lifetime of this text ctrl is managed by the property grid, so
we need to catch when it is hidden before destruction in order to avoid stale pointers being used to handle unit change events.

Credit to @dsa-t for the fix
2022-12-05 19:33:20 -05:00
Seth Hillbrand 77b763f8ba Change binding with units 2022-12-05 15:34:23 -08:00
Seth Hillbrand 6f43915b25 Don't keep a stale iu reference around
The IU memory areas are const but we need to be able to update this when
the frame changes, so use pointers instead
2022-12-05 13:33:45 -08: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
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
Seth Hillbrand 54dd494ff2 Remove frame dependency from UNIT_BINDER
Place the frame information into the event data instead of keeping a
pointer (potentially invalid) into the frame
2022-12-04 16:50:27 -08:00
Jon Evans a8cb0ee116 Properties: Use insertion order as display order 2022-12-04 17:20:34 -05:00
Alex fc062e8a19 Restore tooltip message. 2022-12-05 00:41:11 +03:00
Alex 4482e9f634 Minor UI fixes. 2022-12-05 00:37:25 +03:00
Jon Evans 6e1f075daa Remove debug code 2022-12-04 14:28:38 -05: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
Seth Hillbrand 234cda4197 Re-add PGInit call 2022-12-03 20:39:42 -08:00
Seth Hillbrand 9f551bfbf8 Remove the duplicate initionalize of pg globals
Testing to see if this is needed for windows builds anymore that we have
fixed the general init

Fixes https://gitlab.com/kicad/code/kicad/issues/12297
2022-12-03 17:14:36 -08:00
Seth Hillbrand 6a1acd84c2 Activate Clipper2 by default
Fixes https://gitlab.com/kicad/code/kicad/issues/git
2022-12-03 16:07:17 -08: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
Jon Evans 8f39dd69be Properties: fix caption text in dark mode on GTK 2022-12-02 22:43:11 -05:00
Jon Evans 4134db3c47 GCC fixes 2022-12-02 22:38:15 -05:00
Jon Evans 3cf3d15590 Properties: fix display ordering 2022-12-02 22:17:08 -05:00
Jon Evans 3d0fcfe8af Remove debug code 2022-12-02 21:55:52 -05:00
Jon Evans 70f9d8cab9 Properties: Add text orientation 2022-12-02 21:33:21 -05:00
Jon Evans 2091aaba2f Properties: Move angles to UNIT_BINDER
Also add support for unicode degree sign in evaluator
2022-12-02 21:25:42 -05:00
Jon Evans 5e352d2a66 Properties: improve handling of unit binders 2022-12-02 19:37:44 -05:00
Jon Evans 9b2f1ad0b1 Properties: show base class groups 2022-12-01 23:18:42 -05:00
Jon Evans ef3f2a8f1e Properties: ignore shape props for textbox 2022-12-01 21:54:12 -05:00
Jon Evans a5096bf28a CLI: Fix macOS binary dir
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12799
2022-12-01 16:55:12 -05:00
Marek Roszko bae8cb55c0 Rename the bom cli to pythonbom since we'll have a real bom system later 2022-11-30 19:56:59 -05:00
Jeff Young f5770fe7e0 Actually free the projects before the settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/10973
2022-12-01 00:05:21 +00:00
Alex 55a3946af8 Properties: Use a constant variable for PG_UNIT_EDITOR editor name. 2022-11-30 20:10:22 +03:00
Jon Evans cfd52d8362 Properties: Fix sort order for base class props 2022-11-29 18:56:15 -05:00
Jon Evans 12b7e68703 Properties: Skipped group should not assert
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13028
2022-11-29 18:12:28 -05:00
Jeff Young 31eb91e9e5 Infobar for slow zone auto-refill. 2022-11-29 21:09:16 +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
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 21fed9fc8c Hotglue a symbol upgrade function in cli 2022-11-29 00:00:45 -05:00
Marek Roszko 25d5defc10 Add cli for "fp" upgrade 2022-11-28 20:48:14 -05:00
Seth Hillbrand 4f6b853756 Don't use modifiers when moving with keyboard
The modifier keys on the keyboard control the motion spacing (Ctrl) and
shouldn't be confused with the modifier key used to disable grid
snapping when moving with the mouse (also Ctrl)

Fixes https://gitlab.com/kicad/code/kicad/issues/13027
2022-11-28 11:05:12 -08:00
Jon Evans b2b3f5752f Properties: Add grouping and sorting by creation order 2022-11-27 22:40:23 -05: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 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
Jeff Young 387f1214f0 Add some heuristics to guess a better font overbar offset.
Fixes https://gitlab.com/kicad/code/kicad/issues/13010
2022-11-26 17:26:20 +00:00
jean-pierre charras 709ad14e74 Fix a compatibility issue with wxWidgets 3.1.5 and older 2022-11-26 08:31:30 +01:00
Jon Evans 96fe93618e Properties: Stop sorting by name
It's more useful to have properties shown in add order,
since we can group them
2022-11-25 16:29:56 -05:00
Jon Evans 778d01c46b Properties: More API differences in wx3.0 2022-11-25 15:24:38 -05:00
Jon Evans 773f444636 Properties: fix for wx 3.0, second try 2022-11-25 15:20:32 -05:00
Jon Evans 85a6ddfca1 Properties: fix for wx 3.0 2022-11-25 15:15:04 -05:00
Jon Evans 611c19016f Properties: add support for string escaping
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12975
2022-11-25 13:15:46 -05:00
Jon Evans 5061f0556f Properties: implement ellipsization for name column 2022-11-25 12:37:47 -05:00
Jon Evans 396db7794d Properties: add friendly names to shapes 2022-11-25 12:37:47 -05:00
Jon Evans 220ef6fb44 Properties: Add some missing footprint properties; cleanup
Add concept of "internal" properties that will be accessible from
Python/DRC but not shown in the Properties Manager
2022-11-25 12:37:47 -05:00
Jon Evans 696a1cd39d Properties: improve handling of column splitter 2022-11-25 09:58:44 -05:00
Jon Evans 11e784cf10 Properties: specialize layer setting for footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12480
2022-11-24 22:11:26 -05:00
Jon Evans 4285b38b74 Properties: Handle units changes correctly
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12885
2022-11-24 17:15:07 -05:00
Jon Evans 436129cb75 Use correct format specifier when displaying inches
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12925
2022-11-24 16:52:22 -05:00
Mike Williams 60d42a7b1e Spelling: fix various suppress misspellings 2022-11-22 13:47:10 -05:00
Seth Hillbrand 62863d6c5b Ensure that we clear deleted values
When throwing on an invalid value, we may end up freeing the same tree
twice.  This is generally not an issue but we need to mark the freed
memory as null to avoid a double free

Fixes https://gitlab.com/kicad/code/kicad/issues/12981
2022-11-22 06:11:03 -08:00
Seth Hillbrand 7b1702b5fb Use IsType() for selection testing
Straight Type() comparison breaks for the TYPE_LOCATE values
2022-11-21 05:02:06 -08:00
Alex cda855fcd6 Fix build error. 2022-11-19 04:10:38 +05:00
Alex d3aed6c408 Optimize hot loop in UpdateItems. 2022-11-19 04:02:05 +05:00
Jeff Young bc271a8d15 Protect move tool from re-entrancy.
m_dragInProgress is usually sufficient, except when we haven't started
one yet.  In any case, conflating the two is probably a bad idea.

Fixes https://gitlab.com/kicad/code/kicad/issues/12936
2022-11-18 17:08:38 +00:00
Jeff Young c409646aad Update message panel after rebuilding connectivity.
Fixes https://gitlab.com/kicad/code/kicad/issues/10122
2022-11-18 15:29:16 +00:00
Jeff Young b09a106880 Split gerbview diff and xor into two separate view modes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10122
2022-11-18 15:29:16 +00:00
Alex 53b9baa5ba Some refactoring around Gerber files extension checking.
Fixes a case where most Protel inner layer files couldn't be drag and dropped.
2022-11-18 09:55:34 +05:00
Alex 95b8fe26b4 Fix display and archiving of Protel gerber files in Project manager. 2022-11-18 04:39:18 +05:00
Alex 4b1994e554 Don't update hidden scrollbars. 2022-11-18 00:33:22 +05:00
Alex dcb131c20d Improve canvas responsiveness by better swap interval management. 2022-11-18 00:32:25 +05:00
Alex 6418441218 Fix status bar flicker. 2022-11-17 09:31:24 +05:00
Alex c5c5a3fe91 Use a single-shot timer for auto-panning.
Fixes https://gitlab.com/kicad/code/kicad/issues/11425
2022-11-17 05:30:55 +05:00
Alex 5e7c4b734c Small optimizations in DRC and SHAPE_POLY_SET. 2022-11-17 02:10:22 +05:00
Jeff Young a61ac363c2 Excise the remaining occurrences of "Alias" for derived symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/12895
2022-11-16 18:37:40 +00:00
Jeff Young 1b3f03a800 Don't feed wxWidgets negative column widths. 2022-11-16 13:33:55 +00:00
Jeff Young 13f5c78e89 More tightening of group parent lifecycles.
Fixes https://gitlab.com/kicad/code/kicad/issues/12908
2022-11-16 00:42:38 +00:00
Jeff Young a0b6247a06 Try a different order of destruction.
Fixes https://gitlab.com/kicad/code/kicad/issues/10973
2022-11-16 00:42:38 +00:00
Wayne Stambaugh 8ad35604b4 Fix build error with wxWidgets 3.0. 2022-11-15 13:27:20 -05:00
Jeff Young 2db6b25b51 Allow setting "mixed" properties to a value. 2022-11-15 16:01:24 +00:00
Jeff Young 3af4e889b9 Unobfuscate wxAnyToVariant registration and remove global var hack.
Note that I don't have any data that the global var hack was causing
the bug, so this may or may not fix it.  But it seems as good a candidate
as any.

Fixes https://gitlab.com/kicad/code/kicad/issues/12871
2022-11-15 16:01:24 +00:00
Jeff Young 93c6d99a6d Move saving preferences out of the destructor.
For other reasons we wrap the adapters in a wxDataObject, which has
delayed destruction semantics, but that means the settings stuff may
no longer be around when the d'tor executes.

Fixes https://gitlab.com/kicad/code/kicad/issues/12371
2022-11-14 20:01:37 +00:00
Marek Roszko 39d5cc31d4 Add schematic xml bom output 2022-11-12 21:51:32 -05:00
Marek Roszko 3dd2ae762d Refactor step export to use our normal board processing routines 2022-11-12 21:27:10 -05:00