Commit Graph

2672 Commits

Author SHA1 Message Date
Seth Hillbrand efe12f2da5 Cleanup variable naming
Also remove ancient/unused code for lazy resolving
2023-01-23 22:21:12 +00:00
jean-pierre charras e0111f709b Fix minor cosmetic issues in Print dialogs
Fixes #13629
https://gitlab.com/kicad/code/kicad/issues/13629
2023-01-23 09:21:23 +01:00
Seth Hillbrand e6dbca051c Force realtime connectivity on
The pressure relief valve was not useful for common work patterns as it
forced the recalculation on many common actions such as bus expansion.
This caused it to actually feel slower than with the pressure relief
valve off.

For most schematics, realtime is now fast enough to not need the valve
and for those that are extremely complex, removing the valve helps this
run more predictably
2023-01-20 15:17:57 -08:00
Seth Hillbrand 6fa2eedb4b Avoid the obsolete GetNextPin() call
This iterated over all pins to find the pin after a given item.  Because
out pattern is consistently to iterate in the outer loop, this means
that we were an O(n^2) loop for the pins just to find their names.  This
affected very large parts (e.g. FPGAs) when switching sheets to display
2023-01-20 14:12:15 -08:00
Jeff Young d9a90519f9 Flatten (and fix layout) of library table managers. 2023-01-20 14:19:58 +00:00
Jeff Young 27109bfc8a MRU path for simulation model libraries.
Fixes https://gitlab.com/kicad/code/kicad/issues/13581
2023-01-20 00:18:55 +00:00
Mike Williams 5a2f4c445b Global Label Dialog: add power nets to dropdrown
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/9118
2023-01-19 12:47:32 -05:00
Jeff Young 87377d1aac Stop stepping on user's data.
Just because we can't find the file doesn't mean the path to it has
no value.  Don't delete it.  And don't crash afterwards either.

Fixes https://gitlab.com/kicad/code/kicad/issues/13578
2023-01-18 13:50:40 +00:00
Jeff Young 3af9c658e6 Don't specify fonts in wxFormBuilder. It only leads to pain.
Fixes https://gitlab.com/kicad/code/kicad/issues/13547
2023-01-18 12:28:07 +00:00
Jeff Young 47d88c5647 Nullptr safety. (Sentry KICAD-71) 2023-01-18 00:52:19 +00:00
Jeff Young 26c821962f Simplify and regularize text variable substitution architecture.
EDA_ITEMs are responsible for giving their parent a crack at it if
they failed to resolve it.  This recurses all the way up to the schematic/
board, and then to the project.

Cross-reference handling is also move to the EDA_ITEMs.  It must be done
before bubbling up so that we don't end up in loops.  (The aDepth parameter
will break the loop, but without having done anything useful.)

Fixes https://gitlab.com/kicad/code/kicad/issues/13541
2023-01-17 17:05:41 +00:00
Marek Roszko d2c0f5fc2a More wxSing 2023-01-16 23:14:38 -05:00
Jeff Young 62649b868c Ensure good fonts in grid headers.
Also moves rendering to a flat look for headers (instead of a beveled
border).

Fixes https://gitlab.com/kicad/code/kicad/issues/13547
2023-01-16 02:47:14 +00:00
Jeff Young 4c5a344629 Allow editing of raw SPICE models through code tab. 2023-01-14 02:43:34 +00:00
Jeff Young f1aee2fa18 Minor dialog tweaks. 2023-01-14 01:45:30 +00:00
Jeff Young 098d2b30a2 Support for simulation options in workbook and simulation command dlg.
Fixes https://gitlab.com/kicad/code/kicad/issues/13524

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

Fixes https://gitlab.com/kicad/code/kicad/issues/13431
2023-01-14 00:21:45 +00:00
Jeff Young 52163c7b31 Hold off on one-library-per-SIM_LIB_MGR. It's too risky for 7.0. 2023-01-12 16:29:51 +00:00
Jeff Young d839f11d49 Rip out parsing of SPICE libraries for netlisting.
We only need to parse the libraries for the Sim Model Editor dialog
(so that we can determine the models to put in the popup).  Doing it
for netlisting just opens us up to incorrectly parsing the SPICE, and
returns no value.

This also means that a SIM_LIB_MGR manages a single library, and
never multiple libraries.

This also allows the tidying-up of some error reporting structures to
better inform the user what went wrong.

Fixes https://gitlab.com/kicad/code/kicad/issues/13431
2023-01-12 14:51:03 +00:00
Seth Hillbrand 248399f771 Standardize print/plot terms
Use choice box for color/bw selection
"border and title block" -> "drawing sheet"

Fixes https://gitlab.com/kicad/code/kicad/issues/13128
2023-01-11 12:30:02 -08:00
Jeff Young c89925578d Move find/replace to own tool so it doesn't rob events from cross-probing. 2023-01-11 14:22:06 +00:00
Jeff Young 30c9deb9d5 Flat(er) look for paged dialogs. 2023-01-11 01:11:25 +00:00
Wayne Stambaugh 9c0445ed98 Remove schematic editor standard dialog button static line separators. 2023-01-08 14:26:10 -05:00
Jeff Young ee0e90e3b0 We no longer enforce either a non-empty value or name == value.
Fixes https://gitlab.com/kicad/code/kicad/issues/13424
2023-01-07 22:42:52 +00:00
Seth Hillbrand 8cabc82f1c Add highlight hinting to pin severity 2023-01-06 13:30:58 -08:00
Jeff Young 5bdc3a5721 Keep sim-enabled checkbox in sync with edits to fields grid. 2023-01-06 20:43:33 +00:00
Seth Hillbrand c29dfe026e Force recursing annotation when set to auto
Automatic annotation should always annotate new elements regardless of
where in the hierarchy they are

Fixes https://gitlab.com/kicad/code/kicad/issues/13378
2023-01-05 15:03:38 -08:00
Jeff Young 7af718f1a5 Don't use std::string for things with wxString APIs.
It's too bug-prone.

Fixes https://gitlab.com/kicad/code/kicad/issues/13380
2023-01-05 14:16:39 +00:00
Jeff Young 985414fef9 Collapse pin-conflicts-map generator back to (mostly) a single path. 2023-01-05 00:02:44 +00:00
Seth Hillbrand 0e2943d781 Fix pinmap flat style on GTK 2023-01-04 12:48:15 -08:00
Wayne Stambaugh d99e09014b Rename SYMBOL_INSTANCE_REFERENCE to SCH_SYMBOL_INSTANCE. 2023-01-04 15:39:50 -05:00
Jeff Young 7c0b6c1e87 Restore old pin-conflicts-map algo for MSW and GTK. 2023-01-04 18:32:06 +00:00
Graham Keeth fb9a388bce Fix icon spacing in Annotation dialog/panel 2023-01-04 13:52:19 +00:00
Jeff Young 33d31be9b5 Fix last commit. 2023-01-04 13:38:28 +00:00
Jeff Young b38370adae Test for viability of using fontsize for pin conflicts map positioning. 2023-01-04 13:16:15 +00:00
Wayne Stambaugh f5c5b00e40 Fix schematic annotation dialog bitmap layout issue. 2023-01-04 07:36:00 -05:00
jean-pierre charras 575a84f76c Fix a compil issue on GTK 2023-01-04 13:15:56 +01:00
jean-pierre charras d0f9ce897e Do not use #elifdef , only available in C++23
replaced by #elif defined
2023-01-04 11:59:33 +01:00
Jeff Young a8d2f7f71d Round 2 for GTK. 2023-01-04 01:41:07 +00:00
Jeff Young b9f1106781 Adjustments for GTK. 2023-01-04 01:18:02 +00:00
Jeff Young c47de5a55d Another round of adjustments for MSW pin conflicts map. 2023-01-04 00:33:58 +00:00
Jeff Young 7d84d323a6 Pin conflicts map adjustments for MSW. 2023-01-04 00:12:16 +00:00
Jeff Young 13d196c509 Fix some issue in the pin conflicts map with button alignment on Mac.
Fixes https://gitlab.com/kicad/code/kicad/issues/13333
2023-01-03 23:39:48 +00:00
Jeff Young 9583b28063 Fix store-in-value bugs.
1) Always honour the dialog checkbox value.
2) Don't expect the absence of the primary parameter in Sim.Params to
   mean that Value stores it.  It might be the default parameter value.
3) Update spiceTypeInfo when matching legacy data to an internal model.
4) Initialize the store-in-value checkbox depending on whether or not
   we found the primary parameter in the Value field.
2023-01-03 17:20:23 +00:00
Jeff Young 9b9795a87d Reduce reliance on exception processing -- it's waay too bugy at present.
This moves some stuff to REPORTER APIs.  Moving more stuff would be good,
but it probably too high-risk at present.  We'll wait for 8.0 for that....

Fixes https://gitlab.com/kicad/code/kicad/issues/13359
2023-01-03 17:20:23 +00:00
Jeff Young 056349e5ea Units for footprint preview widgets. 2023-01-02 22:12:26 +00:00
Jeff Young 55b8f0bc00 Gracefully fall back to raw spice when we can't parse the data.
Fixes https://gitlab.com/kicad/code/kicad/issues/13329
2022-12-31 18:52:26 +00:00
Jeff Young 77b361a077 Add reference material to SPICE model pin assignment tab.
Fixes https://gitlab.com/kicad/code/kicad/issues/13309
2022-12-31 18:52:26 +00:00
jean-pierre charras 9f56771611 Fix a typo 2022-12-31 11:41:04 +01:00
Jeff Young e9ed56e9a4 Fix small alignment issue in field properties dialog. 2022-12-30 15:29:36 +00:00
Jeff Young c0e0cbceb0 Move eseries helper class to common.
Also improves some terminology for english-speakers.

Also substitues [] vector access (which creates empty elements) over
at() (which throws if the item is not found).
2022-12-29 18:05:57 +00:00
Jeff Young 4c63b4e061 Class name <-> file name sync. 2022-12-29 18:05:57 +00:00
Mike Williams e65de51fc7 Schematic: label auto orientation needs to respect move/drag/change
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13226
2022-12-28 14:30:57 -05:00
Mike Williams 13f67aa7ce Schematic: remove unnecessary drag mirror/rotate control disabling
The whole edit dialog is blocked while dragging if anything else is drag
selected, and if nothing is drag selected the rotations/mirroring will
be fine. Also, we already allow mirror and rotate while dragging, using
the keyboard shortcuts and menu items, and it works fine.
2022-12-28 12:27:57 -05:00
Jeff Young e7300ffb5c Improved column sizing in library setup dialogs. 2022-12-28 16:27:03 +00:00
Jeff Young a3fcc8bbf7 Move Exclude from Simulation to Symbol Properties.
Also brings the layout of Symbol Properties for Symbol Editor more in
line with Symbol Properties for Schematic Editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/13299
2022-12-28 13:44:13 +00:00
Jeff Young 87448e0c55 Include sim command when running external SPICE.
Fixes https://gitlab.com/kicad/code/kicad/issues/13295
2022-12-28 12:28:22 +00:00
Wayne Stambaugh 78e2f0fd4d Sheet instance handling improvements. 2022-12-26 08:30:03 -05:00
Jeff Young 13b73ed6b4 Remember dialog sizes for dialogs that might have lots of fields.
This is mainly for simulation testing where the dialog has to be
grown every time you restart the app, but it might as well be applied
to the similar dialogs.

Fixes https://gitlab.com/kicad/code/kicad/issues/12887
2022-12-24 22:20:03 +00:00
Jeff Young 833e76a0bc KiCad standard is left-aligned checkboxes. 2022-12-24 21:01:35 +00:00
Jeff Young 604d7a72d6 Fix bug in tuning when value is stored in Value field. 2022-12-23 17:40:36 +00:00
Jeff Young 66eafc56bb Don't suggest we're going to cancel already-added signals. 2022-12-23 12:46:18 +00:00
Jeff Young 7f60b87d1d Implement fallback models for SPICE .lib models that we can't parse. 2022-12-22 22:35:09 +00:00
Jeff Young e64852c833 Clearer naming. 2022-12-21 17:03:46 +00:00
Jeff Young 58ce0bb804 Simulation bug fixes.
1) Use C-locale when converting output of parsers to strings.

2) InferSimModel() must run on local copy of fields, not the fields in
the symbol (which might be different if they've already been edited in
the Symbol Properties Dialog, for instance).

3) InferSimModel() should accept a deviceType already set to RLC.

4) Don't output trailing decimal separators if there's no fraction.
2022-12-19 18:14:13 +00:00
Jeff Young 7192c565b8 Add simple VI model inference. 2022-12-18 22:54:12 +00:00
Ian McInerney 618347ef50 Regenerate ibis dialog to remove unused sizer from header
It appears the dialog had already been updated to remove it from the
formbuilder project and the cpp file, but the header wasn't checked in
at the same time.
2022-12-17 23:37:24 +00:00
Jeff Young 8324c0b0cc Fix event order bugs in Sim Model Editor dialog.
onParamGridChanged was firing before CommitPendingChanges which meant
the edited value didn't get saved if the editor was still open when
OK was clicked.
2022-12-17 22:33:00 +00:00
Jeff Young 321de57d7c Bug fixes for simulator.
1) Finish removing pin-count based APIs.  We need to know the pin names
as well, not just the count.

2) Fix a bug in the regexp for SPICE functions to allow both lowercase
and uppercase function names

3) Move CreatePins() overrides to the new API so that we get pins on
raw SPICE models.

Fixes https://gitlab.com/kicad/code/kicad/issues/13190
2022-12-17 20:29:24 +00:00
Jeff Young 6b70c679cf Migrate more V6 SPICE syntax to V7.
Also fixes various bugs if symbols contained non-indexed pin numbers.
We really need to know the actual pin names when creating models, rather
than just assuming 1, 2... etc.

Fixes https://gitlab.com/kicad/code/kicad/issues/13183
2022-12-17 15:23:51 +00:00
Jeff Young 09302296f4 Use SCH_SHEET_PATH interface to get page numbers.
Fixes https://gitlab.com/kicad/code/kicad/issues/13021
2022-12-16 22:49:42 +00:00
Jeff Young 24786fe0e9 Fix multi-unit symbol bugs.
1) SPICE pins need to include all units
2) Already-seen-unit-x needs to be reset when getting netlist again.

Fixes https://gitlab.com/kicad/code/kicad/issues/13164
2022-12-16 13:57:46 +00:00
Seth Hillbrand e91c039ed3 Prevent event stackup when init pages
The paged book initialization (and others) can generate events,
re-laying out the whole dialog multiple times during initialization.
This halts events during the layout period

Fixes https://gitlab.com/kicad/code/kicad/issues/13158
2022-12-15 11:39:03 -08:00
Jeff Young 1e812b8b69 Remove selection from grid before deleting rows. 2022-12-15 14:40:57 +00:00
Jeff Young a8e73cf92c Check for model existence in library. 2022-12-15 14:25:25 +00:00
Jeff Young 5ef9fbdd19 Fix broken loop logic.
Fixes https://gitlab.com/kicad/code/kicad/issues/13168
2022-12-15 14:22:03 +00:00
Jeff Young 00a5fddda4 Simplify library model name from combobox to choice.
Fixes https://gitlab.com/kicad/code/kicad/issues/13168
2022-12-15 12:13:16 +00:00
Jeff Young b2e512bfab We must infer a pinMap when inferring other fields for RLC passives.
Fixes https://gitlab.com/kicad/code/kicad/issues/13162
2022-12-14 23:23:41 +00:00
Jeff Young 93879532f7 More wxTextCtrl minimum widths. 2022-12-14 23:23:41 +00:00
Jeff Young 5984a6dddd Fixup a few more collapsing textEditCtrls on Mac. 2022-12-14 15:13:29 +00:00
Jeff Young 50ccc4e6da Fix issue converting legacy SPICE models.
1) if a legacy model references a library then we need to see if said
   libraray exists and read model from it if so
2) legacy node ordering is by index, not pin name
3) we can't auto-generate a pin map when we don't know the pin names,
   so don't try
2022-12-14 13:36:28 +00:00
Jeff Young c0872364d4 Get rid of bloated bitmap buttons on wxWidgets 3.2. 2022-12-13 20:48:02 +00:00
Jeff Young f24372bc18 Layout adjustments for wxWidgets 3.2. 2022-12-13 00:47:19 +00:00
Seth Hillbrand 413637b732 Add missing translation string 2022-12-12 13:07:53 -08:00
aris-kimi 43d4dd0b7b Fix some eeschema textbox tooltips 2022-12-12 19:41:26 +00:00
Jeff Young ccbbd2ddd9 Clear seleciton so wxWidgets doesn't go looking for deleted row. 2022-12-12 14:43:37 +00:00
Jeff Young e890986e01 Fix crash when grid tries to access deleted field. 2022-12-11 23:12:55 +00:00
Jeff Young 419fe236ad Fix logic error in parsing sim command, and DC source types in dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/9064
2022-12-11 23:12:55 +00:00
Jeff Young 65538ccad4 Rename files and classes to match dialog name.
Also a bit of formatting cleanup.
2022-12-11 18:42:57 +00:00
Jeff Young 9c129ed03f More dialog adjustments for wx 3.2. Also renames files to match dialog. 2022-12-11 15:49:29 +00:00
Jeff Young 1baec20cf6 Handle SPICE <-> SI conversions in inferred models.
Fixes https://gitlab.com/kicad/code/kicad/issues/13112
2022-12-09 22:02:52 +00:00
Jeff Young 60c937186a When migrating simulation models update value to a reference. 2022-12-09 20:24:25 +00:00
Jeff Young 05b9836f60 Remove ugly hack of passing SCH_SYMBOL as parent of LIB_FIELD array.
Also adds simulation model inference to Symbol Editor's Simulation Model
Editor, and adds write-back from both Simulation Model Editors to their
parent Symbol Fields Editor dialogs.

Fixes https://gitlab.com/kicad/code/kicad/issues/12505
2022-12-09 20:24:25 +00:00
Jeff Young 107025322c Better column width handling for sim params grid. 2022-12-08 23:57:42 +00:00
Jeff Young e8980e9024 Centralize SPICE lib path resolution and support SPICE_LIB_DIR.
Fixes https://gitlab.com/kicad/code/kicad/issues/13081
2022-12-08 23:57:42 +00:00
jean-pierre charras 0098dfa6dc Ensure exported spice netlist contains all spice directives found in schematic 2022-12-08 14:03:47 +01:00
Wayne Stambaugh b95ce69054 Disconnect event handlers in symbol properties dialog dtor.
This is probably a good rule of thumb to prevent any event ordering
issues between platforms or unhandled events being trigger during
inherited object destruction.
2022-12-07 14:27:36 -05: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
Jeff Young 69448afb47 Don't run simulation twice when the sim command is overridden.
Fixes https://gitlab.com/kicad/code/kicad/issues/12731
2022-12-07 01:34:56 +00:00
Jeff Young 39ad7c8205 Formatting and Kicad naming conventions. 2022-12-06 16:01:18 +00:00
Jeff Young 38906397d2 Move V6->V7 sim model migration from sheets to screens.
Also moves passive RLC inference out from migration to just-in-time
creation for the simulator or netlisting.

Also fixes a version guard mismatch because the spice migration was
done inside UpdateSymbolInstances (which has its own version guard).

Also changed UpdateSymbolInstances to UpdateSymbolInstanceData so
someone else in the future doesn't think it's a general-purpose symbol
instance updater.
2022-12-06 16:01:18 +00:00