Commit Graph

136 Commits

Author SHA1 Message Date
Maciej Suminski 5da3dd1788 Restore parsing order in the legacy symbol library plugin 2024-04-19 22:33:28 +00:00
Jeff Young d761b4f22f RIP LIB_TEXTBOX and LIB_SHAPE. 2024-04-16 16:31:16 +01:00
Jeff Young 3efe504dcc Collapse LIB_TEXT into SCH_TEXT. 2024-04-16 16:31:16 +01:00
jean-pierre charras b7f035964f Fields in symbols: Ensure visibility is correctly set when reading a file
Also ensure default fields visibility is correctly set when creating a symbol
Change default field visibility to true in SCH_FIELD Ctor

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17767
2024-04-15 18:19:19 +02:00
Jeff Young d77eae3e7e Collapse LIB_FIELD into SCH_FIELD. 2024-04-13 15:42:13 +01:00
Seth Hillbrand 6c17e275fb Revert "Re-enforce ordering"
This reverts commit b22fcf70cd.
2024-04-12 14:14:06 -07:00
Seth Hillbrand b22fcf70cd Re-enforce ordering
Instances, pins and graphics have started to wander around the files.
Sorts instances before writing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17737
2024-04-12 11:58:30 -07:00
Seth Hillbrand f08cacb30f Revert "Re-enforce ordering"
Unexpected element loss after save.  Reverting to fix

This reverts commit f2f4890342.
2024-04-12 10:34:11 -07:00
Seth Hillbrand f2f4890342 Re-enforce ordering
Instances, pins and graphics have started to wander around the files.
Sorts instances before writing.  Uses compare with std::set (not
std::multiset) to enfore lib item ordering

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17737
2024-04-12 10:08:46 -07:00
Seth Hillbrand e14e956c1d Fully order schematic saves 2024-04-11 16:54:30 -07:00
afkiwers d45911f54b add support to update an already existing field 2024-04-09 23:37:20 +00:00
Jeff Young 5abc7145da Fold LIB_ITEM into SCH_ITEM. 2024-04-08 10:24:50 +01:00
Jeff Young c5ed80af52 Harmonize rotate APIs. 2024-04-06 09:34:56 +01:00
Jeff Young 92910d5d0f Factor common parts of SCH_ & LIB_SYMBOL into SYMBOL. 2024-04-04 13:18:55 +01:00
Jeff Young bf2b3b0b0f Deconflict some LIB_TREE_ITEM APIs so they can remain non-const.
(The non-const is required by FOOTPRINT_INFO, which must load
footrpints to get some of the data.)
2024-04-04 13:18:55 +01:00
Jeff Young 3a430357bc Cut/copy/paste for SCH tables.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17335
2024-03-28 14:34:11 +00:00
Alex Shvartzkop 1c7e3871b5 Fix warning due to unused angle in EasyEDA Pro schematic parser. 2024-03-23 17:51:19 +03:00
Marek Roszko 490dbfdf83 Fix build warnings 2024-03-23 08:34:59 -04:00
Jon Evans f00f47df13 wxWidgets 3.3 compatibility: explicit wxString conversion 2024-03-20 22:02:41 -04:00
Wayne Stambaugh 865225fcca Use correct value field text when importing Eagle schematic symbols.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17130
2024-03-11 15:19:32 -04:00
Jon Evans 4bc69183ab Set description on Altium imported symbols
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16943
2024-03-05 23:08:11 -05:00
Alex Shvartzkop c056ef407a EasyEDA Std: support multiple schematic sheets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17219
2024-03-04 15:09:31 +03:00
Alex Shvartzkop cc181df916 EasyEDA Std: support Dot and Clock symbol pin styles. 2024-03-04 15:09:31 +03:00
Alex Shvartzkop 69b15e83c5 EasyEDA Std: hide invisible text in symbols. 2024-03-04 15:09:31 +03:00
Alex Shvartzkop 563278d0f6 EasyEDA Pro schematic: place items on root sheet when it's the only sheet. 2024-03-04 15:09:31 +03:00
Lucas Dumont 13c647ef6f Fix resources leak reported by coverity
For unique_ptr, release only set the ownership to null, but don't free the resource behind. On the other hand, reset do. 

Closes Coverity ID 483269
Closes Coverity ID 471974
Closes Coverity ID 471973
2024-03-03 16:23:49 +00:00
Roberto Fernandez Bautista 4851b0f1ac Database library cache: fix memory leak 2024-03-03 16:20:32 +00:00
Roberto Fernandez Bautista 70fe2a8f1e kicad_cli: Allow upgrade of legacy and non-kicad symbol libraries 2024-03-02 13:06:23 +01:00
Mike Williams a902898522 schematic: legacy kicad schematic files don't have a default description field
Without this, we would parse a legacy schematic symbol field at the same
index as the new description field's index into description, instead of into
a user field.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17202
2024-03-01 10:40:03 -05:00
Alex Shvartzkop defcb49ac8 Support Altium Schematic ASCII import 2024-02-29 20:49:20 +00:00
Alex Shvartzkop 39a0a81832 EasyEDA Std import: support multiline text on PCB.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17171


(cherry picked from commit 0dab086f0c)
2024-02-29 00:54:46 +00:00
Alex Shvartzkop 0314540fdb
Keep schematic text upright (especially when opening v6 schematic).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17082


(cherry picked from commit bec068324e)
2024-02-28 15:25:39 +00:00
Jeff Young aef87b9796 Push thickness handling down into EDA_TEXT::SetBold().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17077

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14875
2024-02-25 17:28:52 +00:00
Jon Evans d939004bbd Fix use-after-free in Altium importer
If the library already contains a symbol with the same name,
SaveSymbol will replace the existing symbol,
which will invalidate a cached pointer.
2024-02-25 08:47:07 -05:00
Jeff Young 4eefbc7815 ADDED: textbox and tablecell margins.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10672

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6806
2024-02-24 20:05:51 +00:00
Jeff Young e445249720 ADDED: PCB tables. 2024-02-24 20:05:51 +00:00
Jeff Young 91df43c97a ADDED: schematic tables.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6806
2024-02-24 20:05:50 +00:00
Alex Shvartzkop cb25c8620e Performance optimizations for database libraries.
(cherry picked from commit e68df8e1d1)
2024-02-23 20:29:18 +03:00
Jeff Young 98cd040952 Set up default netclass wire & bus widths.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17024

(cherry picked from commit 2d7f4faf72)
2024-02-23 16:53:35 +01:00
Jeff Young 2c49ba4252 Formatting.
(cherry picked from commit c75bb5d01a)
2024-02-23 16:53:35 +01:00
Roberto Fernandez Bautista d464d7995b Thread safety: replace ++m_modHash by IncrementModifyHash() 2024-02-23 14:59:10 +00:00
Roberto Fernandez Bautista 991ddfe6be Add cache to SCH_IO_DATABASE to improve loading performance
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17031
2024-02-23 14:59:10 +00:00
Roberto Fernandez Bautista 07ab18a1e6 Legacy libraries: De-duplicate field names on load
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16902
2024-02-23 14:57:57 +00:00
Roberto Fernandez Bautista 420413969e Altium: Don't create duplicate fields 2024-02-23 14:57:57 +00:00
Roberto Fernandez Bautista 1a6e6a06eb Altium: Don't load library parameters with an owner for now
In Altium many objects can have parameters (including pins). For now
we will drop library parameters belonging to any sub-components of a
symbol.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17048
2024-02-23 14:57:57 +00:00
Ian McInerney 206a631135 Ensure stream is valid before checking for Eagle XML tag
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16989
Fixes KICAD-7QQ
2024-02-16 11:14:10 +00:00
Alex b5982f7319 EasyEDA import: force close some line chains. 2024-02-11 23:52:56 +03:00
Alex bf9d085c15 EasyEDA schematic import: fix nan center for elliptic arcs. 2024-02-11 23:52:56 +03:00
Jeff Young aef6b2a66e nullptr safety and a bit of wxT'ing. 2024-02-09 13:56:01 +00:00
Jeff Young 8efd90e6e8 Allow reading of 0 text sizes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16902
2024-02-07 16:46:42 +00:00
Alex e55a803572 Altium schematic import: do not overwrite sheet name. 2024-02-07 05:06:49 +03:00
Alex a32d5174a1 Altium schematic import: clear harness port list after parsing Additional.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16894
2024-02-07 05:06:49 +03:00
Alex Shvartzkop 0778a7d46d Fix Windows build. 2024-02-06 00:38:21 +03:00
Alex Shvartzkop be1bbda8ce Altium: Fix bug when symbol uses multiple display modes on one sheet. 2024-02-05 22:36:30 +03:00
Alex Shvartzkop d8c72e845c Altium schematic: support component's DISPLAYMODE being a string. 2024-02-05 22:36:25 +03:00
Jeff Young 1ff36f23b8 Clean up stale TODOs. 2024-02-05 15:49:57 +00:00
Andre Iwers a0c39715df HTTP LIB - Fine tuning 2024-02-05 12:11:01 +00:00
Roberto Fernandez Bautista 079478f989 EDA_ANGLE: use constexpr for constant angles
Remove all statics in the class and instead use constexpr to
ensure correct ordering
2024-01-31 19:17:46 +03:00
Alex Shvartzkop 6ff3b0eb95 Altium schematic: remove border from symlib ellipse inner polygon. 2024-01-31 19:08:36 +03:00
Alex Shvartzkop 7f29ac39d8 Altium schematic: case-insensitive search for subsheet files.
Also fixes open polylines on sheet.
Also prevents adding polylines with less than 2 points.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16829
2024-01-31 17:57:10 +03:00
Alex Shvartzkop 1e5b68cb87 Altium schematic: add polygon inside filled ellipse. 2024-01-31 09:34:36 +03:00
Alex 6225ef69b6 Altium schematic import: fix power ports.
Use different symbol names for different port port styles.
Also fixes curved shapes construction.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16823
2024-01-31 08:22:27 +03:00
Alex c64b74918f Altium schematic import: put Template items on sheet.
So we can use variable resolution.
2024-01-31 07:00:02 +03:00
Alex 9ed735ef5d Fixes for Altium/CircuitStudio schematic import
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16825
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16824

Adds support for Templates.
Also fixes symbols on schematic with multiple display modes.
2024-01-31 02:07:06 +03:00
Jeff Young ae735d3eb4 Renaming: replace convert with body-style.
No functional changes.
2024-01-26 16:21:03 +00:00
Wayne Stambaugh 8975f26c26 Coding policy fixes. 2024-01-26 08:59:14 -05:00
afkiwers c7475a16c8 implemented better caching for categories and parts overview to reduce processing time 2024-01-23 22:32:05 +00:00
Jeff Young 1bd8da41a7 Mutual Inductor isn't an inductor.
It's a statement about two other inductors.
2024-01-23 15:07:29 +00:00
Andre Iwers 4d1a016429 HTTP Libraries: Improved cache performance 2024-01-18 02:33:16 +00:00
Alex Shvartzkop 3bbf45dccb EasyEDA Pro: resolve device attribute variables in schematic. 2024-01-16 23:40:00 +03:00
Alex Shvartzkop 42255f10c3 EasyEDA Pro: fix default netport orientations.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16620
2024-01-16 22:47:15 +03:00
Alex Shvartzkop 01e88d33aa Fix Bezier reading in schematic as well. 2024-01-15 22:35:35 +03:00
Alex Shvartzkop b7460f29b4 Altium schematic: fix properties parsing in old formats.
Leading "|" can be missing before "RECORD=28" in old formats.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16513
2024-01-14 13:12:47 +03:00
Wayne Stambaugh 38562db023 Coding policy fixes. 2024-01-04 13:30:02 -05:00
Jeff Young 2a0486845d Restore legacy spin-style processing for text items.
Post-V5 we only use it on labels, but earlier versions also
used it for text.

Also process spinStyle for CADSTAR imports.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16488
2023-12-31 17:22:58 +00:00
Alex Shvartzkop aa6fd88082 Default graphical line style in v6 and older was Dashed.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16479
2023-12-31 19:28:55 +05:00
Ian McInerney f2702b223c Introduce base IO_MGR class and unify RELEASER objects
The IO_RELEASER is a thin-wrapper around a std::unique_ptr, but done
this way to allow easier addition of a custom deleter in the future if
something needs to call back into the IO_MGR.
2023-12-29 00:37:38 +00:00
Wayne Stambaugh 04d15026c5 Rename SCH_SYMBOL::GetInstanceReferences() to GetInstances(). 2023-12-28 18:25:56 -05:00
Marek Roszko 9a890cdba9 Kick the wildcards and file exts into a static class, export it from kicommon 2023-12-27 21:10:01 -05:00
Ian McInerney 4a67761d29 Push library reading check to IO_BASE 2023-12-27 16:44:45 +00:00
Ian McInerney f8688a922d Unify IO library descriptors 2023-12-27 16:34:59 +00:00
Ian McInerney 743e9d669a Push library management into IO_BASE 2023-12-27 01:21:53 +00:00
Ian McInerney cad91312aa Introduce main base class for all IO loaders 2023-12-26 23:27:11 +00:00
Alex Shvartzkop 5bbe01b570 EasyEDA Pro: support .elibz format (device libraries) 2023-12-25 07:00:24 +03:00
Ian McInerney 85f62c1fde Rename all schematic IO plugins 2023-12-24 01:22:21 +00:00
Ian McInerney d8b47d18d3 Initial rename of file plugin infrastructure components to IO 2023-12-24 01:22:21 +00:00