60 Commits

Author SHA1 Message Date
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
2b5b3ffb8d sch selection: fix non-greedy line selection
Make sure we selected at least one end before selecting.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/20942
2025-05-21 08:54:37 -04:00
Seth Hillbrand
484c35c44f When cycling next/prev selection, keep only single
We want to have only the current item in the selection rather than all
of them

(cherry picked from commit 62e11694927dda229c45ca0be8a135eb033d0717)
2025-05-16 09:27:38 -07:00
Mike Williams
2baeecbee8 groups/design blocks add convenience methods for placing/updating 2025-05-15 14:26:56 -04:00
Mike Williams
2e8367a40a sch groups: don't allow drag selecting table cells in un-entered group
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/20834
2025-05-05 10:35:47 -04:00
Wayne Stambaugh
93cac7d0a5 Fix broken select connection behavior.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19790
2025-05-01 17:02:21 -04:00
JamesJCode
d550e34cf6 Add SELECTION_CANDIDATE flag to EDA_ITEM flags
This is now used when marking selection candidates in the schematic
selection tool. This avoids using CANDIDATE, which can case issues
with connectivity updates if it is not cleared after use.
2025-04-29 18:33:59 +01:00
Roberto Fernandez Bautista
96d72bed6f Fix variable shadow warning in sch_selection_tool.cpp
Also be consistent in naming for all `RunOnChildren` lambdas
2025-04-26 14:42:52 +02:00
Mike Williams
82043e374a sch groups/lines: correctly handle view lifetime and drawing in group 2025-04-21 09:28:27 -04:00
JamesJCode
2ee66ccfac Fix compiler warning 2025-04-15 20:40:56 +01:00
Mike Williams
cdac27b2bc sch groups: implement rotate/mirror 2025-04-15 10:19:40 -04:00
Mike Williams
5eee8f1c5f sch_view: update to handle items with children 2025-04-15 10:19:39 -04:00
Mike Williams
5db091fc79 sch groups: clear group membership on destruction, add tests 2025-04-15 10:14:38 -04:00
Mike Williams
05f3c47b4f groups: make selection tool work with groups 2025-04-15 10:13:50 -04:00
Julien Serin
f381c6e846 Feat add table selection with shift+click
ADDED now user can use shift+click to select multiple cell in a table with two click

Fixes https://gitlab.com/kicad/code/kicad/issues/19878
2025-04-08 11:57:35 -07:00
Mike Williams
40058ebe80 actions: move all basic selection operations to common actions 2025-04-02 12:02:01 -04:00
Mike Williams
5fd294cad2 eda frame: hoist FocusItem calls up a layer
Prep for SCH_GROUPs
2025-04-01 14:34:20 -04:00
Jeff Young
7ba07a3bb0 Use action to change current sheet.
That way it gets into the navigation hierarchy,
the current zoom gets saved, etc.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20466
2025-03-27 17:56:53 +00:00
Mike Williams
c67924ccac schematic: convert RunOnChildren to also take recursion mode argument
Prepping for SCH_GROUPS, making consistent with the PCB code.
2025-03-27 13:16:09 -04:00
Mike Williams
18010b1104 selection: sort box selection by rows and columns by default
Some tools can take a selection order and it is nice to provide a
sane human-oriented default sorting when box selecting.
2025-03-19 10:25:35 -04:00
Jeff Young
5996cffabc EE -> SCH (no functional changes) 2025-03-13 13:15:47 +00:00
Jeff Young
c1539ae014 Naming changes to reflect sharing between SchEdit and LibEdit. 2019-05-10 19:56:20 +01:00
Jeff Young
ea0941cab3 Implement modern tools for LibEdit. 2019-05-10 16:11:57 +01:00
Seth Hillbrand
589a37bfe8 eeschema: Don't segfault on empty drawlist 2019-05-09 15:11:36 -07:00
Jeff Young
f40408187e A couple of temp hacks for LibEdit <esc> processing while in transition.
Fixes: lp:1828004
* https://bugs.launchpad.net/kicad/+bug/1828004
2019-05-07 12:04:19 +01:00
Jeff Young
2097411550 Refresh RequestSelection selection if all items were filtered out.
If you have, for instance a pin selected and do a cmd-E we'll filter
out the pin and then do nothing.  We should instead treat it as a
hover selection if everything got filtered.
2019-05-07 12:04:19 +01:00
Jeff Young
f1a38a6d41 Respond to <esc> from selection tool.
Fixes: lp:1827917
* https://bugs.launchpad.net/kicad/+bug/1827917
2019-05-06 21:56:19 +01:00
Jeff Young
207900e4f9 Move libedit message panel updating to the Inspection Tool. 2019-05-06 15:31:23 +01:00
Jeff Young
f87d371b8b Move to shared COLLECTORS for sch and lib. 2019-05-06 15:31:23 +01:00
Jeff Young
a42a4b0b52 Implement immediate bus unfold and add bus unfold to selection context menu. 2019-05-05 17:14:30 +01:00
Jeff Young
fd546da640 Homogenize hit testing and selection return types.
Prep work for sharing SCH_SELECTION_TOOL with LibEdit.
2019-05-05 17:14:30 +01:00
Jeff Young
b5fd7b9842 Move Leave Sheet to the top of the context menu. 2019-05-05 17:14:30 +01:00
Jeff Young
7e3ad4585a Fix issues with dragging, moving and rotating wires. 2019-05-05 17:14:30 +01:00
Jeff Young
2edb09e583 Double click action should enter sheet. 2019-05-05 17:14:30 +01:00
Jeff Young
bcdc3ad90a Set IS_NEW flag on new images. And a bunch of cleanup of dead code. 2019-05-05 17:14:30 +01:00
Jeff Young
21b315f2af Finish removing GetCurItem() from eeschema. 2019-05-05 17:14:30 +01:00
Jeff Young
6e695aac25 Move bus unfold and symbol unit selection to modern toolkit. 2019-05-05 17:14:30 +01:00
Jeff Young
f4b92e6acf Refactor as SCH_DRAWING_TOOL was getting too big. 2019-05-05 17:14:30 +01:00
Jeff Young
20b63174dc Support wire & bus drawing from selection tool. 2019-05-05 17:14:30 +01:00
Jeff Young
4ca0f4da10 Fixes to the context menu logic around wire/bus drawing. 2019-05-05 17:14:30 +01:00
Jeff Young
1e5334f5d4 Implement DeMorgan conversions in modern toolset. 2019-05-05 17:14:30 +01:00
Jeff Young
29f1787af2 Logic improvements and fixes for wire segment selection states. 2019-05-05 17:14:30 +01:00
Jeff Young
c09817e08c Context menus for labels. 2019-05-05 17:14:30 +01:00
Jeff Young
588d13a912 Fix gcc issue with temp variable and move some collection specs.
Having the collection specs localized with their code improves
encapsulation.

(Thanks to crasic for the original patch.)
2019-05-05 17:14:29 +01:00
Jeff Young
35e8a340ca Add enter/leave sheet to modern toolset. 2019-05-05 17:14:29 +01:00
Jeff Young
423d430b58 Replace deleteNode and deleteConnection with selectNode and selectConnection. 2019-05-05 17:14:29 +01:00
Jeff Young
f81007f74b Some clean-up and moving message panel update to selection event. 2019-05-05 17:12:59 +01:00
Jeff Young
42383ae871 Build out some of the modern toolkit context menus. 2019-05-05 17:12:59 +01:00
Jeff Young
da988428cf Add modern toolset cut/copy/paste. They now use the system clipboard. 2019-05-05 17:12:59 +01:00
Jeff Young
2bd4a1b58c Implement properties dialogs in modern toolset. 2019-05-05 17:12:59 +01:00