kicad/pcbnew/tools
Seth Hillbrand f3d65b5156 Revise method of selecting footprints in contrast
When working in high contrast mode, we want to be able to select a
footprint with only elements in, e.g. silk and fab layers.

The previous design for footprint IsOnLayer had one behavior of every
other element and a different behavior for footprints.  This leads to
multiple bugs as new features use the overloaded IsOnLayer expecting it
to report if the element exists on a layer or not.

For footprints, we need a different routine to determine whether or not
to select the footprint when clicking on it.  IsOnLayer will report if
the footprint has any elements on a specific layer but we don't want to
use the bbox for a hittest because large footprints with through hole
pads will exist on every layer and have an enormous bbox.  Instead, we
filter footprints based on the hittest of each element.  This behaves in
a more logical fashion, allowing you to select a footprint by clicking
on a visible element of that footprint.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284
2023-08-01 10:43:13 -07:00
..
board_editor_control.cpp Sch/PCB: allow back-updating schematic fields from PCB 2023-07-31 10:38:43 -04:00
board_editor_control.h ADDED: Search/inspect pane 2022-09-14 02:59:57 +00:00
board_inspection_tool.cpp Remove a bunch of blind (and a few redundant) static_casts. 2023-07-13 14:14:45 +01:00
board_inspection_tool.h ADDED footprint associations dialog. 2023-07-11 14:52:05 +01:00
board_reannotate_tool.cpp Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
board_reannotate_tool.h Array creator tool: Add option to assign unique reference designators 2021-10-25 22:38:49 +01:00
convert_tool.cpp Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name 2023-07-25 09:11:55 +02:00
convert_tool.h ADDED: user-specified gap and linewidth for bounding hull creation. 2023-02-12 23:16:45 +00:00
drawing_stackup_table_tool.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
drawing_tool.cpp Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name 2023-07-25 09:11:55 +02:00
drawing_tool.h Unify go-back-one-step processing for drawing tools (and router). 2023-06-19 17:14:32 +01:00
drc_tool.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
drc_tool.h Re-create missing exclusion markers if DRC was cancelled. 2023-06-11 12:14:27 +01:00
edit_tool.cpp Fix fillets and chamfers when the original lines become zero-length 2023-07-30 15:12:28 +01:00
edit_tool.h ADDED: Pcbnew chamfer and extend tools 2023-07-12 19:21:37 +01:00
edit_tool_move_fct.cpp Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
footprint_editor_control.cpp Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
footprint_editor_control.h Enable properties panel in footprint editor 2023-02-17 20:35:56 -05:00
global_edit_tool.cpp Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
global_edit_tool.h Make pad & via teardrops 1st-class citizens (props of the pad/via) 2023-05-19 18:02:03 +01:00
group_tool.cpp Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
group_tool.h Fix the last of broken Doxygen comment specifiers. 2021-01-27 17:39:44 -05:00
item_modification_routine.cpp Fix fillets and chamfers when the original lines become zero-length 2023-07-30 15:12:28 +01:00
item_modification_routine.h Fix fillets and chamfers when the original lines become zero-length 2023-07-30 15:12:28 +01:00
pad_tool.cpp Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name 2023-07-25 09:11:55 +02:00
pad_tool.h Collapse FP_* down into their PCB_* equivalents. 2023-03-31 22:57:46 +01:00
pcb_actions.cpp Add default parameter to PCB image placement action 2023-07-13 13:15:19 +01:00
pcb_actions.h ADDED: Pcbnew chamfer and extend tools 2023-07-12 19:21:37 +01:00
pcb_control.cpp Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
pcb_control.h Remove EDIT_TOOL's quasi-global BOARD_COMMIT. 2023-06-27 17:04:18 +01:00
pcb_editor_conditions.cpp Remove bad static_cast. 2022-07-24 23:41:41 +01:00
pcb_editor_conditions.h Move 45° limit to hotkey 2021-09-05 13:42:51 -07:00
pcb_grid_helper.cpp Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name 2023-07-25 09:11:55 +02:00
pcb_grid_helper.h Honour selection filter when picking move anchors. 2022-11-08 16:27:18 +00:00
pcb_picker_tool.cpp Picker Tools: make sure we know what tool we are 2023-05-01 12:43:09 -04:00
pcb_picker_tool.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
pcb_point_editor.cpp Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name 2023-07-25 09:11:55 +02:00
pcb_point_editor.h pcbnew: Support dragging arc center in "Keep endpoints" mode. 2022-12-12 13:00:44 +03:00
pcb_selection.cpp Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
pcb_selection.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
pcb_selection_conditions.cpp PCB Editor: make locking menu items conditional 2022-12-21 10:34:54 -05:00
pcb_selection_conditions.h PCB Editor: make locking menu items conditional 2022-12-21 10:34:54 -05:00
pcb_selection_tool.cpp Revise method of selecting footprints in contrast 2023-08-01 10:43:13 -07:00
pcb_selection_tool.h Revise method of selecting footprints in contrast 2023-08-01 10:43:13 -07:00
pcb_tool_base.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
pcb_tool_base.h TOOL_EVENT: make command string non-optional 2022-09-19 10:23:09 -04:00
pcb_viewer_tools.cpp PCB: introduce PCB_FIELD_T 2023-06-20 18:34:52 +00:00
pcb_viewer_tools.h Remove some more duplicated preferences. 2021-12-26 13:37:28 +00:00
placement_tool.cpp Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
placement_tool.h Some more wxPoint/EDA_RECT yeeting. 2022-08-31 00:44:33 +01:00
position_relative_tool.cpp Remove a bunch of blind (and a few redundant) static_casts. 2023-07-13 14:14:45 +01:00
position_relative_tool.h Don't keep value of user or grid anchors between invocations. 2022-11-17 00:51:52 +00:00
tool_event_utils.cpp Switch TOOL_EVENT and TOOL_ACTION to have a std::any parameter 2023-06-20 21:52:50 +01:00
tool_event_utils.h Fix a few more doxygen errors (no actual code change) 2023-04-19 20:24:42 +02:00
zone_create_helper.cpp Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
zone_create_helper.h Choose the first unused priority value for zones 2022-08-25 10:05:30 -07:00
zone_filler_tool.cpp Changed: Allow filling/unfilling individual zones with no selection 2023-07-12 23:00:13 +01:00
zone_filler_tool.h Don't allow quit while zone filler is running. 2023-01-16 16:01:45 +00:00