58 Commits

Author SHA1 Message Date
Jeff Young
6dd4e01f16 ADDED: custom body styles.
(Also moves editing of unit display names to the
Symbol Properties dialog and retires the Set Unit
Display Name dialog.)

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

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14843
2025-08-27 18:11:56 +01:00
Mark Roszko
5895c27f4a Rename Prj() on schematic to avoid conflict with global function 2025-08-07 23:21:41 -04:00
Seth Hillbrand
50c7aff3ff Simplify KiROUND using std::llround/clamp
Removes the bespoke rounding in favor of std::llround and std::clamp
routines
2025-08-04 09:26:25 -07:00
Seth Hillbrand
6cd076eed4 Blast quite a bit of LOCALE_IO into the sun
After forcing the locale-specific read/writes out of our IO, we can
remove the global LOCALE_IO calls in many places.

Still to do: exporters, pcm, specctra, settings, drawing sheets,
plotters
2025-07-14 15:30:42 -07:00
Jeff Young
6b32815887 Be more robust around filesystems that don't support timestamps (KICAD-R7V). 2025-07-13 15:25:10 +01:00
Alex Shvartzkop
4a5039c2cf Remove some unused variables. 2025-07-02 16:48:26 +03:00
Jeff Young
aaa0e74311 Eagle sheet descriptions are elements, not attributes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20957
2025-06-13 12:28:08 +01:00
Jeff Young
af1a246e12 Nullptr safety. 2025-06-06 18:28:39 +01:00
Jeff Young
d0f0c4022f Be explicit about avoiding catastrophic O(n^2) pretty printing we had in Altium importer. 2025-06-01 19:38:24 +01:00
Jeff Young
2dd28d18e8 Performance improvements for ERC. 2025-05-26 13:37:57 +01:00
Jeff Young
f58fc0b952 Rewrite GROUP undo based on uuids.
This also removes the GROUP/UNGROUP-specific undo actions.

This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.

This also fixes some undo bugs when dividing wires etc.

This also fixes some bugs with new sch items not
being created within an entered group.
2025-05-21 14:24:59 +01:00
dsa-t
2fa54615ee Eagle SCH import: fix arcs in symbols after v9 changes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20793


(cherry picked from commit b345dac82b950c6d01b5e355cb086899913c95cf)

Co-authored-by: Alex Shvartzkop <dudesuchamazing@gmail.com>
2025-04-27 18:50:44 +03:00
Jeff Young
b01fef5ca8 Update visibility flag when adding fields.
Also removes extra c'tor which fails to set the
ordinal.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20556
2025-04-26 16:37:36 +01:00
Wayne Stambaugh
aa1dbcba34 Fix broken label position algorithm in Eagle schematic importer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20593
2025-04-12 11:05:49 -04:00
Seth Hillbrand
49a4699d5a ADDED: Local power symbol option
Local power symbols work like regular power symbols except that they are
scoped only the the sheet in which they are instantiated

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2075
2025-03-04 17:07:46 -08:00
Jeff Young
c5bb59468d Get rid of assumptions about field order. 2025-02-24 11:08:29 +00:00
Wayne Stambaugh
9eaefa3301 Fix crash when importing Eagle schematics with multiple module levels.
Fix annotation when importing Eagle schematic modules.  Apparently Eagle
uses hard coded module name prefixing scheme to generate module symbol
references by prefixing module name separated by a colon.  Even though
this results in references that are incompatible with KiCad, they are
used so that the board and schematic can be synchronized by references
on import.

https://gitlab.com/kicad/code/kicad/-/issues/19718
2025-01-24 07:35:31 -05:00
Jeff Young
e19bce2f93 Reduce reliance on MANDATORY_FIELDS and their implied order. 2025-01-22 17:51:57 +00:00
Wayne Stambaugh
db877e6a00 Fix Eagle schematic import issue.
Handle duplicate symbol library names with Eagle URN notation.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19666
2025-01-20 07:28:25 -05:00
Seth Hillbrand
4ba1c0130c Use layer numbers in Eagle importer
The layer names may be translated but the numbers are invariant.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19597
2025-01-12 08:53:55 -08:00
Jeff Young
8c363411e0 Implement fixed pin name/number sizes for Eagle.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16980
2025-01-11 22:32:46 +00:00
Alex Shvartzkop
d3f53db3eb EAGLE import: allow more lines before <eagle> tag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19528

(cherry picked from commit 603a500bc06d38ad5b67847e686824369c9ea0c3)
2025-01-08 16:24:54 +05:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Jeff Young
eee28aa06a Clean up fields autoplacement control architecture.
Also adds a mode for AUTOADDED fields.

Also fixes a couple of bugs where a manual-level autoplaced
symbol would get reset back to auto-level when autoplaced.
2024-12-23 14:30:17 +00:00
Jeff Young
7da8b42206 Push more functionality to SYMBOL.
(This will allow us to run the fields autoplacer on SYMBOLs,
including LIB_SYMBOLs.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19247
2024-12-22 20:21:24 +00:00
jean-pierre charras
c736c24a15 EAGLE importer: do not stop the import at the first issue in a lib symbol.
A library, during importation, can have a issue in a specific symbol during
conversion. Just skip this symbol, and do not stop import.
2024-09-19 16:13:38 +02:00
Wayne Stambaugh
af914c2603 Fix library symbol circle position when importing Eagle schematics. 2024-09-18 08:38:56 -04:00
Seth Hillbrand
7214ef1f14 Remove basic masking class map_string_utf8
This is just std::map<std::string, UTF8>, using the class just masks
what it is and adds unclear functions.
2024-08-19 11:51:13 -07:00
Marek Roszko
b101c1a0c3 Enum class ELEM. 2024-08-18 21:09:37 -04:00
Seth Hillbrand
11c6164934 Silence font replace warnings for libs
When loading schematics/pcbs, notification of font replacements might be
warranted but in libraries, this warning is not helpful and intrusive
2024-06-24 09:55:10 -07:00
Wayne Stambaugh
4ee1415164 Fix Eagle schematic importer incorrect symbol value field and visibility.
Also fix a crash if an XML_PARSER_ERROR exception is thrown when importing
Eagle symbol libraries.

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

(cherry picked from commit 566fefafc5aa43ad8c0e4057c0d07922bb83b65b)
2024-06-22 12:32:47 -04:00
Wayne Stambaugh
0ed72fb47a Fix broken rectangles in Eagle schematic importer. 2024-06-21 16:18:42 -04:00
Wayne Stambaugh
b494166b10 Fix empty label names when importing Eagle schematic. 2024-06-21 12:07:06 -04:00
Alex Shvartzkop
904055912b Fix attribute display comparison in EAGLE schematic import. 2024-06-21 16:16:24 +03:00
jean-pierre charras
16e708a0e7 Fix minor compil and Coverity warnings. 2024-06-15 11:20:21 +02:00
Mike Williams
a5e2615251 Revert "SCH/LIB SYMBOL: never allow null LIB_SYMBOLs in SCH_SYMBOL"
This reverts commit 0b187e71227d2129d271f24fb92ae0b99b6f93bd.
2024-06-12 13:30:29 -04:00
Alex Shvartzkop
35d60598d5 Fix build error on MSVC. 2024-06-11 00:06:32 +03:00
Wayne Stambaugh
5e048bc64c Fix several Eagle schematic import issues.
Fix broken arc angle polarity due to library symbol changes.

Fix broken wire and text Y axis coordinate polarity due to library symbol
changes.

Fix broken field visibility and position on library symbols with multiple
units that have fields with different visibility and positions.  Because
KiCad does not support this, when parsing the Eagle schematic file, the
last library symbol unit parsed ends up being the field visibility and
position for all units in the symbol.
2024-06-10 11:28:20 -04:00
Wayne Stambaugh
889931505b Eagle schematic importer improvements.
Change Eagle file importer to use a two pass import.  The first pass
parses the entire Eagle file into an associated E* object.  The second
pass converts the parsed E* objects into the appropriate KiCad objects.

Improve handling of Eagle versioned libraries.

Add helpers to IO_BASE to ease handling of PROGRESS_REPORTER and REPORTER
objects.

ADDED: Support for importing Eagle schematic modules.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1813
2024-06-10 11:28:20 -04:00
Mike Williams
0b187e7122 SCH/LIB SYMBOL: never allow null LIB_SYMBOLs in SCH_SYMBOL
Also always always flatten incoming lib symbols.
2024-06-10 08:36:42 -04:00
Jeff Young
8e855156c8 Import child sheets relative to project, not parent.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17785
2024-06-04 17:47:55 +01:00
Wayne Stambaugh
c3360d8c43 Fix Eagle schematic arc orientation and field visibility issues.
This does not fix all field visibility and position issues.  This is due
to LIB_SYMBOL objects not supporting per unit field properties.  The
current Eagle importer sets multiple unit symbol field properties to the
last unit parsed in the Eagle schematic file.  The upcoming two pass
importer will resolve this issue.
2024-05-14 10:13:08 -04:00
Jeff Young
e7f4e29dd1 Eagle's coord system matched the old Symbol Editor.
So now we need to invert the Y axis for symbol items
(as well as all the schematic items which we have always done).
2024-05-03 14:48:06 +01:00
Jeff Young
95136494b3 RIP LIB_PIN. 2024-04-20 12:10:31 +01: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
Jeff Young
d77eae3e7e Collapse LIB_FIELD into SCH_FIELD. 2024-04-13 15:42:13 +01:00
Jeff Young
5abc7145da Fold LIB_ITEM into SCH_ITEM. 2024-04-08 10:24:50 +01: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