Commit Graph

10922 Commits

Author SHA1 Message Date
Alex Shvartzkop 2a2dc3a508 Eeschema: Allow 180 deg arcs when editing, enable center point snapping. 2023-12-02 17:08:56 +03:00
Wayne Stambaugh 6dc25f4775 Fix broken symbol reference designators on paste special.
It appears that in our zeal to prevent file changes when saving shared
schematics, we (I) clobbered saving relative symbol instance data paths
to the clipboard.  This has be restored along with setting the correct
symbol unit for relative clipboard paths.

Fixed a serious issue with KIID_PATH::MakeRelativeTo() where the original
path was not restored when the incremental KIID object test fails.  This
also included a minor optimization using the actual KIID object for
comparison instead of converting it to a string and then comparing the
string.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15981
2023-12-01 14:18:47 -05:00
Seth Hillbrand 343828c552 Fix invalid string compare in IBIS parser
strcmp returns 0 if strings are the same but compareIbisWord returns
True (1).

Adds an IBIS simulation QA test case to catch this in the future

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16223

(cherry picked from commit ef8b6bf9e1)
2023-11-30 09:16:38 -08:00
Wayne Stambaugh 23175c163f Fix unconnected schematic net highlighting issue.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16218
2023-11-30 11:29:01 -05:00
Alex Shvartzkop 1ac1753048 Improve Symbol Fields Table appearance on GTK. 2023-11-30 08:37:42 +03:00
Jon Evans f3360a4442 Quote base64 data in DS and schematic 2023-11-29 16:17:41 +00:00
Jon Evans 786a4ce675 Use explicit booleans for schematic format 2023-11-29 16:17:41 +00:00
Jon Evans 7fe863c9d0 Quote UUIDs in schematic format 2023-11-29 16:17:41 +00:00
Jon Evans 4ff127b452 Parse generator_version and improve error output on mismatch
Also bump symbol format version for generator_version
2023-11-29 16:17:41 +00:00
Marek Roszko d1ecf3790c Add generator version 2023-11-29 16:17:41 +00:00
Jon Evans f1f8981395 Automatic whitespace and indentation prettification for sexpr formats 2023-11-29 16:17:41 +00:00
Mike Williams f993e45325 Variables: make consistent across editors
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16180
2023-11-29 09:55:17 -05:00
Graham Keeth 729659f5cf fixup title case properties 2023-11-29 10:17:05 +00:00
Alex Shvartzkop a352bd4a25 Improve Symbol Fields Table appearance on Windows. 2023-11-29 06:04:39 +03:00
Graham Keeth 4f36f669dc Use Title Case for property names 2023-11-29 01:23:35 +00:00
Alex Shvartzkop 08e6e0258f IBIS: add stub for Model Spec; support empty strings in line with keywords. 2023-11-29 00:24:34 +03:00
Seth Hillbrand 4d2b964f52 Use actual bounding limits for LIB_PIN bbox
The extra padding causes unwanted disambiguation menus especially when
working with LIB_PINs that tend to be closely packed

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16183
2023-11-28 10:47:57 -08:00
Jeff Young 07ee44740b Don't re-add item to screen if it wasn't there to begin with.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16184
2023-11-28 18:20:09 +00:00
Seth Hillbrand fb68fc3f85 Use more compliant sleep command 2023-11-27 15:03:06 -08:00
Seth Hillbrand 4a19bef2ac Handle external simulator output gracefully
On Windows, ngspice doesn't output messages to stdout or stderr, it
starts the gui which causes KiCad to hang until ngspice is terminated.
We want to handle immediate responses but not get hung by the external
process.  Passing a process class to wxExecute allows us to detach the
process (it will terminate and free itself) while still handling the
immediate output and errors

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15446
2023-11-27 13:20:46 -08:00
Mike Williams 58cc0e2d1e Schematic: correctly resolve SHEETNAME for root sheet 2023-11-27 13:45:12 -05:00
jean-pierre charras d1aa49e1c9 Eeschema, sch_painter.cpp: remove a line that was used only for a test.
It was added during a debug... and forgotten in code.
Fixes #16176
https://gitlab.com/kicad/code/kicad/-/issues/16176
2023-11-27 15:42:04 +01:00
Seth Hillbrand 75c6b0ab28 Added IPC2581 support
IPC2581 is a modern production file exchange system.  It provides
single-file data output for an entire board including BOM and netlist
information.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1954
2023-11-26 15:30:58 -08:00
Jon Evans 90a61b8d36 Prevent some issues with recursion on repeat-last-item
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16168
2023-11-26 16:43:59 -05:00
Jon Evans c3deafa597 Fix deprecation warnings in latest wxWidgets 2023-11-26 16:43:59 -05:00
Jeff Young df83e24eb7 Cleanup.
It's been a long time since line style was specific to plotting.
2023-11-25 13:12:45 +00:00
jean-pierre charras d4ce2c8982 Fix a few Coverity warnings. 2023-11-25 11:44:01 +01:00
jean-pierre charras bcea2aa73b EEschema, Cairo printing engine: some fixes:
- Try to activate anti aliasing
- disable Preview on GTK when cairo printing is selected: it does not work,
and is also disabled for Pcbnew / Gerbview for the same reason
2023-11-24 17:43:04 +01:00
Wayne Stambaugh 70dad45996 Fix broken schematic net highlighting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16131
2023-11-23 17:29:02 -05:00
jean-pierre charras 029df17b5a Eeschema, Cairo printing: adjust printing to page size and other refinements 2023-11-23 17:24:16 +01:00
jean-pierre charras 247a0e6501 Eeschema: Add Cairo printing to the Eeschema print engine. The current print engine (using wxDC draw engine) has frequently issues with each new wxWidgets version. Cairo printing engine, used for Pcbnew and Gerbview has less issues. On Eeschema, the cairo print is enabled only if the advanced config has the option "EnableEeschemaPrintCairo = 1" 2023-11-23 16:11:09 +01:00
Jeff Young 4a25ef164d Remove children from view_group when de-selecting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16139
2023-11-22 14:37:45 +00:00
Jeff Young e4b7170a92 Sort on first column if none specified.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16054
2023-11-21 17:14:22 +00:00
jean-pierre charras a3a2f43f6c eeschema, DIALOG_PLOT_SCHEMATIC: disable PDF option when format is not PDF
Fixes #16129
https://gitlab.com/kicad/code/kicad/-/issues/16129
2023-11-21 10:27:21 +01:00
Jeff Young f9c8f6ab79 Support single-field-mirroring in Symbol Editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13395
2023-11-20 22:56:14 +00:00
Jeff Young d382a11c2a Apply new on-canvas-item marking to footprint editor tree. 2023-11-20 19:46:03 +00:00
Jeff Young 196e05bc51 Borrow parts of simulator's separator-detection algorithm.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15248
2023-11-20 13:47:24 +00:00
jean-pierre charras b698ddc82c Eeschema: fix typo in files-io.cpp in revert command that deletes .kicad_sch file
Fixes #16114
https://gitlab.com/kicad/code/kicad/-/issues/16114
2023-11-20 08:47:33 +01:00
Jeff Young e73048bf98 Only set modified if it's an old file.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16113
2023-11-19 23:36:36 +00:00
Jeff Young c518041f9b Collapse drawing tools to a single re-entrancy guard.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16112
2023-11-19 14:17:48 +00:00
Jeff Young 37b6cd1714 Set modified flag when loading old s-expr files.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16113
2023-11-18 20:27:24 +00:00
Jeff Young f098405218 Handle justification for vertical text when mirroring.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15036
2023-11-17 21:50:16 +00:00
Jeff Young 95dcf54d8d New is-canvas-item highlighting. 2023-11-17 20:29:18 +00:00
Jeff Young a4a946ab75 Clearer naming. 2023-11-17 18:36:33 +00:00
Wayne Stambaugh f6c99816b2 Change the bus selection behavior of the schematic net highlight tool.
[CHANGED] Bus highlight tool now supports toggling between highlighting
          only the bus objects and highlighting the bus and all of the
          bus member objects.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15388
2023-11-17 07:16:12 -05:00
Alex Shvartzkop 76352234e5 ADDED: Support Altium .IntLib (Integrated Library) in fp/sym library tables. 2023-11-17 07:20:18 +03:00
Jon Evans 6cb046a4eb macOS: add a few more known file types
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14206
2023-11-16 12:11:42 -05:00
Jon Evans 44374c661f Database: handle more possible datatype exceptions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16090
2023-11-15 12:27:34 -05:00
Jon Evans 35edd84269 Handle non-IOE exceptions in symbol loader 2023-11-15 12:27:34 -05:00
Mike Williams 42e0f7c94e kicad-cli: wxS fix and doc string change 2023-11-15 12:21:30 -05:00
Mike Williams eb5e327086 kicad-cli: support * wildcard in BOM export
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16086
2023-11-15 10:44:17 -05:00
Mike Williams 5734a55515 kicad-cli: correctly label non-existent fields
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16085
2023-11-15 10:44:17 -05:00
Jeff Young d54e5b180b Use sheetname for single-sheet plotting to PDF.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14974
2023-11-15 11:07:05 +00:00
Jon Evans 0dea03654b CLI: schematic path needs to be made absolute along with project path 2023-11-14 11:55:51 -05:00
Jeff Young 298b309ebe Handle mirroring for multiple selections containing text or labels.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15936
2023-11-14 15:53:53 +00:00
Marek Roszko 0054b64143 Fix warning due to NONE enum member mixing 2023-11-13 20:23:59 -05:00
Ian McInerney 1900000371 Fix temporary variable type in schematic parser
The internal page info was switched to double in d8be69c3c1
but it was being rounded improperly to int on reading.
2023-11-13 22:52:12 +00:00
Jeff Young cd05acac34 Use pageSettings & titleBlock export flags when drawing new sheets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9285
2023-11-13 20:30:57 +00:00
Jeff Young 752d2d5295 Filter must return true for libraries.
Also fixes a bug where a single symbol library wasn't expanded
due to the presence of the "-- already placed --" and
"-- recently used --" pseudo-libraries.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16074
2023-11-13 17:18:15 +00:00
Jeff Young 229bcc7308 Cleanup. 2023-11-13 17:18:15 +00:00
Jeff Young f25a06b2a5 More globals eradication.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16031
2023-11-12 23:43:30 +00:00
Jeff Young 03953e80fc Enforce SCH_SHEET_PATH processing in (yet) more places.
Also fixes a bug where ERC testing for text variables in sheet pins
would start with the wrong sheet.

Also fixes a bug where ERC testing of similar labels would use the
wrong sheet.

Also fixes a bug where ERC testing of bus-to-net conflicts would use
the wrong sheet.

Also fixes a bug where ERC didn't process variable references when
checking hierarchical labels against sheet pins.

Also fixes a bug where ERC multiple-drivers and netclass-conflicts
tests didn't set a sheetpath.
2023-11-12 14:15:04 +00:00
Jeff Young 3819b2d5e7 Enforce SCH_SHEET_PATH processing in more places.
Making assumptions about the current SCH_SHEET_PATH has caused no end
of pain.
2023-11-11 17:46:06 +00:00
Jeff Young 7e46e85c7d Update copyrights. 2023-11-11 15:29:34 +00:00
Jeff Young bdead1d0b1 Use correct sheetpath when we have it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15870
2023-11-11 15:07:54 +00:00
Alex Shvartzkop 7589de6120 Optimize footprint/symbol library hover previews. 2023-11-09 19:02:10 +03:00
Alex Shvartzkop f8095fd31a Optimize CADSTAR library parsing.
-60% loading time.
2023-11-09 17:12:39 +03:00
Jeff Young 78e00ade7a Clearer naming. 2023-11-09 14:05:35 +00:00
Alex Shvartzkop b596568ce4 Use utf8. Partially reverts e35174d64b 2023-11-09 02:12:10 +03:00
Alex Shvartzkop e35174d64b Use buffered file io; use fn_str() more. 2023-11-09 01:24:54 +03:00
Alex Shvartzkop 5ccdb75091 Use CheckFileHeader in CADSTAR_SCH_ARCHIVE_PLUGIN::CanReadLibrary 2023-11-09 01:24:54 +03:00
Alex Shvartzkop d016f596f5 Add CADSTAR_SCH_ARCHIVE_PLUGIN::CanReadLibrary 2023-11-08 23:37:38 +03:00
Jeff Young 72c985bc07 Rewrite scoring algo again. (Third time's the charm?)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16042
2023-11-08 12:33:09 +00:00
Jeff Young a846e0219b Improve comment. 2023-11-08 12:33:09 +00:00
Alex Shvartzkop c048635484 Use v6 code to read arcs from legacy symbols libraries.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16048
2023-11-07 23:10:38 +03:00
Jeff Young 53cb63c173 Save text angle and justification settings.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16043
2023-11-07 15:47:00 +00:00
Jeff Young 6d43ef5678 Don't specify sizes when we don't need to.
However, in some places we *do* have to because otherwise wxWidgets
will pick a minimum size for us (and it's rather large).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16039
2023-11-07 14:53:41 +00:00
jean-pierre charras c53b318759 Eeschema, plot schematic: fix incorrect rotation of symbol text in textboxes.
Happened with rotated symbols.
Fixes #16027
https://gitlab.com/kicad/code/kicad/-/issues/16027
2023-11-05 14:04:28 +01:00
Jeff Young f83d60a48f Clean up autosave files when reverting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15998
2023-11-05 12:20:31 +00:00
jean-pierre charras 88a4979fff Eeschema, print schematic: resolve text variables in symbol graphic text.
Variables in graphic text (body item) were resolved in plot, but not in print function.
Fixes #16026
https://gitlab.com/kicad/code/kicad/-/issues/16026
2023-11-05 11:41:02 +01:00
Jeff Young 32806a3b8b Make sure plot tab gets its SpicePlotName updated.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16013
2023-11-04 15:45:08 +00:00
Jeff Young 1c746f0134 Correctly parse fft commands with linearize in them.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16011
2023-11-04 15:45:08 +00:00
Jeff Young b6e1387e18 Don't overwrite linearize command with fft command.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16011
2023-11-04 15:45:08 +00:00
Alex Shvartzkop b2825663be Fix SCH_SHAPE rotation direction. 2023-11-04 17:10:26 +03:00
Jeff Young 23063fa976 Now that we allow open-text netclass references we need to ERC check them.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12442
2023-11-04 13:59:28 +00:00
Alex Shvartzkop 98d59f99ab EasyEDA Pro: Fix SVG mirrored SVG images in schematic. 2023-11-04 15:21:22 +03:00
Jeff Young 97185ba90c Run properties action from double-click in SCH search pane.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16013
2023-11-03 18:54:29 +00:00
Jeff Young f7d899a0fb Don't accept random values; use the popup to change to a known alternate
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16021
2023-11-03 18:48:30 +00:00
jean-pierre charras a6f9174c0c legacy library import: fix compatibility with some old symbol libraries (*.lib files). 2023-11-03 12:48:34 +01:00
Jeff Young b4602616c2 Hack around wxWidgets bug that draws two pages over each other.
Also improves spacing in some of the pages.
2023-11-02 18:37:55 +00:00
Wayne Stambaugh 91b503f875 Minor dialog layout fixes. 2023-11-02 09:37:44 -04:00
Jon Evans 85f720e940 Rewrite number string, dont' append to it 2023-11-01 12:18:37 -04:00
Jon Evans bc42546609 Try harder to save schematic properties panel width
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15957
2023-11-01 08:42:06 -04:00
Jon Evans 81818cfb1e Fix refnum handling in reannotation 2023-11-01 08:26:48 -04:00
Jon Evans 9271fde71d Preserve leading zeroes in reference designators
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15760
2023-10-31 22:51:45 -04:00
Jon Evans d6b76ae9df Net navigator: Unescape net names 2023-10-31 22:19:48 -04:00
Jon Evans e14e7e0bd9 Enforce symbol name not being empty
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15859
2023-10-31 22:11:46 -04:00
Jon Evans 24e613f60c Escape net names coming from aliases
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15212
2023-10-31 22:06:21 -04:00
Jeff Young 67d8b13b02 And Font to properties manager for EDA_TEXT items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16004
2023-11-01 00:39:42 +00:00
Jeff Young 972308b24b Assign textBox to correct unit & conversion.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15994
2023-10-31 23:20:59 +00:00
Seth Hillbrand de0736863b Allow multiple strong drivers with same name
Multiple labels with the same name are allowed (and expected) so ensure
that we use a structure that allows duplicate names
2023-10-31 11:52:29 -07:00
jean-pierre charras d8be69c3c1 PAGE_INFO: use double instead of int to store the page size.
For historical reasons, they are stored in mils, but using int create rounding
issues when converting to/from mils to IU in dialogs.
This is a minor but annoying issue.
Fixes #16000
https://gitlab.com/kicad/code/kicad/-/issues/16000
2023-10-31 13:47:32 +01:00
Alex Shvartzkop 3d5721a217 Fix some warnings. 2023-10-31 04:25:19 +03:00
Jon Evans 3faf3ea27c Fix ambiguous overload error in gcc 11 2023-10-30 20:59:25 -04:00
Alex Shvartzkop 2aa67ae1af EasyEDA Std: Support image transformations; SVG images in schematic. 2023-10-31 02:21:32 +03:00
Alex Shvartzkop e24c8de4b8 EasyEDA Std: Fix open polygon shapes in symbols. 2023-10-31 02:21:32 +03:00
Alex Shvartzkop f48a248db4 EasyEDA Std: Handle HTML escape characters in text. 2023-10-31 02:21:32 +03:00
Jeff Young 87571ed8b8 Not all font sizes, fill properties or color properties are the same. 2023-10-30 17:30:15 +00:00
Wayne Stambaugh 6183a1e4de Coverity warning fixes. 2023-10-30 09:16:24 -04:00
Jeff Young 7959c841fd Move vertical alignment icons out of text-box-only section.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15988
2023-10-30 12:33:23 +00:00
Jeff Young 1f7ac0834c EEschema currently supports only normal vs bold for text thickness.
https://forum.kicad.info/t/font-width-bug-in-schematic-editor/45871
2023-10-30 12:09:43 +00:00
Alex Shvartzkop 4b083fc342 EasyEDA Pro: support SVG images in schematic; support bitmap rotation/flip. 2023-10-30 11:34:42 +03:00
Alex Shvartzkop 847ab093c8 ADDED: Project chooser dialog for EasyEDA Pro import. 2023-10-30 09:35:27 +03:00
Seth Hillbrand 6633eadfc8 Enclose wxCHECK* macros in braces
The macros are if/else statements without enclosing structures which
leads to unexpected evaluation when expanding in an existing conditional
that does not have braces already.
2023-10-29 10:52:05 -07:00
Jeff Young 14d6ff8946 Change Save Symbol As... to Save Symbol Copy As...
See details in the bug report.  (It's very complicated.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12504
2023-10-28 22:25:48 +01:00
Wayne Stambaugh 30ba1b8007 Coverity warning fix.
This fixes all of the warnings cause by using std::weak_ptr objects when
recursing the symbol inheritance tree to retrieve the root symbol.  The
issue is that the weak pointers are not guaranteed to be valid for each
recursion because the lock will go out of scope.  Using a std::shared_ptr
object will ensure the lock is valid until it goes out of scope.
2023-10-28 13:25:30 -04:00
Jeff Young 708b42ea69 Fix off-by-one error when creating user-defined signals.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15970
2023-10-28 13:27:48 +01:00
Ian McInerney 171458a27b Introduce action friendly names
Friendly names can be used to display action information that is clearer
in non-hierarchical contexts (e.g. not in menus).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8075
2023-10-27 23:58:29 +01:00
Zhuang Jiezhi 61d03b41ec Eeschema: Fix crash of modifying graphic item and abort with ESC by adding re-entrancy guards 2023-10-27 21:19:31 +00:00
Wayne Stambaugh 6269453416 Coverity warning fixes. 2023-10-27 16:48:14 -04:00
Jeff Young 6b29c346b9 When presented with empty text we don't want to Normalize() the SIM_VALUE.
But we *do* need to update NUMERICAL_EVALUATOR::m_originalText by
calling NUMERICAL_EVALUATOR::Process().

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15871
2023-10-27 16:59:28 +01:00
Jeff Young 8cba785375 Single warning for all locked sheets when saving schematic.
Also checks for modified before trying to save at all.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15946

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15963
2023-10-27 14:58:30 +01:00
Seth Hillbrand 1290cf6241 Fix missing random sim command
(cherry picked from commit 3ce4a5bf7f)
2023-10-26 09:47:43 -07:00
Jeff Young ca9fdbbedb Use a slower method of keeping dangling state correct for current sheet.
(The faster method ran into unit test failures.  There must be
something in here that's order-specific.)
2023-10-26 15:22:15 +01:00
Jeff Young 84b0848a1e Make sure that current sheet's units and dangling states are correct.
We used to store the symbol units of the current sheet and then
restore them, but we didn't handle the dangling states.

The new code uses a different strategy and just makes sure that if
any of the sheets are going to modify the current screen, the current
sheet gets to go last so that its modifications will "stick".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15392
2023-10-26 13:07:16 +01:00
jean-pierre charras 5bf241a53e Pcbnew, export component placement: better string in menu (.gbr added).
Also fix 2 minor Coverity warnings.
2023-10-25 09:41:08 +02:00
Jeff Young fefb3d96dd Better clarity and memory leak fixes for LTspice importer.
Moves some exception processing to a REPORTER interface so we don't
leak a bunch of memory by exiting early.

Also adds some assertion processing to make sure we're not leaking
in other places.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15158
2023-10-25 00:11:08 +01:00
Jeff Young 46aecefb04 Re-enable import non-Kicad project, but make it clear current will be lost.
(And there's no sense in asking if they want to save changes first,
as those will be lost too.)
2023-10-25 00:11:08 +01:00
Alex Shvartzkop 0158377cb7 Fix schematic text properties dialog more, for wx 3.2.3. 2023-10-25 00:12:49 +03:00
jean-pierre charras d9b5257b9e DIALOG_TEXT_PROPERTIES: Fix a cosmetic issueFixes #
Fixes #15940
https://gitlab.com/kicad/code/kicad/-/issues/15940
2023-10-24 19:28:40 +02:00
Seth Hillbrand 4741a5ed4c Fix memory leak in connection graph
When generating virtual connections to represent bus aliases, we need to
store the pointers for future deletion otherwise we will leak the memory

(cherry picked from commit 9260f58803)
2023-10-23 13:47:07 -07:00
Seth Hillbrand 86208a7922 Improve pin-pin iteration in ERC checks
Rather than generating expensive classes to store in a set to check for
duplicate checks, we avoid double-checking elements in the vector.  For
large schematics this results in a substantial speed increase

(cherry picked from commit 1a5c515e45)
2023-10-23 13:45:43 -07:00
Seth Hillbrand 8cbad7a3c0 Compare bus local names
When running ERC, we want to check if bus members exist in the bus and
this should be done using m_local_name (i.e. the name it take from the
parent bus) not the resolved name as this will change depending on
connections

(cherry picked from commit 1380feef72)
2023-10-23 12:54:58 -07:00
Jeff Young 435e3fab8d Support text variables in STEP export filename.
Also fixes some other file browser titles to match Kicad's overall style.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15927
2023-10-23 18:01:47 +01:00
Mike Williams 8ec2eb600a Point editor: manually manage grid lifetime for now
Will prevent crashes until we can fix this correctly.
2023-10-23 10:57:54 -04:00
Mike Williams 91b6bb8088 Grid helpers: remove view items on destruction 2023-10-23 09:39:08 -04:00
Mike Williams 9e48c0b695 Grids: placing symbols should respect connectables, not graphics 2023-10-23 09:34:06 -04:00
afkiwers dc8a5865d5 Symbol Editor: SCH_HTTP special treatment
Added SCH_HTTP to receive special treatment, same like with database libraries!
2023-10-22 19:37:43 +00:00
Jon Evans eb5b3db063 Add bitmap bundle support to BITMAP_SCALE
Change a bunch of buttons and toolbars to use it

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14119
2023-10-22 14:02:06 -04:00
Alex Shvartzkop 71fb1afe4c Add ngspice lib paths for when running from build dir. 2023-10-22 19:58:17 +03:00
Jeff Young 3e4d5d776d Add --exclude-pdf-property-popups to schematic plotting CLI. 2023-10-22 12:33:55 +01:00
Jeff Young 7cca303f65 Expose missing properties for label shapes. 2023-10-22 12:33:55 +01:00
Jeff Young f50de028fb Make plotting of PDF property popups optional. 2023-10-21 21:52:51 +01:00
Jeff Young 68e46ecad5 Don't set modified flag when updating measurement format internally.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15909
2023-10-21 14:26:31 +01:00
Jeff Young eff4e2cc9c Convert windows file paths to unix notation.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15888
2023-10-21 13:33:22 +01:00
Seth Hillbrand 27bf47d752 Protect equality operator against invalid fields 2023-10-21 00:55:57 +02:00
Jeff Young 903c01cb20 Make ERC grid error clearer that it's about the connection grid.
Also adds a context menu item to edit the connection grid spacing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15908
2023-10-20 21:01:58 +01:00
Jeff Young 12118b6246 Make sure measurements are updated from grid before saving workbook.
Also fixes a typo when loading measurements.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15909
2023-10-20 17:36:17 +01:00
Jeff Young 62eaa7e1c7 Signals already have gain/phase broken out; user-defined signals don't.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15903
2023-10-20 14:09:46 +01:00
Seth Hillbrand d99641be40 ADDED: Git integration support
Adds support for project-based git integration, branch support, commit,
revert and updates

Fixes https://gitlab.com/kicad/code/kicad/issues/10441
2023-10-20 12:51:47 +00:00
Wayne Stambaugh c4a9703f81 Minor dialog layout fixes. 2023-10-19 11:59:35 -04:00
Jeff Young 134685bc32 Optical alignment for capital 'T's. 2023-10-19 15:02:38 +01:00
Jeff Young b089630b4c Simplify Import Graphics.
Removed no-longer-required differentiation between importing
footprint vs board objects.

Renamed files to match the dialog.

Made Position At and Set Layer optional checkboxes.
Removed Group Items checkbox.  (In the unlikely event that you don't
want a group, do an UnGroup after importing.)

Flattened out labelled-sizers in the dialog.

Removed importers blacklist, which hasn't been active for at least 4
years.

Fixed undo/redo bug that caused items to be no-longer-grouped after
a redo.
2023-10-19 01:31:13 +01:00
Wayne Stambaugh f629898c8b Coding policy fixes. 2023-10-17 08:07:15 -04:00
Marek Roszko bee6e6be01 AddMenuLanguageList should live in EDA_BASE_FRAME, its only user 2023-10-16 19:49:52 -04:00
Marek Roszko ba83e84b91 Move SaveCanvasImageToFile to EDA_DRAW_FRAME rather than leaking things to bitmaps 2023-10-16 18:33:11 -04:00
Wayne Stambaugh b5eee9dd7e Coverity warning fixes. 2023-10-16 17:04:14 -04:00
Mike Williams 2849388d2e Symbol Fields Table: save Select option correctly
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15857
2023-10-16 13:42:51 -04:00
jean-pierre charras 7efd414519 Fix minor Coverity and compil warnings 2023-10-15 15:55:31 +02:00
Alex Shvartzkop ace7cbddfe CADSTAR: look for the symbol library .csa file under different names. 2023-10-15 05:56:38 +03:00
Alex Shvartzkop 77eaf252e2 CADSTAR: use pin labels if pin names are not available. 2023-10-15 05:49:07 +03:00
Alex Shvartzkop c7daf511bc Fix importing a symbol in Symbol editor. 2023-10-15 05:48:17 +03:00
Jeff Young d5d07e64c9 Use IsShownOnScreen(), not IsShown(), if you really want to know if its visible. 2023-10-14 23:51:37 +01:00
Alex Shvartzkop a16bdb7288 ADDED: Support EAGLE libraries directly in Symbol Library Table.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2214
2023-10-15 01:45:39 +03:00
Alex Shvartzkop 9ed19192de Improve editing values with {return} in text fields; Add hyperlink detection. 2023-10-15 01:45:39 +03:00
Jeff Young 95032bd487 Make ERC off-grid check user-configurable.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14110
2023-10-14 20:47:03 +01:00
Alex Shvartzkop b87496b834 Fix loading legacy (until 2009) schematic files. 2023-10-14 15:42:13 +03:00
Alex Shvartzkop 7b94ecdc01 Fix the insufficient privileges message in symbol remap dialog. 2023-10-14 15:42:13 +03:00
Alex Shvartzkop 83af481688 Improve EAGLE file header detection. 2023-10-14 15:42:13 +03:00
Jeff Young 0b06a1376b Don't turn an empty string into a '0'.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15871
2023-10-13 19:07:45 +01:00
Marek Roszko 0fe2e06949 Fix ambiguous cast compiler errors on MSVC 2023-10-12 19:07:12 -04:00
Wayne Stambaugh 50ec069a01 Fix build warnings. 2023-10-12 10:10:09 -04:00
Wayne Stambaugh 5d6ef69726 Coding policy and Doxygen comment fixes. 2023-10-12 09:36:28 -04:00
Alex Shvartzkop b0f4adf052 Improve borderless items logic in schematic plotting. 2023-10-12 08:40:37 +03:00
jean-pierre charras 97fe27350f symbol_checker: add more tests to validate the ssymbol.
especially, null sized rectangles and circles are tested.
2023-10-10 18:31:10 +02:00
Jeff Young 8c017be24a Clearer naming. 2023-10-10 15:43:45 +01:00
Wayne Stambaugh 9ff8d02e60 Symbol library manager object changes.
* Fix issue handling symbols with multiple inheritance.
* Remove unused code from the symbol library manager object.
* Splits out the library buffer and symbol buffer object so the can be unit
  tested without having to mock the symbol library manager object.
* Add unit tests for library buffer and symbol buffer objects.
2023-10-09 14:58:49 -04:00
Alex Shvartzkop 21adc0aac5 ADDED: Import vector graphics into Schematic editor (SVG, DXF). 2023-10-09 07:04:50 +03:00
Alex Shvartzkop 60d069757a ADDED: Import vector graphics into Symbol editor (SVG, DXF). 2023-10-09 07:04:50 +03:00
Jeff Young 4d0ee276e8 Suppress "File: " when we're showing the Sheetfile field name.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15637
2023-10-07 10:41:02 +01:00
Jeff Young b161105fce Fix assertion failure in bus alias dialog. 2023-10-06 21:41:16 +01:00
Alex Shvartzkop f197882f78 Enable translations for "Open cancelled by user." in some sch plugins. 2023-10-06 15:35:58 +03:00
jean-pierre charras e48256d41a DIALOG_SYMBOL_FIELDS_TABLE::OnExport(): better error messages. 2023-10-06 13:50:59 +02:00
Seth Hillbrand d6c3f4d190 Protect against subgraph loops
Optimize the subgraph processing to avoid repeated loops when multiple
items belong to the same subgraph.

(cherry picked from commit 75de21314c)
2023-10-05 09:20:26 -07:00
jean-pierre charras 706b42e6f2 SCH_COMMIT: when clearing all item flags, do not clear all item flags.
If a item is selected, its SELECTED, STARTPOINT and ENDPOINT flags cannot be cleared,
and must be still selected after changes to allow more move, rotate... commands.
Fix to previous commit 741c6f2d
2023-10-05 16:46:20 +02:00
Jeff Young 31c488bc23 NETINFO_ITEMs are owned by BOARD.
Lifecylce management must go through BOARD_COMMIT (or at least
the frame's undo/redo lists).
2023-10-04 21:01:33 +01:00
Jeff Young e9bdfe7210 Save trace colors during session.
My first thought was to move the color out of the TRACE, which is
really a view object.  However we can't make signals a first-class
citizen either, because they change depending on what the current
simulation tab is and so (for instance) we can only load in the
workbook signals for the current tab.  Hours later I backed it all
out and arrived at this simpler, less "correct" solution.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14231
2023-10-04 17:13:08 +01:00
Jeff Young ed4d66e76b Remove dead code. 2023-10-04 17:13:08 +01:00
Franck Jullien c010c7b0ea eeschema: add 'Already placed' category when choosing symbol 2023-10-04 10:29:22 -04:00
Jeff Young 979942e31a Output fields in both multi-unit and single-unit cases.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15811
2023-10-03 17:38:26 +01:00
Jeff Young 95f05ee869 Fix copy/pasta. 2023-10-03 17:14:21 +01:00
Jeff Young 9f5e583ced Readability. 2023-10-03 17:14:03 +01:00
Jeff Young 9b60e99660 Use wxSTAY_ON_TOP instead of wxFRAME_FLOAT_ON_PARENT for choosers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15808
2023-10-03 14:49:50 +01:00
Jeff Young 6fbbf981f0 Handle justification when hit-testing fields.
This steals the algo used in SCH_PAINTER to get the right coords
for the text.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15722
2023-10-03 14:36:13 +01:00
Jeff Young 0c055e15b7 Keep user-defined signals separate.
They can't be plotted till the end of the sim.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15803
2023-10-03 12:59:49 +01:00
Jeff Young 827942c560 Clarity. 2023-10-03 12:59:49 +01:00
Jeff Young 2dfdf0682f Don't ask for empty data. 2023-10-03 12:59:49 +01:00
jean-pierre charras a60411b159 Fix a few compil and Coverity minor warnings. 2023-10-03 08:22:03 +02:00
Marek Roszko 5759823ca0 Move JOB_EXPORT_SCH_PLOT to kicommon horribly pending further refactor of plotting 2023-10-02 20:48:26 -04:00
Jeff Young a3d83cdb6d Pass symbol netlist from Field Properties dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15806
2023-10-02 23:41:06 +01:00
Jeff Young 06446bb80e Only expand lib tree when filtering. 2023-10-02 16:24:53 +01:00
Mike Williams 532ac6992a Fields: make sure footprints get a footprint
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15796
2023-10-02 11:02:10 -04:00
Jeff Young 003acbd686 Clear render caches before plotting.
Also fixes a bug where text variables in LIB_TEXT weren't getting
expanded when plotting.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15765
2023-10-02 15:39:14 +01:00
Marek Roszko 6d3b846eb5 Add more missing destructor event cleanups 2023-10-02 07:22:00 -04:00
Jeff Young cf02bb171f Expose exclusion flags in search pane.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15776
2023-10-01 22:46:34 +01:00
Jeff Young a82a007301 Allow user to affect width of field names column.
Without this there's no way to re-adjust the column width when new
items are added.  Doing more auto-sizing would be another option,
but at some point we have to stop trying to be smarter than the
user.  (And the resize algo already has bugs on Mac causing us to
make the column too short for "${ITEM_NUMBER}" for some reason.)
2023-10-01 20:47:47 +01:00
Marek Roszko c5471bbe9f Gracefully handle unknown schematic formats
Fixes KICAD-400
2023-10-01 10:32:33 -04:00
Marek Roszko bfbba632df Guard GetModificationTime with IsValid otherwise it'll return based on INT64_MIN.
Fixes KICAD-3Z0
2023-10-01 09:43:09 -04:00
Alex Shvartzkop dca964092f EasyEDA Std: import schematic images. 2023-10-01 16:21:31 +03:00
Alex Shvartzkop 979274af7c EasyEDA Std Schematic: import net ports as global labels. 2023-10-01 16:21:28 +03:00
Marek Roszko 0fc3f20e4d Fix assert from IsPower in search_handlers.cpp
Fixes KICAD-2C6
2023-10-01 09:20:19 -04:00
Thomas Pointhuber 7005dd7c48 altium: make special string parsing on pcb a bit more generic
Only special strings starting with a dot are supported. Parsing of concatenated special strings using quotes needs to be implemented, but at least a few test-cases are already there now.
2023-10-01 15:10:50 +02:00
Jeff Young 34769cec63 Filter line-endings from single-line Scintilla editors.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15793
2023-10-01 14:04:45 +01:00
Thomas Pointhuber 3b3e4fd34a Move duplicated code of plugin.cpp and sch_plugin.cpp into a new plugin_utils located in commons 2023-10-01 13:58:38 +02:00
Jeff Young a475b01a90 Remove ic parameter from voltage-controlled sources.
It was never supported by ngspice (or LTspice or pspice).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15787
2023-10-01 12:16:25 +01:00
jean-pierre charras b227f9de61 Eeschema: fix a crash when loading a schematic if a symbol in a sheet has
a lib_name containing {slash} instead of /
(related to commits #2f51d22b and b2bf28f5)
Fixes #15791
https://gitlab.com/kicad/code/kicad/-/issues/15791
2023-10-01 09:56:22 +02:00
Jeff Young bbfe01d4c6 Write out datasheet & descr in fields as well as top-level elements. 2023-10-01 00:36:39 +01:00
Marek Roszko 2f2c8b9414 Fix printf assert
Fixes KICAD-41B
2023-09-30 15:38:23 -04:00
Jeff Young 423a5b9961 Fix format string specifier. 2023-09-30 17:38:44 +01:00
jean-pierre charras b2bf28f559 Eeschema: fix a crash when loading a schematic if a symbol in a sheet has
a lib_id containing {slash} instead of /
(related to commit #2f51d22b)
Fixes #15791
https://gitlab.com/kicad/code/kicad/-/issues/15791
2023-09-30 18:21:18 +02:00
jean-pierre charras 7bc2d69ab7 Fix a typo and a Coverity warning 2023-09-30 18:17:09 +02:00
Jeff Young e1c51ed192 A few performance improvements from profiling.
Most of them are very small; the removal of the Fracture() in
DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones() is the only
significant one.
2023-09-29 21:54:59 +01:00
Jeff Young fa11e9138d ADDED support for pin and fp filtering in FOOTPRINT_CHOOSER.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7176
2023-09-29 17:03:50 +01:00
Jeff Young b592a6634e Cleanup. 2023-09-29 00:13:13 +01:00
Jeff Young 974da4ea7c Push most of DIALOG_CHOOSE_SYMBOL down into PANEL_SYMBOL_CHOOSER.
Includes a dialog wrapper (DIALOG_SYMBOL_CHOOSER) and a frame
wrapper (SYMBOL_CHOOSER_FRAME).
2023-09-29 00:13:12 +01:00
Jeff Young 23033451b1 Cleanup. 2023-09-29 00:13:12 +01:00
Mike Williams 49a8c9eb8d Schematic: pin helpers, add wiring tool 2023-09-28 15:07:11 -04:00
Wayne Stambaugh 2f51d22b3a Fix schematic editor crash when updating symbols.
Some how symbol names that still have escaped '/' character get mixed with
symbol names that have '/' characters now that it is no longer an invalid
LIB_ID character.  This was causing derived symbols to loose the link to
the parent symbol.  This fix replaces any instances of "{slash}" with "/"
to convert symbol names to the proper escaping.

Thanks to JP for the inspiration for the fix.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15715
2023-09-28 14:30:15 -04:00
Mike Williams 5f88c132c9 Schematic: add pin helpers menu (quickly breakout pins) 2023-09-28 11:44:52 -04:00
Matthias Breithaupt be9e4c79ee CLI: Sanitize filename when exporting symbol as svg
When using symbol names as filenames, invalid characters and
characters that might be mis-interpreted (e.g. '/') have to be
removed from the name to prevent unexpected behavior.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15751
2023-09-28 13:02:47 +00:00
Marek Roszko 8c6899b0d3 Tear out the eeschema conditional compile of PROJECT 2023-09-27 23:05:30 -04:00
Jon Evans 017dafc8e3 Just use \n for newline
Fixes issues with extra blank lines in CSV on some platforms
2023-09-27 15:46:23 -04:00
afkiwers c97db9b6c4 fixed for field duplication
This removes case-sensitivity when mapping.
2023-09-27 18:12:39 +00:00
Jeff Young 1047130046 Push most of footprint chooser into PANEL_FOOTPRINT_CHOOSER.
Create 2 wrappers for it: DIALOG_FOOTPRINT_CHOOSER and
FOOTPRINT_CHOOSER_FRAME.  The first now gets called from wxGrid
editors, text button editors (such as Change Footprints), etc.

Retire FOOTPRINT_VIEWER_FRAME_MODAL.  FOOTPRINT_VIEWER_FRAME still
exists, but has very few uses at this point.
2023-09-27 16:02:13 +01:00
Mike Williams 0000fcbe50 Schematic Setup: add BOM Preset importing 2023-09-27 09:14:25 -04:00
Mike Williams cb115189f6 Symbol Fields Table: menu shortcut should start in edit tab
The BOM shortcut goes to Export, this makes them symmetrical.
2023-09-27 09:14:25 -04:00
Seth Hillbrand 12ebb2bbfa Set pinmap after updating pins
When duplicating and existing symbol, we must set the pins before
setting the lib symbol as the lib symbol will generate a pin map that
will be broken by the shift to new pins

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15728
2023-09-26 11:31:16 -07:00
Jeff Young 54171ec030 Add action for switching to Project Manager.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15740
2023-09-26 17:25:57 +01:00
Jeff Young aab0696bb6 Zoom undo/redo for simulator.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14580
2023-09-26 13:19:41 +01:00
Marek Roszko 37e8a008ab Remove obsolete config_params.h includes 2023-09-25 20:40:29 -04:00
Jeff Young 92cbd0f599 Allow Never Show Rescue Symbols to be turned back off.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15733
2023-09-25 23:58:15 +01:00
Jeff Young bf493f32f5 Nullptr safety for various panels.
Also moves preference saving out to parent as different parents
save different settings.
2023-09-25 12:35:54 +01:00
Jeff Young 7835b8ddc7 Bring various appearance managers into line over preset editing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15726
2023-09-25 12:35:54 +01:00
jean-pierre charras 938001250d SCH_SEXPR_PARSER: fix missing init of pixels size in internal units.
(the pixel size was the default for 300PPI, so the bounding box was incorrect
for images not using 300 PPI)
Avoid also magic numbers in SCH_BITMAP code.
2023-09-25 12:06:23 +02:00
Seth Hillbrand 91450c22cc Allow disambiguation menu configurability
Adds an advanced config flag to all testing different values for
different users.

Related to https://gitlab.com/kicad/code/kicad/-/issues/15128
2023-09-24 16:33:05 -07:00
Andre Iwers f2fdf0f3df httplib: add support for exclude attributes
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15720
2023-09-24 13:37:01 +00:00
jean-pierre charras 741c6f2d55 SCH_COMMIT: when clearing all item flags, do not clear SELECTED item flags.
If a item is selected, its SELECTED flag cannot be cleared without managing
selections stored in tools, and must be still selected after changes.
Fixes #15671
https://gitlab.com/kicad/code/kicad/-/issues/15671
2023-09-24 11:07:04 +02:00
Marek Roszko 121ea99824 Move the settings path to PATHS to allow shifting other classes into kicommon 2023-09-23 20:06:58 -04:00
Marek Roszko f8e33be07f Break out the boundary violating parts of gal into common through subclassing 2023-09-23 09:37:47 -04:00
Jeff Young 1fd3f4e375 Handle read-only libraries when saving symbol from canvas.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15519
2023-09-23 14:34:54 +01:00