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
Mike Williams
e64be2f208
pcb groups: copy nested groups on copy/paste
2025-05-13 10:41:32 -04:00
Jeff Young
d4cc91f17a
Via needs a parent for formatting.
2025-04-04 22:45:52 +01:00
Jeff Young
a0ec7f59c4
When pulling children out of footprints don't format them wrong.
...
If we leave a footprint parent pointer then we'll
format as fp_line, fp_arc, etc. instead of gr_line,
gr_arc, etc.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20537
2025-04-02 13:22:40 +01:00
Mike Williams
a90b8ec57a
pcb: merge RunOnChildren/Descendants into one function with a mode
2025-03-27 13:16:09 -04:00
Jeff Young
c5bb59468d
Get rid of assumptions about field order.
2025-02-24 11:08:29 +00:00
Jeff Young
e19bce2f93
Reduce reliance on MANDATORY_FIELDS and their implied order.
2025-01-22 17:51:57 +00: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
JamesJCode
dfe0d6345b
Another go at supressing FOOTPRINT field on FOOTPRINT objects
2024-12-28 21:57:35 +00:00
Jon Evans
9499eda7ef
API: Implement saving selection and board as string
2024-12-01 21:37:31 -05:00
Jeff Young
6686ade45b
Remove (somewhat atrophied) manual pretty printing.
...
Also fixes a bug where the pretty printer didn't insert
linebreaks for a forest (it assumed a single tree root).
Also further regularises bool and quote formatting.
2024-11-28 11:08:16 +00:00
Jeff Young
dfbbb5afa1
Pretty-print clipboard data.
2024-11-28 11:08:16 +00:00
Jeff Young
94f995c49e
Reduce dependency on dynamic_cast.
...
(Especially where it is no-worky on MacOS.)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17245
2024-09-04 17:24:49 +01: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
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
Seth Hillbrand
71b020eb14
Special-case copy/paste of footprint fields on board
...
When editing the board, footprint fields _look_ like text items, so copy
and paste of these items should logically result in a text item, not a
footprint copy.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17937
2024-05-03 10:57:08 -07:00
Alex Shvartzkop
16e3692e71
Build time optimizations.
2024-04-27 23:49:13 +03:00
Jeff Young
57b224d3f0
Cut/copy/paste for PCB tables.
2024-03-28 14:31:31 +00:00
Jeff Young
a156b49e2c
Comments.
...
(cherry picked from commit 8a3cbce8f8f14cedbfc88d99b8c429a2fcc7600e)
2024-02-23 16:53:33 +01:00
Jeff Young
3938c35f17
Repair copy/paste of footprint fields.
...
Some of the code got lost in the move to PCB_FIELDs.
(cherry picked from commit a9c4a17c38cda55836e38c975d183479e375a748)
2024-02-23 16:53:33 +01:00
Jeff Young
322ad1af45
Implement copy/paste for generators.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16613
2024-01-16 23:38:50 +00:00
Ian McInerney
d7fe668d79
Push PCB_IOs to use the base progress reporter instead of per-function
2023-12-27 17:06:23 +00:00
Ian McInerney
e6632bb983
Rename PCB IO classes/files
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
Marek Roszko
d1ecf3790c
Add generator version
2023-11-29 16:17:41 +00: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
Jeff Young
cc721c4907
Improve encapsulation of group internals.
...
(It's still leaking into BOARD_COMMIT and some other places, but at
least it no longer leaks into all the edit tools.)
Also fixes some bugs when moving/copying/pasting multiple selections
containing length-tuning patterns.
2023-11-09 14:05:35 +00:00
Seth Hillbrand
cb8dd9e9a2
Don't leave deleted items in group
...
We filter out ref/value text in copies so we need to remove them from
the copied group (if any) as well
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15930
(cherry picked from commit fb387a2c0971efb5aa614f8dcd6120c1c1461d91)
2023-10-23 13:34:53 -07:00
Alex Shvartzkop
a0d96cea9f
Rename Save -> SaveBoard, Load -> LoadBoard in PLUGIN.
2023-08-15 05:26:12 +03:00
Jeff Young
cf8294b5c2
Remove a bunch of blind (and a few redundant) static_casts.
2023-07-13 14:14:45 +01:00
Jeff Young
300a60e88e
Eradicate a bunch of calls to dyn_cast.
2023-06-25 11:10:05 +01:00
Jeff Young
b3d7aea4df
dyn_cast<PCB_TEXT*> won't find PCB_FIELDs.
...
We really should get rid of dyn_cast entirely....
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15052
2023-06-24 15:48:57 +01:00
Mike Williams
6d93950dcc
PCB: abolish TEXT_TYPE::TEXT_is_*
...
PCB_TEXT is now always what was formerly TEXT_is_DIVERS and PCB_FIELDs
now what mandatory field type they are already.
2023-06-20 18:34:52 +00:00
Mike Williams
37837dc392
PCB: introduce PCB_FIELD_T
2023-06-20 18:34:52 +00:00
Ian McInerney
753cc6679b
Remove temp items from its group before deleting them
...
The 1st level items being copied don't have their group information
copied, and we assert that it has been removed from the group on
deleting it, so we just reset the group membership to prevent the
assert.
Fixes sentry KICAD-22S
2023-06-14 23:33:41 +01:00
Alex
9d452a6097
Fix opening boards with deprecated features.
2023-05-20 07:39:01 +03:00
Marek Roszko
ea077bc34d
Banish ignore.h to core
2023-04-18 22:44:04 -04:00
Jeff Young
28028c941e
Retire Local/Draw coords distinction from PAD (the last object to have it).
2023-04-02 18:02:41 +01:00
Jeff Young
bbd6c80507
Collapse FP_* down into their PCB_* equivalents.
2023-03-31 22:57:46 +01:00
Jeff Young
f45d44a639
Don't leave temp footprints attached to a board.
2023-01-18 00:46:59 +00:00
Jon Evans
dd94b2d3a7
Rename PROPERTIES to STRING_UTF8_MAP for clarity
...
This class has nothing to do with the properties system
2022-11-06 11:51:52 -05:00
Jeff Young
00934fdd84
Move GUI queries in PLUGIN to a callback.
...
Also makes sure legacy zone fills get deleted and re-filled (since
just dropping the outline will change them).
2022-02-11 22:09:22 +00:00
Jeff Young
7ccac79192
More wxString wide literals.
2022-02-05 21:29:34 +00:00
Jeff Young
5739505aa3
TextBoxes for PCBNew.
2022-01-31 20:00:47 +00:00
dana
8373180cbb
Handle Unicode clipboard data in pcbnew and symbol editor
...
Fixes #10323
2022-01-12 17:15:47 +00:00
Marek Roszko
fcfe42d67c
Continue the war on wxPoint
2022-01-10 19:52:26 -05:00
Marek Roszko
7d671cff1e
Scoop up some more wxPoints
2022-01-01 21:06:40 -05:00
Marek Roszko
c4c56de708
Neurotically update position wxPoint usages
2022-01-01 11:55:51 -05:00
Jeff Young
86cb57f4a7
Cherry-pick TEXT_ATTRIBUTES and EDA_ANGLE from rockola/kicad-strokefont
2021-12-28 22:15:20 +00:00
Jeff Young
ceceda37cc
No more long-lived parsers.
...
We've had too many bugs from improper re-initialization.
Fixes https://gitlab.com/kicad/code/kicad/issues/9429
2021-12-24 17:11:18 +00:00