304 Commits

Author SHA1 Message Date
Seth Hillbrand
f66cbaf43a ADDED: Stacked pin notation support
Implement bracket notation for stacked pins ([1,2,3], [1-4], [1,3,5-7]).
Automatic net naming proceeds based on the smallest logical pin number
in stacked groups.

Provide explode/reform commands in symbol editor for conversion.
Supports arbitrary ranges including BGA alphanum ranges like
[AA1-AA3,CD14-CD22]

Adds some additional QA and trace logging

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2004
2025-09-07 14:59:51 -07:00
Mark Roszko
9dd642b66c Kick out strtod in legacy parsers 2025-08-29 23:38:00 -04:00
Seth Hillbrand
8acf5c1a25 ADDED: Rounded Rectangles
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4742
2025-08-29 17:37:30 -07:00
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
4aa2047f45 Replace alg::delete and alg::delete_if with std c++20 2025-08-04 09:03:16 -07:00
jean-pierre charras
e1c56c71ef Fix compil warnings (some due to declarations colliding with a Windows header) 2025-08-03 16:11:14 +02:00
jean-pierre charras
76c5e256a7 Fix a name ( INPUT ) conflicting with a windows header, creating compil warnings
This name is just renamed, without actual code change
2025-07-28 15:19:38 +02:00
Seth Hillbrand
094870e7a4 String fixes
- Clarify wording in a couple places
- Fix missing 'not' and remove non-standard dashes
- Standardize on single-quote for strings in strings
2025-07-23 17:36:51 -07:00
jean-pierre charras
eb473012a6 *.kicad_sch files: add missing quotes to uuid string for some grahic shapes.
Uuid strings are (like other strings) quoted, but a few items were missing quotes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21360
2025-07-23 17:07:35 +02:00
Jeff Young
ec155c00f3 Comboboxes for units and body styles.
Also for pin-types in pad properties.

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

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19905
2025-07-23 14:35:37 +01:00
Jeff Young
e230d5164d Honour renderSettings' default font.
This still leaves a few things out in the cold,
such as hit-testing and polygon generation.
But at least it allows us to plot with a default
font.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19031
2025-07-17 09:35:21 +01:00
Seth Hillbrand
ab5aa661e9 Fix a few more stagglers for floating point
Update banned functions to better catch these

- page size
- erc/drc reports
- x/y position files
- color alpha
- footprint reports
- specctra
2025-07-15 13:27:45 -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
Seth Hillbrand
55da0e46af Remove locale-specific floating point from io
Use only C-locale functions wxString::ToCDouble and fmt::format{}
functions so that we do not need to set the locale for file io
operations

This also introduces a cmake check that looks for certain banned
functions (strtod, strtof and atof) that convert strings into doubles
by the user locale or formatting specifiers like %f/%g that convert
doubles into strings by the users locale.  It will prevent compilation
in this case.

For the limited cases where we want to show the user a string in their
locale, we have an override string "format:allow" that can be added to
lines in order to allow them with %f/%g format specifiers
2025-07-14 14:26:00 -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
jean-pierre charras
67aaac48e7 Fix a compil and a Coverity warning 2025-07-12 18:27:19 +02:00
Jeff Young
ddd7f6df16 We're no longer saving symbol libs from Altium import. 2025-07-12 12:00:08 +01:00
Jeff Young
1990eec90e We no longer create a symbol lib...
... so there's nothing to read from.  Anyway, if
it has already been seen it'll be in the cache.
2025-07-12 09:54:16 +01:00
Jeff Young
f53c9c4cb8 Formatting (from 9.0 branch). 2025-07-12 09:24:09 +01:00
Jeff Young
1591bf0df7 Remove stale comments. 2025-07-12 09:14:39 +01:00
Jeff Young
e51908e6c8 Bounds checking (KICAD-GGM). 2025-07-11 21:26:19 +01:00
Jeff Young
dc0e211e1e Can't add to parent group without a commit.
We allow this only for file import, where we don't
need to handle group membership anyway.
2025-07-11 21:26:19 +01:00
Jeff Young
b4f44a0833 Formatting. 2025-07-08 09:42:19 +01:00
Jeff Young
86280d5a65 Type safety (KICAD-QQT). 2025-07-04 15:23:31 -06:00
Alex Shvartzkop
4a5039c2cf Remove some unused variables. 2025-07-02 16:48:26 +03:00
jean-pierre charras
01e67d78d6 board area fixes (jpc) 2025-06-19 18:26:39 +02:00
Jeff Young
17158f21da Ignore visibility and style attrs in instance data.
It appears that it's always null/0.  (At least in this
test-case.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19734
2025-06-15 20:48:31 +01: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
4678000a0e ADDED: DNP, etc. attributes to SCH rule areas.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14037
2025-06-10 18:26:34 +01:00
Mike Williams
f4659b4c4f warnings: remove unused variables 2025-06-09 09:00:47 -04:00
Jeff Young
af1a246e12 Nullptr safety. 2025-06-06 18:28:39 +01:00
Seth Hillbrand
fbaf480351 Split bar check for fp/symbols 2025-06-05 11:40:47 -07:00
Jeff Young
9750f7690c Performance optimizations. 2025-06-05 18:01:44 +01:00
Seth Hillbrand
dd92736c46 Handle unquoted strings that use the bar '|' character
We use this as part of the standard sexpr now.  But previously, if a
designer used the '|' character as part of a string with no spaces, it
would be entered unquoted into the file, which neccesitates special
handling

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

(cherry picked from commit 5eacca8b18324422334180a38bd1c1adc62e20d6)
2025-06-04 10:54:22 -07:00
Jeff Young
e5682ff2c1 Line-breaking; decrease use of auto.
Also some "fixes" to keep Coverity queit.
2025-06-02 14:00:37 +01:00
Jeff Young
e615fcfe90 Improve progress reporting for opening and importing schematics. 2025-06-01 21:05:50 +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
f97ab279a3 Remove unused member variable. 2025-06-01 19:38:24 +01:00
Jeff Young
30748006f7 Standardize on American English spelling of "canceled". 2025-06-01 19:38:24 +01:00
Jeff Young
06dcb64ad8 Harden progress reporter API against misuse.
Also, titles are nouns, not verbs.  (Messages
*inside* reporters are verbs.)

Also implements progress reporter for Altium
schematic import.
2025-06-01 19:38:24 +01:00
Jeff Young
74fc5cde02 Don't save symbol library when importing Altium schematic.
The user can always export the symbol library from
the schematic if they want it.

This also improves performance by more than 100X
in the test case for #20299.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15468
2025-06-01 19:38:24 +01:00
Jeff Young
38c53edc39 Don't try to convert Altium UUIDs to KiCad.
They're different format and all it does is generate
exceptions and slow things down.
2025-06-01 19:38:23 +01:00
Jeff Young
59a172101b Formatting. 2025-06-01 19:38:23 +01:00
Jeff Young
65dfee161b Read Altium's showName property for fields.
Also fixes a potential crash bug in schematic
cleanup when breaking lines that are part of a
group.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20985
2025-05-31 22:14:09 +01:00
Jeff Young
e8e7282fe1 Fix a bunch more bugs in bezier approximation. 2025-05-26 18:12:43 +01:00
Jeff Young
2dd28d18e8 Performance improvements for ERC. 2025-05-26 13:37:57 +01:00
Marek Roszko
5e4ad048e2 Load the saved rule area uuid back in
Partial fix for https://gitlab.com/kicad/code/kicad/-/issues/20918
2025-05-23 19:51:30 -04: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