Wayne Stambaugh
764df1d107
Fix crash when saving pasted root sheet symbols.
...
The paste code creates invalid KIID_PATH objects with a zero length. All
paths must include the root KIID at a minimum. Code was added to prune
the invalid paths and some defensive code was adding to the formatter to
prevent the crash in case there are other paths where someone generates
a zero length path.
Pruning orphaned instance data does not work when loading schematics prior
to version 7 because the paths did not include the root sheet UUID. Once
the file is saved to V7 or later, the next load will prune any orphaned or
invalid instance data for the current project.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16245
2023-12-03 08:03:31 -05:00
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
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
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
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
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
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
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
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
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
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
78e00ade7a
Clearer naming.
2023-11-09 14:05:35 +00: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
f83d60a48f
Clean up autosave files when reverting.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15998
2023-11-05 12:20:31 +00:00
Alex Shvartzkop
b2825663be
Fix SCH_SHAPE rotation direction.
2023-11-04 17:10:26 +03: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
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
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
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
Jeff Young
d5d07e64c9
Use IsShownOnScreen(), not IsShown(), if you really want to know if its visible.
2023-10-14 23:51:37 +01:00
Jeff Young
8c017be24a
Clearer naming.
2023-10-10 15:43:45 +01: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
Franck Jullien
c010c7b0ea
eeschema: add 'Already placed' category when choosing symbol
2023-10-04 10:29:22 -04:00
Jeff Young
9f5e583ced
Readability.
2023-10-03 17:14:03 +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
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
Mike Williams
49a8c9eb8d
Schematic: pin helpers, add wiring tool
2023-09-28 15:07:11 -04:00
Mike Williams
5f88c132c9
Schematic: add pin helpers menu (quickly breakout pins)
2023-09-28 11:44:52 -04:00
Marek Roszko
8c6899b0d3
Tear out the eeschema conditional compile of PROJECT
2023-09-27 23:05:30 -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
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
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
jean-pierre charras
e152f97f35
Fix minor Coverity warnings. Small code cleaning in pcb_parser.cpp
2023-09-21 11:33:29 +02:00
Mike Williams
398a336d91
BOM Generator: redirect BOM buttons to new exporter
...
Also add legacy generator menu item.
2023-09-20 11:12:03 -04:00
Marek Roszko
22b733209d
Fail GAL on its header leaking audit
...
Maybe we should rethink directly accessing GAL so much, but at least 600 files didn't need GAL leaked into them due to view_overlay.h
2023-09-18 19:52:27 -04:00
Alex Shvartzkop
06463fd35a
Fixes for Wayland cursor warping:
...
- Emulate the mouse position, since no motion events are sent after warp
- Do not call wl_surface_commit to prevent an assert
- Re-organize code a bit
2023-09-18 12:56:54 +00:00
jean-pierre charras
79590c6372
Allows new items SCH_NO_CONNECT_T and SCH_BUS_WIRE_ENTRY_T to be repeated.
...
Fixes #15668
https://gitlab.com/kicad/code/kicad/-/issues/15668
2023-09-17 09:37:34 +02:00
Jeff Young
948fea4be8
Nullptr safety.
2023-09-13 23:34:25 +01:00
Jeff Young
7d1dbb77c3
Update symbol editor's title bar when renaming the canvas symbol.
2023-09-12 16:52:47 +01:00
Jeff Young
ee724f6a2b
Only update value on rename if it previously matched the symbol name.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15621
2023-09-12 16:52:47 +01:00
Marek Roszko
11de95778b
Unwrap the FROM_UTF8 macro in favor of direct function
...
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Jeff Young
0310973e3f
Push TEXT_SPIN_STYLE from SCH_TEXT out to SCH_LABEL_BASE.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15444
2023-09-07 17:42:51 +01:00
jean-pierre charras
ecd8c7e2cc
Fix a compil issue (in sch_altium_plugin.cpp) and compil warnings.
2023-09-07 08:53:30 +02:00
Josue Huaroto
cef0f176d3
Add Unselect all in menu
2023-09-06 23:44:39 +00:00
Marek Roszko
a4d8c021aa
Remove rouge gdicmn include
2023-09-06 18:33:22 -04:00
Jeff Young
7a2a2e2df0
Remove error-prone SetReporter() API.
2023-09-06 11:37:50 +01:00
Jeff Young
634524dde5
Validate new symbol / save as symbol info before exiting dialog.
2023-09-05 22:07:58 +01:00
Jeff Young
c2057ba1bc
Don't use Clone() for duplicating. It returns the same UUID.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14162
2023-09-03 19:06:20 +01:00
Jeff Young
f6e238dc3f
Add items to repeat_items after paste (or duplicate).
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15556
2023-09-02 11:56:52 +01:00
Mike Williams
b8a61719c3
Grids: make overrides use existing grids (choice box)
2023-08-30 13:33:04 -04:00
Mike Williams
b1a388ca69
Grids: Support X and Y for all grids, add optional names
2023-08-30 11:22:19 -04:00
Jeff Young
7a8d903412
ADDED: align elements to grid for Symbol Editor.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15524
2023-08-30 15:45:31 +01:00
Jeff Young
e0b2202e77
Improve naming for alternate pin fuction assignments.
2023-08-29 18:07:27 +01:00
Jeff Young
6f1a41f810
Repair over-zealous grid change.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15526
2023-08-29 12:16:06 +01:00
Jeff Young
f12c3bb6ff
Align sheetpins to grid even when parent sheet is already on grid.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15050
2023-08-28 16:35:04 +01:00
Jeff Young
4325f4e038
ADDED: alternate pin functions in context menu.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12852
2023-08-28 12:51:41 +01:00
Jeff Young
a470cab7b2
Include description for page settings command.
2023-08-27 19:03:17 +01:00
Jeff Young
4fefd95e0c
Move grid definitions to Prefs and grid origin to a separate dlg.
...
Grid origin is document-wide, while grid definitions are app-wide.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2262
2023-08-26 13:32:24 +01:00
Mike Williams
d9c2e0ab54
PCB: start of grid overrides
...
Only works for moves.
2023-08-24 10:29:09 -04:00
Mike Williams
0f781f328e
GRID_HELPER: push code to parent class
...
Prep'ing for PCB grid overrides
2023-08-24 10:29:09 -04:00
Wayne Stambaugh
1026596964
Allow symbols to be derived from other derived symbols.
...
[CHANGED] Symbols can now be derived from other derived symbols removing
the requirement to derive from root symbols.
2023-08-24 07:59:32 -04:00
Mike Williams
66ed9cfe57
Schematic Editor: apply grid overrides to more tools
2023-08-23 11:31:27 -04:00
Mike Williams
a44dd4d88f
Symbol Editor: support grid overrides
2023-08-23 10:12:21 -04:00
Mike Williams
4e763cd9f2
Schematic: ortho line drag bend lines should respect grid overrides
2023-08-21 10:42:44 -04:00
Mike Williams
8b79ab708a
Grid Anchors: don't anchor from graphic lines when moving connectables
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13672
2023-08-21 10:42:44 -04:00
Jeff Young
ef321e5fcd
Un-brighten found text when making a new selection.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15092
2023-08-14 20:38:17 +01:00
Mike Williams
dc103b88d1
Symbol Fields Table: make non-modal
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/2141
2023-08-14 14:19:26 -04:00
Jeff Young
a6bceb8182
Don't set modified when loading workbook.
...
Also keep a shadow variable of the legend position so we can notice
when the mpWindow's OnMouseMove() handler changes it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15363
2023-08-09 12:09:29 +01:00
Jeff Young
1b080ed02f
Get rid of SIM_NOTEBOOK. It's completely unnecessary.
2023-08-09 12:09:29 +01:00
Mike Williams
bdecdce1b4
Exclude from Sim: move from field to attribute
2023-08-08 12:36:36 -04:00
Ian McInerney
c41d78f2d3
Remove incorrect bitmap from action
2023-08-08 00:17:58 +01:00
Ian McInerney
c7d2f3f380
Move eeschema actions to new constructor
2023-08-08 00:12:31 +01:00
Mike Williams
6ae8968a5b
Symbol Fields Table: add selection controls
...
Allows cross-probing to other editors.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/8188
2023-08-07 15:05:24 -04:00
Jeff Young
a7dc720271
Batch undo for Convert To...
...
Also repairs drawing of dangling symbols for global labels.
2023-08-07 18:38:48 +01:00
Alex Shvartzkop
713d4fc593
Don't crash when symbol editor frame can't load.
2023-08-07 17:20:11 +03:00
Jeff Young
c981c3668a
Better handling of dangling markers during bus unfold.
2023-08-05 19:30:13 +01:00
Mike Williams
457e58d0d5
Schematic: select connections working for multiple selection
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11022
2023-08-03 11:27:29 -04:00
Mike Williams
22c609fb7b
Schematic: handle aligning unaligned sheet pins in aligned sheet
...
Also fix a rounding bug.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15050
2023-08-03 11:11:34 -04:00
Mike Williams
5b335f1c4e
Schematic: junctions need to be added to the view before cleanup
...
Otherwise they aren't considered for breaking segments.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15146
2023-08-03 10:05:19 -04:00
Mike Williams
a0d559e884
Backannotation: skip fields that are individually controlled
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15337
2023-08-03 09:09:28 -04:00
Jon Evans
35c372a072
Support expanding selection for schematic graphic lines
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12032
2023-08-01 21:22:35 -04:00
Mike Williams
744452d092
Sch/PCB: allow back-updating schematic fields from PCB
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15285
2023-07-31 10:38:43 -04:00
Mike Williams
1e66129218
Schematic: Align Elements to Grid needs to respect grid overrides
2023-07-27 10:45:27 -04:00
Mike Williams
c0a9cf2cfa
Schematic Point Editor: fix cancel of point drag
2023-07-27 10:45:27 -04:00
jean-pierre charras
db382f8782
Eeschema: Export symbols to New Library: Fix Cancel button not working
...
This bug can crash Eeschema.
Fixes #15278
https://gitlab.com/kicad/code/kicad/-/issues/15278
2023-07-27 15:14:49 +02:00
Jon Evans
148e111579
Refactor pin orientation to be an enum class
...
Add various LIB_PIN properties
2023-07-26 23:46:15 -04:00
Jon Evans
000fa28ffc
Properties: initial infrastructure for symbol editor
2023-07-26 18:32:14 -04:00
jean-pierre charras
5ea170baab
Symbol editor: fix crash when trying to "drag" an item.
...
Drag or move is an option of the schematic editor, and not in symbol editor.
So it cannot be tested in code for the symbol editor.
Fixes #15264
https://gitlab.com/kicad/code/kicad/-/issues/15264
2023-07-26 08:58:22 +02:00
Mike Williams
132a0ada73
Grid Overrides: support grids-per-type that override the current grid.
...
Schematic only at this point while we test and refine.
PCB support is a future addition.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14756
2023-07-25 10:17:57 -04:00
jean-pierre charras
a16ab0aae1
Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name
...
issue with a Windows header on msys2.
Change very similar to the commit 9a47b344
about class PAD_SHAPE.
No actual code change
2023-07-25 09:11:55 +02:00
Josue Huaroto
eeb74dbae9
Sort SCH_ITEM by name on paste
2023-07-24 16:37:25 +00:00
Jeff Young
9c08d4febe
ADDED support for simulation plot margins and GUI for Y axis locking.
2023-07-19 23:40:10 +01:00
Jeff Young
7f3839a179
Minor cleanup.
2023-07-16 14:43:29 +01:00
Jeff Young
5419055acb
We no longer need activate actions with RunSynchronousAction.
2023-07-16 14:43:29 +01:00
Jeff Young
89780d353a
Pick up snapped item's line properties.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15192
2023-07-15 20:22:34 +01:00
Jeff Young
1218f61d0a
Implement undo/redo for footprint children.
...
Our special-cases to handle the fact that we didn't do this had far
outgrown the code necessary to actually handle it.
2023-07-15 17:37:31 +01:00
Jeff Young
ff044cd0cf
Mostly a terminology update...
...
... but also makes DIALOG_SIM_COMMAND and SIMULATOR_REPORTER a bit
more simulator-agnostic.
2023-07-14 17:46:06 +01:00
Jeff Young
5f8583cd25
Try both ends to see if one is a wire.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15178
2023-07-13 18:20:28 +01:00
Jeff Young
eedf319ba4
Don't double-offset effective text shapes.
...
Also fixes several bugs with intersheet ref fields. (It's possible for
other fields to have an ID of 0.)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15165
2023-07-10 19:32:00 +01:00
Jeff Young
8f9a67063a
Straighten out some really confusing terminology in simulator GUI.
2023-07-09 23:07:54 +01:00
Jeff Young
7608350bdc
Iron out NewPlot vs EditSimCommand.
...
Also don't confuse SIM_PLOT_PANEL_BASE with SIM_PLOT_PANEL.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15157
2023-07-09 22:38:48 +01:00
Jeff Young
5aed30ac79
Handle RepeatLastItem for TwoClickPlace items.
...
(Note that we've always excluded sheet pins from RepeatLastItem.)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15108
2023-07-09 20:33:33 +01:00
Jeff Young
6182ff4834
Handle delete of sheet pins.
...
SCH_COMMIT::Stage() can handle promoting the parent, but then the pin
needs to be removed first. I think it's probably clearer if we just
do the promotion in the delete routine.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15129
2023-07-09 13:40:27 +01:00
Mike Williams
cb01ac53fa
Schematic: allowing swapping sheet pins on same sheet
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15122
2023-07-08 20:26:26 -04:00
Jeff Young
5bca002567
Swap non-temp and non-edit flags for SCH_ITEMs.
...
This is required to keep selected and brightened state across undo.
It's also probably required for things like IS_SHOWN_AS_BITMAP and
possibly ENTERED. FWIW, most BOARD_ITEMs do a straight swap, including
the temp and edit flags. But that seems like a risky change....
Also removes SyncView() call from Undo/Redo as that does a MODEL_RELOAD
which clears the selection.
2023-07-08 18:37:47 +01:00
Jeff Young
534a3efce1
Add a couple of TODOs for SCH_COMMIT.
2023-07-07 15:40:15 +01:00
Jeff Young
922f7128a9
Move item updating and view refresh to SCH_COMMIT::Push().
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15132
2023-07-07 15:40:01 +01:00
Jeff Young
bde9c2cbc5
ADDED FFT analyses.
...
CHANGED abandon the unpredictable behaviour of the Simulation Command
dialog. You now separately add simulation tabs (which have invariant
command types once created), and the dialog edits the current tab.
Also a bunch of bug fixes to make multiple simulation plots actually
work.
2023-07-07 12:33:50 +01:00
Jeff Young
d5d2800b03
Sort out terminology issues between vectors and plots.
2023-07-07 12:33:50 +01:00
Ian McInerney
0fd2efa283
Give unfold bus a default parameter for hotkey invocation
...
Fixes KICAD-2JN
2023-07-06 23:07:24 +01:00
Ian McInerney
247fda80ef
Give schematic editor's placeImage action a default parameter
2023-07-03 11:38:51 +01:00
Alex Shvartzkop
55b31030c0
Perf: don't search for niluuid items when moving cursor in eeschema.
...
Reduces CPU usage by 60% in some cases.
2023-07-03 02:15:05 +03:00
Jeff Young
03fd9c2086
Fix refresh bug after a symbol reload from the file watcher.
...
Also moves EE_POINT_EDITOR to SCH_COMMIT. (There was another refresh
bug in RollbackSymbolFromUndo() -- whose only caller was the
EE_POINT_EDITOR's old undo code).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14274
2023-07-02 10:37:50 +01:00
Jeff Young
4cbf512461
Support synchronous move in symbol editor.
...
Also removes duplicate-during-move. It's not really compatibile with
a passed-in SCH_COMMIT, and it was never clear it was worth the code.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14274
2023-07-02 10:37:50 +01:00
Jeff Young
efac777f28
Don't DisplayCurrentSheet() if we're already on it.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14305
2023-07-01 21:57:40 +01:00
Jeff Young
773e1a1ab6
Actions with a COMMIT must be run synchronously.
...
Note that "immediate" doesn't mean quite the same thing: while it will
enter the tool immediately, it won't necessarily finish the tool during
the call if the tool has an event loop. So for something like Rotate
"immediate" and "synchronous" have the same behaviour, but for something
like Move they do not.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15085
2023-06-30 18:57:37 +01:00
Ian McInerney
c3674e6858
Fix incorrect parameter passing in symbol editor drawing
...
The text box used a different enum than the shapes, so this leads to a
possibility of clashing. The new action framework flagged this problem,
so modify the tool to handle the shape types properly.
Fixes KICAD-2CJ
2023-06-29 00:17:12 +01:00
Ian McInerney
2a940a5f70
Add COMMIT to TOOL_EVENTs instead of passing as a parameter
2023-06-27 00:57:59 +01:00
Ian McInerney
2fb6f19a84
Separate immediate and delayed action dispatch
...
Using a boolean argument just leads to a lot of trailing booleans in the
function calls and is not user friendly. Instead, introduce PostAction()
to send an action that runs after the coroutine (equivalent to passing
false or the default argument), and leave RunAction as the immediate
execution function.
2023-06-27 00:57:59 +01:00
Jeff Young
ed6487da1e
Disallow sheet pins from changing sides when edited by point editor.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15057
2023-06-25 19:55:13 +01:00
Jeff Young
e7ee6e1f26
Modified flags are handled by SCH_COMMIT.
2023-06-25 16:01:35 +01:00
Ian McInerney
118b815824
Get proper LINE_MODE type from tool event.
...
Properly fix https://gitlab.com/kicad/code/kicad/-/issues/15053
2023-06-25 13:43:32 +01:00
Ian McInerney
b00361d136
Revert "Don't use TOOL_EVENT parameters for line modes."
...
This reverts commit 84a63f7daa
.
2023-06-25 13:37:58 +01:00
Jeff Young
84a63f7daa
Don't use TOOL_EVENT parameters for line modes.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15053
2023-06-25 11:10:07 +01:00
Jeff Young
493828cc6b
Eradicate a bunch of calls to dyn_cast.
...
Also deletes PAD::GetParent() which fails to look for parent footprint
through groups.
2023-06-25 11:10:07 +01:00
Jeff Young
300a60e88e
Eradicate a bunch of calls to dyn_cast.
2023-06-25 11:10:05 +01:00
Jon Evans
d4b7144448
Properties: expose symbol attributes
...
Flip polarity of exclude-from-BOM and -board for symbols
to match that of footprints and match the GUI display.
2023-06-24 22:03:06 -04:00
Jeff Young
4764606a9d
Sheet pins are owned by their parents, so the parent must go in the SCH_COMMIT.
...
Also collapses a bunch of duplicated code.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15044
2023-06-24 12:35:48 +01:00
Jeff Young
a901247cbd
Rebuilding connectivity must be done after changes are committed.
...
It also needs to be done after undo and redo.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15028
2023-06-23 22:10:17 +01:00
Jeff Young
237cc7eee1
Move TestDanglingEnds() to SCH_COMMIT.
...
Also fixes a bug where Convert Symbol wasn't undoable.
Also cleans up some SetModified() call no longer needed with SCH_COMMIT.
Also fixes bug where revert of a modification didn't update the screen's
RTree.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15030
2023-06-23 19:59:46 +01:00
Jeff Young
aa6d9ad69a
Clear IS_NEW flags on commit.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15037
2023-06-23 15:30:09 +01:00
Jon Evans
3a0f8214fa
ADDED: Properties panel for schematic editor
...
Initial infrastructure work; follow-ons will add more
properties for schematic items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6351
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14105
2023-06-22 22:32:24 -04:00
Ian McInerney
19f5c16708
Ensure const-ness matches across draw wire event parameters
2023-06-21 14:06:25 +01:00
Ian McInerney
a2bd7192c0
Add default empty symbol to place symbols/power actions
2023-06-21 13:42:21 +01:00
Ian McInerney
480223f67c
More RunAction specialization
2023-06-20 21:52:50 +01:00
Ian McInerney
b04e54dbea
Switch TOOL_EVENT and TOOL_ACTION to have a std::any parameter
...
Using std::any from C++17 allows for proper type handling in the
parameter field, removing the need for casting to void* and then casting
the void* to the desired type.
2023-06-20 21:52:50 +01:00
Jeff Young
30336b2fe3
Unify go-back-one-step processing for drawing tools (and router).
...
Also warps mouse on all go-back-one-step operations for better feedback.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9985
2023-06-19 17:14:32 +01:00
Jeff Young
e9046076a6
Fine-tune SCH_COMMIT handling of child objects.
...
While a SCH_SHEET does indeed have a SCH_SHEET parent, it's not one of
the children that gets added as a CHT_MODIFY of its parent.
Also fixes a bug where the newly drawn sheet gets removed from the
preview before running the dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14976
2023-06-18 16:52:11 +01:00
Jon Evans
fc69939190
ADDED: GUI feedback when grid setting is changed by hotkey
...
Can be extended to other cyclical hotkey settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14756
2023-06-17 23:18:50 -04:00
Jeff Young
ef6866757e
Treat undo as backspace and/or escape when drawing. Ignore redo.
...
Undo == backspace when drawing a polygon or chained lines. Otherwise
it's an escape.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14961
2023-06-16 22:08:21 +01:00
Jeff Young
8259091ca1
Fix typo in new SCH_COMMIT architecture for shape drawing.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14976
2023-06-16 15:50:51 +01:00
Jeff Young
75e78f9088
Move bitmap2cmp and pcb_calculator to tool framework.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1939
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7561
2023-06-16 15:37:58 +01:00
Jeff Young
5c4ca9f092
Renaming to support potential future usage of SIMULATOR_PANEL as a panel within SIMULATOR_FRAME.
2023-06-15 17:39:10 +01:00
Wayne Stambaugh
4ccbbde54a
Net navigator bug fixes and improvements.
...
Note: This changes the net highlight tool behavior. When clicking on an
already highlighted net, the net highlighting is no longer toggled
off. This prevents the net navigator panel from being cleared.
2023-06-14 09:57:55 -04:00
Jeff Young
4f39cb0789
Fix SCH_COMMIT handling in TwoClickPlace.
2023-06-13 13:21:11 +01:00
Ian McInerney
d96580c651
Properly handle improper symbols when pasting in symbol editor
...
Before, an improper symbol (one without the starting toekn) weren't
detected and reported to the user properly and would instead assert. Now
properly detect these and pass the error up the stack to the tool.
(Sentry issue KICAD-21J).
2023-06-12 23:14:56 +01:00
Seth Hillbrand
62f24aca1e
Fix Connectivity Asserts in new COMMIT structure
...
The connection graph should only be updated within the commit structure
because this is the only time the connectivity should be changed. We
want any connectivity changes to be included in the commit as well, so
this should be stored prior to the undo/redo list mods
2023-06-12 13:35:06 -07:00
Jeff Young
286716a1ff
Retire AddItemToCommitAndScreen()
...
It duplicates a bunch of stuff in SCH_COMMIT and isn't really
compatible with it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14933
2023-06-12 19:34:23 +01:00
Jeff Young
8f1b9119bf
Upgrade some symbol editor stuff to SCHEMATIC_COMMIT.
...
Also renames SCHEMATIC_COMMIT to SCH_COMMIT since it's not schematic-specifc.
2023-06-09 22:41:47 +01:00
Jeff Young
e698156975
Upgrade many editing actions to SCHEMATIC_COMMIT.
2023-06-09 22:41:47 +01:00
Jeff Young
dcfd426333
Upgrade some dialogs to SCHEMATIC_COMMIT.
2023-06-09 22:41:47 +01:00
Wayne Stambaugh
e9dc00cda3
Minor schematic net navigator improvements.
...
- Expand tree and highlight object selected with net highlight tool.
- Expand tree and highlight object that are currently highlighted with the
selection tool.
- Use more descriptive object text rather than menu entry text for tree
strings.
- Rebuild tree on unit changes.
2023-06-09 14:34:54 -04:00
Jeff Young
90c14ecdf7
Upgrade a couple of schematic actions to SCHEMATIC_COMMIT.
2023-06-07 15:30:56 +01:00
Seth Hillbrand
c33d1ab244
Don't dirty the item connectivity prematurely
...
Item connectivity changes once the elements are commited, not during the
process of moving.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14884
2023-06-05 09:12:20 -07:00
Jeff Young
d827bb8a1f
Leave back/forward/up nav buttons enabled so the action doesn't change.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14783
2023-05-31 11:13:35 +01:00
Jeff Young
a4f16423c8
Push reference and value special cases down into LIB_FIELD::compare().
...
Use COMPARE_FLAGS::EQUALITY and COMPARE_FLAGS::ERC when doing
library diffs.
Also fixes a few more cases where we weren't checking for -1 when
doing a fieldID < MANDATORY_FIELDS.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14830
2023-05-29 12:40:20 +01:00
Jeff Young
81d7428fd2
Don't call OnPageSettingsChanges on Undo/Redo.
...
It's incredibly expensive (multiple seconds on a document with
lots of text in an outline font).
2023-05-27 20:35:05 +01:00
Jeff Young
4ed267394a
Outline font performance improvements.
...
1) Don't fracture font glyphs when generating them; we're going
to fracture during triangulation anyway.
2) Don't check for self-intersection when deciding to fracture.
It costs nearly as much as the fracture does.
3) Cache drawing sheet text.
4) Use the current font when checking for cache validity.
5) Parallelize glyph triangulation.
6) Don't invalidate bounding box caches when offset by {0,0}
7) Use the glyph cache when generating text effective shape.
8) Short-circuit NormalizeJustification() if its center/center.
9) Don't triangulate for GuessSelectionCandidates()
10) Avoid sqrt whenever possible.
11) Pre-allocate bezier and SHAPE_LINE_CHAIN buffers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14303
2023-05-27 01:35:40 +01:00
Steve Bollinger
28b37ad020
Someone accidentally exchanged the x and y coordinates when flipping
...
components horizontally and vertically in
SCH_DRAWING_TOOLS::SingleClickPlace()
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14725
2023-05-25 12:11:48 +00:00
Jeff Young
14f004d2a5
Hook up text variable auto-complete for PCBNew.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14777
2023-05-25 10:24:50 +01:00
Jeff Young
5a9ed66cfd
Go back to using QuasiModal for TextBox Properties.
...
Also removes auto-closing of blocking dialogs when inserting
symbols from the Symbol Editor or Chooser, preventing the bug
that QuasiModel was removed for earlier.
Also fixes a non-initialized parent pointer when the TextBox
Properties dialog was called from DrawShape().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14777
2023-05-25 10:24:50 +01:00
Wayne Stambaugh
24b04795fd
Add net navigator panel to schematic editor.
...
[ADDED]: A panel to the schematic editor that allows quick access to all
of the items connected to the currently highlighted net.
This is an initial swag at implementing a full net navigator feature. For
now it only shows the currently highlighted net nodes. The incremental
net list advanced setting must be enabled in order to use this feature due
to performance reasons. There are still some issues with saving the panel
position which will be addressed in the future.
Initial code for serializing wxAuiPaneInfo settings to and from JSON have
be implemented.
2023-05-20 13:48:03 -04:00
Marek Roszko
aeadd49a33
Fix windows builder broken by 831a6d5
2023-05-16 21:49:55 -04:00
Wayne Stambaugh
831a6d55fc
Fix potential stale pointer bug in schematic highlight connection code.
...
SCH_CONNECTION objects are temporary and can become stale any time the
connectivity is updated. Keeping them around to reference later is a
bad idea. Even if the object pointer is still valid in an SCH_ITEM in
the undo/redo buffers, comparing the pointer against another pointer as
a test to see if they are the same connection is not valid. Saving the
connection name is safe and ensures the connection is the same even if
the pointers differ.
2023-05-16 20:06:21 -04:00
Marek Roszko
1adcb86e0b
Initial schematic search pane
2023-05-14 22:41:56 -04:00
Jeff Young
4a62cc6edd
Separate symbol editor polyline and polygon tools.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14695
2023-05-07 14:58:44 +01:00
Jeff Young
49655ae742
Defense in depth for "mouse stuck in canvas".
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12653
2023-05-06 11:28:14 +01:00
Jeff Young
c016bea020
Make sure mouse isn't captured when dialog is raised.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14685
2023-05-06 11:28:14 +01:00
Jeff Young
b41d446f58
Fix a bunch more issues with sheetpaths and allowExtraText.
...
A sheetpath is required to correctly resolve text variables.
Depending on currentSheet is rife with bugs.
There are many places where we do *not* want to be prepending
field names to the field values, such as netlisting,
building PDF hypertext menus, etc.
Also, Find/Replace needs to work on unresolved text, as
that's what we're going to display (and if replace nuked
your variable references you wouldn't be happy).
2023-05-05 17:23:52 +01:00
Seth Hillbrand
1e03c84918
Add ability to toggle attributes
...
Adds actions and context menu options to adjust attributes.
2023-05-04 11:51:21 -07:00
Seth Hillbrand
cb85412b85
Cleanup Undo ordering
...
The undo command has accreted a number of things over the years. This
prunes back the changes to the minimum required number and correctly
orders the actions
Fixes https://gitlab.com/kicad/code/kicad/issues/14661
2023-05-01 19:29:48 -07:00
Mike Williams
04a53ea40d
Picker Tools: make sure we know what tool we are
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14621
2023-05-01 12:43:09 -04:00
Mike Williams
39cc686dc4
Back Annotation: add support for DNP and Exclude from BOM attributes
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14584
2023-05-01 08:54:14 -04:00
Seth Hillbrand
f4b43617e7
Add COMMIT structure to Schematic and Symbol editors
...
Provides a single-point access for modifying the schematic and symbol
elements that allows chaining updates and reverting partial changes.
Standardizes the undo hierarchy between pcb and schematic editors
As this is another layer on the existing undo/redo structure, the
initial commit does not replace all undo/redo calls currently existing.
These will be handled in a series of follow-on commits
2023-04-28 17:05:47 -07:00
Jeff Young
e1b39946fe
ADDED: show/hide controls for directive labels.
2023-04-28 00:32:49 +01:00
Jeff Young
f7a552a2b3
Ensure item is gridded if there was no motion between clicks.
2023-04-18 23:55:56 +01:00
Jeff Young
6fb8916798
The symbol viewer handles its own message panel.
2023-04-16 18:47:04 +01:00
aris-kimi
18cebe3779
Don't assume an EDA_ITEM is a SCH_ITEM. v2
...
In the same way as cec4109176
did
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14528
2023-04-13 11:12:02 +01:00
Jeff Young
a24a63e416
Search in label fields.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14075
2023-04-12 23:21:53 +01:00
Ian McInerney
18e573d5e9
Remove stray wx include
...
There is no reason to include the actual string implementation header
here.
2023-04-12 18:57:12 +01:00
Jeff Young
66f48d56ae
Separate sheet reloads (MODEL_RELOAD) and schematic reloads (SUPERMODEL_RELOAD).
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14523
2023-04-12 11:51:09 +01:00
qu1ck
0c049eccc7
Fix a bunch of compiler warnings
2023-04-11 17:01:30 +00:00
jean-pierre charras
f01e083f7c
fix 2 issues related to SCH_GLOBALLABEL items:
...
- Ensure the first field in m_fields has id = 0 to be seen has hypertext
(it was not the case after reading a .kicad_sch file)
- when converting this item to another label/text, remove this special Field
from the copied field list to the converted label.
2023-04-10 09:58:27 +02:00
Jeff Young
a226f7fc14
Don't delete default intersheetrefs field from global labels.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14493
2023-04-09 19:03:36 +01:00
jean-pierre charras
7eb13c3d33
Symbol editor: clear the edit flags of a pasted pin after place it.
...
When pasting a single pin, its edit flags were not cleared, and create
issues when trying to edit the pasted pin.
Fixes #14188
https://gitlab.com/kicad/code/kicad/issues/14188
2023-04-06 11:08:01 +02:00
Jeff Young
a9b2234f4e
Use a softer Reset for grid settings.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14458
2023-04-04 17:05:21 +01:00
Jeff Young
3a8d6dffba
Don't close ERC window when changing sheets.
...
This Reset() override was originally added to fix a bug when opening
a new schematic in stand-alone. However, we now do that sort of
cleanup in SCH_EDIT_FRAME::doCloseWindow().
Fixes https://gitlab.com/kicad/code/kicad/issues/14470
2023-04-02 11:48:23 +01:00
Wayne Stambaugh
28776f5745
Text attributes object improvements.
...
* Add compare method to COLOR4D object.
* Add unit test to validate COLOR4D comparison method.
* Add missing color test in text attribute comparison method.
* Add unit test for text attribute object.
* Remove unnecessary headers from text attribute header.
* Move text attribute code into separate source file.
2023-03-29 12:53:45 -04:00