kicad/pcbnew
John Beard 8e0e9ce752 Generalise fillet tool
Describe the actions of the fillet tools is a generic way, so that the
same general pattern can be used for other tools that modify shapes on
the BOARD.

Basically, an "ITEM_MODIFICATION_ROUTINE" is defined, which is
configured and called multiple times, calling back to the EDIT_TOOL when
it modifies or creates an item.

The motivation here is to make it easier to slot in new line-based
tools like chamfer, extend and so on without having to redo the
complicated item, selection and commit handling each time, and keep the
core "routines" simple and decoupled from the EDIT_TOOL's
internals.

This also resolves #15094 because the new commit handling does the right
thing when items were "conjured up" for the fillet (e.g. when a
rectangle is decomposed into lines).

Fixes: #15094
2023-07-12 19:21:26 +01:00
..
autorouter Centralize text size clamping. 2023-06-03 20:29:51 +01:00
board_stackup_manager Lazy loading of stackup UI widgets. 2023-05-11 14:37:48 +01:00
connectivity Eradicate a bunch of calls to dyn_cast. 2023-06-25 11:10:07 +01:00
dialogs Move some MRU paths from app to project. 2023-07-12 17:30:42 +01:00
drc Check for zone-zone overlap 2023-07-07 11:52:25 -07:00
exporters Eradicate a bunch of calls to dyn_cast. 2023-06-25 11:10:07 +01:00
import_gfx PCB: abolish TEXT_TYPE::TEXT_is_* 2023-06-20 18:34:52 +00:00
microwave Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
navlib Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
netlist_reader Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
plugins Formatting. 2023-07-07 23:41:58 +01:00
python Footprints swig API: access shown text in fields 2023-06-29 20:36:27 +00:00
ratsnest Don't blindly cast to PCBNEW_SETTING: we may be in CVPCB.... 2023-07-08 22:50:22 +01:00
router Allow routing to a free pad (even if it has a hole). 2023-07-01 14:23:38 +01:00
specctra_import_export Replace PAD_SHAPE::RECT by PAD_SHAPE::RECTANGLE to avoid a collision NAME with a windows header on MSYS2, creating many compil warnings. No actual code change. 2023-06-02 12:18:24 +02:00
teardrop Refactor: Move static to be inside ZONE_SETTINGS 2023-06-10 12:03:41 +02:00
tools Generalise fillet tool 2023-07-12 19:21:26 +01:00
widgets Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
CMakeLists.txt Generalise fillet tool 2023-07-12 19:21:26 +01:00
Doxyfile_python
Doxyfile_xml
action_plugin.cpp
action_plugin.h
array_creator.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
array_creator.h
array_pad_number_provider.cpp
array_pad_number_provider.h
board.cpp Eradicate a bunch of calls to dyn_cast. 2023-06-25 11:10:05 +01:00
board.h Hook up text variable auto-complete for PCBNew. 2023-05-25 10:24:50 +01:00
board_commit.cpp Another attempt to fix qa error. 2023-07-03 16:26:20 +01:00
board_commit.h Another attempt to fix qa error. 2023-07-03 16:26:20 +01:00
board_connected_item.cpp Make pad & via teardrops 1st-class citizens (props of the pad/via) 2023-05-19 18:02:03 +01:00
board_connected_item.h Make pad & via teardrops 1st-class citizens (props of the pad/via) 2023-05-19 18:02:03 +01:00
board_design_settings.cpp Split StyleFootprints into separate bools for fields vs text & graphics. 2023-07-10 17:15:57 +01:00
board_item.cpp Disable locked in the FP Editor. 2023-06-30 20:51:18 +01:00
board_item_container.h
build_BOM_from_board.cpp Fix a bunch more issues with sheetpaths and allowExtraText. 2023-05-05 17:23:52 +01:00
cleanup_item.cpp Add pad-recombining to FPEditor's Cleanup Graphics. 2022-09-24 19:34:06 +01:00
cleanup_item.h Add pad-recombining to FPEditor's Cleanup Graphics. 2022-09-24 19:34:06 +01:00
collectors.cpp PCB: drop unused lockable items list 2023-07-06 11:25:41 -04:00
collectors.h PCB: drop unused lockable items list 2023-07-06 11:25:41 -04:00
convert_shape_list_to_polygon.cpp STEP export: in board outlines, export Circles as Cylinders, round 2. 2023-05-16 13:39:16 +02:00
convert_shape_list_to_polygon.h STEP export: in board outlines, export Circles as Cylinders, round 2. 2023-05-16 13:39:16 +02:00
cross-probing.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
edit.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
edit_track_width.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
edit_zone_helpers.cpp More safety around ratsnest state. 2022-11-30 13:00:21 +00:00
files.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
footprint.cpp Split StyleFootprints into separate bools for fields vs text & graphics. 2023-07-10 17:15:57 +01:00
footprint.h Split StyleFootprints into separate bools for fields vs text & graphics. 2023-07-10 17:15:57 +01:00
footprint_edit_frame.cpp Remove existing footprint when force-reloading 2023-06-26 17:04:03 -07:00
footprint_edit_frame.h Naming clarity. No functional changes. 2023-06-05 11:01:10 +01:00
footprint_editor_settings.cpp Prefer MRU path to LastImportExportPath for importing footprints. 2023-07-09 22:28:26 +01:00
footprint_editor_utils.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
footprint_info_impl.cpp Fields: Description now mandatory 2023-06-20 18:34:52 +00:00
footprint_info_impl.h
footprint_libraries_utils.cpp Move some MRU paths from app to project. 2023-07-12 17:30:42 +01:00
footprint_preview_panel.cpp Add a "hyperzoom" mode for debugging "up close". 2023-06-20 14:19:21 +01:00
footprint_preview_panel.h Graphical diff for board vs library footprints. 2023-03-10 17:16:40 +00:00
footprint_tree_pane.cpp Footprint Editor: Focus search field when window is first opened 2022-12-20 19:54:02 +00:00
footprint_tree_pane.h Footprint Editor: Focus search field when window is first opened 2022-12-20 19:54:02 +00:00
footprint_viewer_frame.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
footprint_viewer_frame.h ADDED: Change watcher for libraries 2023-05-31 13:46:00 -07:00
footprint_wizard.cpp
footprint_wizard.h
footprint_wizard_frame.cpp Separate immediate and delayed action dispatch 2023-06-27 00:57:59 +01:00
footprint_wizard_frame.h Rename function in Footprint wizard to prevent impoper override 2023-06-12 23:14:56 +01:00
footprint_wizard_frame_functions.cpp Rename function in Footprint wizard to prevent impoper override 2023-06-12 23:14:56 +01:00
fp_text_grid_table.cpp FP Text Grid: avoid ambiguous fallthrough 2023-06-20 19:23:29 -04:00
fp_text_grid_table.h PCB Fields: use validators in dialogs, restrict editing of footprint 2023-06-20 18:34:52 +00:00
fp_tree_model_adapter.cpp Add pin/unpin context menu to Symbol Chooser and Footprint Chooser. 2022-09-21 14:45:12 +01:00
fp_tree_model_adapter.h Add pin/unpin context menu to Symbol Chooser and Footprint Chooser. 2022-09-21 14:45:12 +01:00
fp_tree_synchronizing_adapter.cpp Fields: Description now mandatory 2023-06-20 18:34:52 +00:00
fp_tree_synchronizing_adapter.h Treat canvas item as current when tree view contains no selection. 2023-06-04 20:52:12 +01:00
generate_footprint_info.cpp Fields: Description now mandatory 2023-06-20 18:34:52 +00:00
generate_footprint_info.h
graphics_cleaner.cpp Collapse FP_* down into their PCB_* equivalents. 2023-03-31 22:57:46 +01:00
graphics_cleaner.h Add pad-recombining to FPEditor's Cleanup Graphics. 2022-09-24 19:34:06 +01:00
grid_layer_box_helpers.cpp Replace __WXGTK20__ with __WXGTK__ 2023-04-12 18:57:12 +01:00
grid_layer_box_helpers.h
initpcb.cpp BoardDesignSettings are owned by FOOTPRINT_EDITOR_SETTINGS in the FP Editor. 2023-06-12 10:08:41 +01:00
invoke_pcb_dialog.h Refactor: Move DIALOG_PLUGIN_OPTIONS to common and use enum for event ID 2023-05-28 23:56:41 +02:00
io_mgr.cpp ADDED: Initial support for importing Solidworks PCB files 2023-06-19 11:57:33 -04:00
io_mgr.h ADDED: Initial support for importing Solidworks PCB files 2023-06-19 11:57:33 -04:00
kicad_clipboard.cpp Eradicate a bunch of calls to dyn_cast. 2023-06-25 11:10:05 +01:00
kicad_clipboard.h Rename PROPERTIES to STRING_UTF8_MAP for clarity 2022-11-06 11:51:52 -05:00
load_select_footprint.cpp Split StyleFootprints into separate bools for fields vs text & graphics. 2023-07-10 17:15:57 +01:00
menubar_footprint_editor.cpp Show Properties Manager menu entry for FP Editor. 2023-07-01 12:01:35 +01:00
menubar_pcb_editor.cpp ADDED footprint associations dialog. 2023-07-11 14:52:05 +01:00
netinfo.h Fix Doxygen directives in numerous headers 2023-03-24 13:02:13 +00:00
netinfo_item.cpp Fix netnames. 2023-01-27 19:35:41 +03:00
netinfo_list.cpp Coverity fixes and code cleaning. 2023-03-02 09:04:47 -05:00
pad.cpp Eradicate a bunch of calls to dyn_cast. 2023-06-25 11:10:07 +01:00
pad.h Eradicate a bunch of calls to dyn_cast. 2023-06-25 11:10:07 +01:00
pad_custom_shape_functions.cpp Centralize text size clamping. 2023-06-03 20:29:51 +01:00
pcb_base_edit_frame.cpp ADDED: Properties panel for schematic editor 2023-06-22 22:32:24 -04:00
pcb_base_edit_frame.h ADDED: Properties panel for schematic editor 2023-06-22 22:32:24 -04:00
pcb_base_frame.cpp Save, clear, and restore selection around a footprint reload. 2023-07-07 23:41:58 +01:00
pcb_bitmap.cpp SCH_BITMAP and PCB_BITMAP: rename m_image to m_bitmapBase. Add more info 2023-04-22 17:28:06 +02:00
pcb_bitmap.h SCH_BITMAP and PCB_BITMAP: rename m_image to m_bitmapBase. Add more info 2023-04-22 17:28:06 +02:00
pcb_dimension.cpp Bug fixes for handling boolean flags in DRC rules. 2023-05-26 18:44:33 +01:00
pcb_dimension.h Collapse FP_* down into their PCB_* equivalents. 2023-03-31 22:57:46 +01:00
pcb_draw_panel_gal.cpp No point in having a RATSNEST_VIEW_ITEM in FP editor, viewer, etc. 2023-07-08 22:54:14 +01:00
pcb_draw_panel_gal.h Formatting and warnings cleanup. (No functional changes.) 2023-04-16 15:36:21 +01:00
pcb_edit_frame.cpp Redraw via mask layers when switching Tented Vias on/off. 2023-07-10 23:29:54 +01:00
pcb_edit_frame.h Naming clarity. No functional changes. 2023-06-05 11:01:10 +01:00
pcb_expr_evaluator.cpp Bug fixes for handling boolean flags in DRC rules. 2023-05-26 18:44:33 +01:00
pcb_expr_evaluator.h Cleanup printf bits 2023-04-20 15:19:04 -07:00
pcb_expr_functions.cpp Eradicate a bunch of calls to dyn_cast. 2023-06-25 11:10:07 +01:00
pcb_field.cpp Broaden "Style footprint fields" to cover graphics as well. 2023-07-09 12:45:55 +01:00
pcb_field.h Broaden "Style footprint fields" to cover graphics as well. 2023-07-09 12:45:55 +01:00
pcb_group.cpp PCB: introduce PCB_FIELD_T 2023-06-20 18:34:52 +00:00
pcb_item_containers.h PCB_FIELD: add new field item similar to SCH_FIELD 2023-06-20 18:34:52 +00:00
pcb_layer_box_selector.cpp Move layer ID to action mapping to PCB_ACTIONS 2023-07-05 11:09:34 +01:00
pcb_layer_box_selector.h
pcb_marker.cpp Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_marker.h Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_origin_transforms.cpp
pcb_origin_transforms.h
pcb_painter.cpp VIA on solder mask: fix incorrect size (radius) of displayed mask 2023-07-11 17:35:30 +02:00
pcb_painter.h Collapse FP_* down into their PCB_* equivalents. 2023-03-31 22:57:46 +01:00
pcb_plot_params.cpp Add settings for plotting PDF property popups. 2023-04-30 18:10:04 +01:00
pcb_plot_params.h Add settings for plotting PDF property popups. 2023-04-30 18:10:04 +01:00
pcb_plot_params_parser.h
pcb_plot_svg.cpp cli: add an option to the pcb exports for plotting negative svg and pdf 2023-06-07 13:28:52 +00:00
pcb_plot_svg.h cli: add an option to the pcb exports for plotting negative svg and pdf 2023-06-07 13:28:52 +00:00
pcb_screen.cpp Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
pcb_shape.cpp Broaden "Style footprint fields" to cover graphics as well. 2023-07-09 12:45:55 +01:00
pcb_shape.h Broaden "Style footprint fields" to cover graphics as well. 2023-07-09 12:45:55 +01:00
pcb_target.cpp Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_target.h Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_text.cpp Broaden "Style footprint fields" to cover graphics as well. 2023-07-09 12:45:55 +01:00
pcb_text.h Broaden "Style footprint fields" to cover graphics as well. 2023-07-09 12:45:55 +01:00
pcb_textbox.cpp Move SHAPE_POLY_SET::Inflate's error spec from a seg-count to a max-deviation. 2023-05-29 15:29:03 +01:00
pcb_textbox.h Move SHAPE_POLY_SET::Inflate's error spec from a seg-count to a max-deviation. 2023-05-29 15:29:03 +01:00
pcb_track.cpp PCB_VIA::SetLayerSet( LSET aLayerSet ): fix bug: it must consider only copper layers. 2023-07-12 13:02:05 +02:00
pcb_track.h PCB_VIA::SetLayerSet( LSET aLayerSet ): fix bug: it must consider only copper layers. 2023-07-12 13:02:05 +02:00
pcb_view.cpp
pcb_view.h
pcbnew.cpp Fix issues related to the splash screen when no config file found: 2023-06-24 18:09:43 +02:00
pcbnew.icns
pcbnew_config.cpp Move to requiring explicit action to save project settings 2023-03-04 14:25:07 -05:00
pcbnew_config.h
pcbnew_doc.icns
pcbnew_id.h Make pad & via teardrops 1st-class citizens (props of the pad/via) 2023-05-19 18:02:03 +01:00
pcbnew_jobs_handler.cpp Command line PCB gerber export fix and improvement. 2023-06-16 07:17:39 -04:00
pcbnew_jobs_handler.h Cleanup jobs handlers (+Fix build) 2023-06-11 00:12:53 +02:00
pcbnew_printout.cpp Commenting and formatting. No functional changes. 2023-03-13 18:29:55 +00:00
pcbnew_printout.h Commenting and formatting. No functional changes. 2023-03-13 18:29:55 +00:00
pcbnew_settings.cpp Split StyleFootprints into separate bools for fields vs text & graphics. 2023-07-10 17:15:57 +01:00
pcbnew_settings.h Move some MRU paths from app to project. 2023-07-12 17:30:42 +01:00
pcbplot.cpp Add settings for plotting PDF property popups. 2023-04-30 18:10:04 +01:00
pcbplot.h Cleanup. No (intentional) functional changes. 2023-06-06 12:30:35 +01:00
plot_board_layers.cpp Pcbnew, PlotInteractiveLayer(): do not print useless info in a PDF plot. 2023-07-04 20:02:28 +02:00
plot_brditems_plotter.cpp Fix a typo than can create a crash 2023-07-07 10:17:02 +02:00
plotcontroller.h Allow plotting of multiple board layers per plot in Python. 2023-02-14 09:49:20 -05:00
plotprint_opts.h Avoid duplicating similar options in print and plot headers 2022-11-12 16:02:24 +01:00
plugin.cpp Fix a bunch of compiler warnings 2023-04-11 17:01:30 +00:00
sel_layer.cpp
toolbars_footprint_editor.cpp Rollback wxChoice -> wxComboBox changes for now. 2023-04-09 23:00:33 +01:00
toolbars_footprint_viewer.cpp Rollback wxChoice -> wxComboBox changes for now. 2023-04-09 23:00:33 +01:00
toolbars_pcb_editor.cpp Fix Search pane not remembering docking sizes and positions 2023-06-11 20:23:24 +00:00
tracks_cleaner.cpp Refine track dangling test. 2023-06-17 22:56:57 +01:00
tracks_cleaner.h
undo_redo.cpp Add action info to Undo/Redo menus. 2023-06-07 14:37:34 +01:00
zone.cpp Use static casts between related classes. 2023-07-05 10:20:18 +00:00
zone.h Performance improvements. 2023-06-21 17:00:32 +01:00
zone_filler.cpp Record hole knockouts in zone filler earlier 2023-07-12 11:17:57 -07:00
zone_filler.h Fix an edge-case in the spoke genration logic for non-cardinal spokes. 2022-10-01 19:31:47 +01:00
zone_settings.cpp Fix build (broken in 90ff331c) 2023-06-10 14:21:10 +02:00
zone_settings.h Refactor: Move static to be inside ZONE_SETTINGS 2023-06-10 12:03:41 +02:00
zones.h Zones: use metric defaults and limits instead of mixed units 2023-02-11 07:39:29 -05:00
zones_functions_for_undo_redo.cpp More tightening of group parent lifecycles. 2022-11-16 00:42:38 +00:00
zones_functions_for_undo_redo.h Formatting and a bit of cleanup. 2022-10-21 18:41:39 +01:00