292 Commits

Author SHA1 Message Date
Jeff Young
60b4202766 CHANGED: Rework lock overrides architecture.
We now use a checkbox in the aux toolbar rather
than a query dialog (with "remember setting" checkbox).
2025-08-13 10:30:26 +01:00
Seth Hillbrand
73aa437259 Finalize lasso selection tool
- Move under rectangular selection
- Simplify available modes
- Link to new icon
- Make selection state persistent
- Allow additive/subtractive with KiCad configurable keys
2025-08-06 16:07:43 -07:00
Andrzej Wolski
c73d555fe2 ADDED: Lasso selection in pcbnew
Adds a lasso or freeform selection tool to KiCad in addition to standard
rectangular selection.  Adds supporting HitTest routines

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1977
2025-08-06 16:06:40 -07:00
Jeff Young
c758a2fbaf Don't sequence layers when order doesn't matter. 2025-07-14 19:12:44 +01:00
Jeff Young
4137b9d31c Don't overflow int rebuilding selection rect (KICAD-E4J). 2025-07-14 13:17:53 +01:00
Wayne Stambaugh
718b7e744a Do not allow selection of excluded DRC markers when they are not visible.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21265
2025-07-13 18:13:35 -04:00
Jeff Young
d3046e6aee Don't steal unrelated timer events (potentially KICAD-XJN). 2025-07-13 16:30:03 +01:00
Jeff Young
d2a623719b Be consistent about getting board copper layers. 2025-07-09 13:05:22 +01:00
Jeff Young
f5f59e797d Make sure event has position before querying it (KICAD-796). 2025-07-01 21:17:22 -06:00
Jeff Young
5df676c1d0 Fixup. 2025-06-30 21:55:12 -06:00
Jeff Young
f5d2553161 static_cast safety. 2025-06-30 20:34:26 -06:00
Jeff Young
fc0bf1e8bd Allow move action when selection contains non-table-cells.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19982
2025-06-30 15:10:52 -06:00
Jeff Young
b7362c3fb5 Don't assume all EDA_ITEMs are BOARD_ITEMs (KICAD-KCZ). 2025-06-24 21:30:48 -06:00
Jeff Young
1bc60c32f0 Nullptr safety. 2025-06-15 21:45:09 +01:00
Jeff Young
e6d94d5b09 Repair saved locking logic.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21090
2025-06-10 09:06:59 +01:00
Jeff Young
116bd924c2 Static cast safety.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20958
2025-06-08 23:21:02 +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
Mike Williams
8ec70ee92b PCB: unroute segment
Works like the backspace key in the router, but for segments that are
already placed.
2025-05-19 14:05:14 -04:00
Mike Williams
2baeecbee8 groups/design blocks add convenience methods for placing/updating 2025-05-15 14:26:56 -04:00
Mike Williams
d2f0a13515 groups/design blocks: add lib link to groups from design blocks
Also add Place Linked Design Block function.
2025-05-13 10:41:32 -04:00
Jeff Young
ecb5c5e0d4 Visibility control is for *filled* shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20635
2025-04-13 13:12:43 +01:00
Jeff Young
96491132ce Performance. 2025-04-05 22:18:17 +01:00
Mike Williams
40058ebe80 actions: move all basic selection operations to common actions 2025-04-02 12:02:01 -04:00
Jeff Young
8ff0aafbb8 Handle groups in footprints when filtering selection. 2025-04-02 16:22:21 +01:00
Mike Williams
05e9772d54 groups: extract common class methods into EDA_GROUP base class 2025-04-01 14:34:20 -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
Mike Williams
f40b24d04a groups: move actions to common actions 2025-04-01 14:34:20 -04:00
Mike Williams
a90b8ec57a pcb: merge RunOnChildren/Descendants into one function with a mode 2025-03-27 13:16:09 -04:00
Jeff Young
6e2914b990 Update terminology. 2025-03-25 12:05:54 +00: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
8894c470ef Don't modify selection in the middle of a move/drag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20239
2025-03-14 14:52:49 +00:00
Jeff Young
d0e86cad7c Disable multi-via dragging.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20150
2025-03-03 11:01:33 +00:00
Jeff Young
20f40c1030 Replace GetConnectedItems() type list with an EXCLUDE_ZONES flag.
The type list kept atrophying when various new
items were added (arcs, shapes).

And god knows what the purpose of putting PCB_FOOTPRINT_T
in some of them was.  As far as I can tell a CN_ITEMs
parent can never be a footprint.

(Also moves IGNORE_NETS to a flag so that we don't
end up with two booleans and the potential to have
them out-of-order.)
2025-02-26 11:02:10 +00:00
Jeff Young
5edae8250d Finish eradication of visibility flag on text items.
Import/read previously-hidden symbol/footprint
text items as hidden fields.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19875
2025-02-19 23:43:52 +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
Seth Hillbrand
e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
JamesJCode
29798a6400 Allow DRC markers to be selected with area selection
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19258
2024-12-08 14:10:07 +00:00
JamesJCode
669be5378c Allow selection of PCB_MARKERs when not on active layer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19258
2024-12-06 22:02:06 +00:00
Jeff Young
30a7f537d7 Selection must be uniformly tracks/vias for multi-drag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19166
2024-11-25 16:20:51 +00:00
Alex Shvartzkop
fee8560079 Don't modify m_selection while iterating over it in PCB editor.
This caused a fatal assert when selecting connected tracks with tuning patterns.
2024-11-23 13:54:03 +03:00
Jon Evans
71a0a638a0 Remove unused pad layers and simplify pad colors 2024-11-16 11:27:20 -05:00
Jon Evans
ab384477ce Do not crash if passed a null item in AddItemsToSel 2024-11-03 09:05:10 -05:00
Tomasz Wlostowski
d1642c59ea PCB_SELECTION_TOOL: fix multidrag start condition 2024-11-02 19:59:09 +01:00
John Beard
9c9542deea Bind multiply-modified scroll events to the increment action
Implemented as handling un-consumed scroll events that the
WX_VIEW_CONTROLS doesn't want because it has too many mods
set. Then dispatch these as TA_MOUSE_WHEEL events.

The default action from the selection tools is to run the
'increment' ACTION, which is implemented differently in the
various tools: eeschema can increment labels, symedit
does pin names and numbers, and fpedit does pad numbers.
2024-10-26 16:00:58 +08:00
John Beard
095e414f12 Pcbnew: add way to re-enable locking prompts
While it's still session-limited, this means you don't have
to restart to get your locking ability back.

Finer-grained locking enablement probably makes better long-term
sense, but this at least prevents "gun shyness" about a setting
you can't turn off again easily.

Also it gets a bool's-worth of application configuration state
out of a dialog (it was a static).
2024-10-05 22:26:18 +01:00
Dhineshkumar S
661ed81e6f Enable Move Action for Table Dragging Instead of Cell Selection
Previously, when executing a left mouse button (LMB) click to drag the
selected table, the cells inside the table were selected instead of moving
or dragging the table. To fix this, the move action should be enabled
instead of cell selection when m_selection contains only PCB_TABLE as
selected item. Otherwise, cell selection should remain enabled.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17380
2024-10-04 23:30:37 +00:00
Jon Evans
56e0811516 Phase 2 of padstack support
CHANGED: PCB file format now supports saving/loading complex padstacks

CHANGED: PTH pads are now rendered per copper layer in the copper color;
         the PTH pad color is no longer used.

ADDED: support for importing complex pad stacks from Altium PCBs

Enforce padstack-aware access to pad properties across KiCad

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8182
2024-10-01 19:55:03 -04:00
John Beard
3f131e2011 Abstract REFERENCE_IMAGE to a separate class
Break the non-PCB-specfic parts of PCB_REFERENCE_IMAGE out
to a common REFERENCE_IMAGE class, which is then composed into
the PCB_REFERENCE_IMAGE. This will make it easier to bring the
transform origin logic to eeschema without repetition.
2024-09-30 10:20:20 +01:00
Mike Williams
867cb58175 feature removal: remove Show Hidden Text
Does not work properly since 8.0 introduction of footprint fields.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18656
2024-09-19 15:41:44 -04:00
jean-pierre charras
fb0384d761 PCB_SHAPE item: do not control the selection by the LAYER_SHAPES visibility.
the GAL LAYER_SHAPES controls the opacity of filled shapes, not the visibility
a opacity = 0.0 disable the PCB_SHAPE selection of the item, but this is not
optimal, because only filled areas have a opacity control.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18719
2024-09-16 19:07:18 +02:00