kicad/pcbnew
Jeff Young 2f23aa9556 Implement a more robust tool stacking architecture.
We were running into various corner conditions where a tool's event
loop would exit while the tool was still active, or the tool would
get popped while we were still in the event loop.  (A lot of these
had to do with the POINT_EDITOR's, but not all of them.)

The new architecture:
1) tools always do a Push()/Pop()
2) everyone is responsible for their own pops; no more stack-clearing
on a cancel
3) CancelInteractive events go to all tools to facilitate (2)
2019-06-27 17:01:31 +01:00
..
autorouter Implement I18N for ACTIONs. 2019-06-17 10:45:23 +01:00
board_stackup_manager Prepare changes to support a better board stack management in .gbrjob file. 2019-06-25 18:39:11 +02:00
connectivity pcbnew: updated connectivity algorithm to support JP's no-outline zones 2019-06-12 20:57:31 +02:00
dialogs Eradicate globals for PCB_GENERAL_SETTINGS. 2019-06-26 21:54:03 +01:00
drc A bit of cleanup of stale DRC code. 2019-06-04 13:56:54 +01:00
exporters Prepare changes to support a better board stack management in .gbrjob file. 2019-06-25 18:39:11 +02:00
github Handle separate parsing rules for ID_SCH and ID_PCB. 2018-07-26 15:43:53 +01:00
import_gfx Fix import graphics routines and tests 2019-06-17 14:59:39 -07:00
microwave pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
pcad2kicadpcb_plugin Cleanup. 2019-06-17 22:15:20 +01:00
python Python fp wizards: fix a few issues in qrcode_footprint_wizard.py 2019-05-13 13:04:57 +02:00
router Implement a more robust tool stacking architecture. 2019-06-27 17:01:31 +01:00
specctra_import_export Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
swig Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
tools Implement a more robust tool stacking architecture. 2019-06-27 17:01:31 +01:00
CMakeLists.txt Prepare changes to support a better board stack management in .gbrjob file. 2019-06-25 18:39:11 +02:00
Doxyfile_python Doxyfiles: Remove local debug lines 2019-02-13 17:22:07 -08:00
Doxyfile_xml Doxyfiles: Remove local debug lines 2019-02-13 17:22:07 -08:00
Info.plist.in Set KiCad version in MacOS apps 2019-06-12 04:40:03 -07:00
action_plugin.cpp pcbnew: Add toolbar buttons for action plugins 2018-08-26 19:39:27 -07:00
action_plugin.h pcbnew: Add toolbar buttons for action plugins 2018-08-26 19:39:27 -07:00
array_creator.cpp Fix broken build in array_creator 2019-06-01 16:30:58 -04:00
array_creator.h Move hotkeys to ACTION architecture. 2019-06-10 23:46:00 +01:00
array_pad_name_provider.cpp pcbnew: Move pads to std::deque 2019-06-01 16:23:54 -07:00
array_pad_name_provider.h Pcbnew: arrays skip existing names 2019-01-30 15:41:35 -08:00
board_commit.cpp pcbnew: Don't clear module flags on revert 2019-06-24 10:26:37 -07:00
board_commit.h Insert EE_TOOL_BASE under SchEdit and LibEdit tools, and fix errant rename scope which clobbered PCBNew's PICKER_TOOL. 2019-05-12 13:47:08 +01:00
board_connected_item.cpp Performance enhancements to zone filling & track DRC. 2019-06-25 11:34:28 +01:00
board_connected_item.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
board_design_settings.cpp Prepare changes to support a better board stack management in .gbrjob file. 2019-06-25 18:39:11 +02:00
board_item_container.h
board_items_to_polygon_shape_transform.cpp Change pad solder masks to use rounded-corner clearances. 2019-06-25 11:34:27 +01:00
board_netlist_updater.cpp Pcbnew: fix crash in netlist updater 2019-06-01 21:02:16 -07:00
board_netlist_updater.h BOARD_NETLIST_UPDATER: fix 2 serious issues in dry run (memory leak and incorrect single pad nets deletion) 2019-04-17 13:39:55 +02:00
build_BOM_from_board.cpp Moving modules from DLIST to std::deque 2019-06-01 09:53:23 -07:00
class_board.cpp Try and keep POINT_EDITOR and SELECTION_TOOL from fighting with drawing tool. 2019-06-15 20:43:52 +01:00
class_board.h Re-implement sch->pcb cross-probing using net highlighting architecture. 2019-06-26 21:54:03 +01:00
class_board_item.cpp pcbnew: Fix STL blunder when deleting 2019-06-11 10:12:00 -07:00
class_dimension.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
class_dimension.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
class_drawsegment.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
class_drawsegment.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
class_edge_mod.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
class_edge_mod.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
class_marker_pcb.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
class_marker_pcb.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
class_module.cpp pcbnew: Fix STL blunder when deleting 2019-06-11 10:12:00 -07:00
class_module.h pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
class_pad.cpp pcbnew: Correct polygon flipping in custom pads 2019-06-17 15:27:50 -07:00
class_pad.h Cleanup some left-over vestiages of the legacy canvas architecture. 2019-06-13 15:51:32 +01:00
class_pcb_target.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
class_pcb_target.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
class_pcb_text.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
class_pcb_text.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
class_text_mod.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
class_text_mod.h Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
class_track.cpp pcbnew: Move tracks to std::deque 2019-06-01 09:53:23 -07:00
class_track.h pcbnew: Move tracks to std::deque 2019-06-01 09:53:23 -07:00
class_zone.cpp Pcbnew: prepare the new zone filling algo (filled polygons with no thickness). Work in progress. 2019-06-04 09:39:17 +02:00
class_zone.h Pcbnew: prepare the new zone filling algo (filled polygons with no thickness). Work in progress. 2019-06-04 21:24:24 +02:00
collectors.cpp Fix some misplaced parens. 2019-06-26 21:54:04 +01:00
collectors.h Fix a bug introduced when UseGalCanvas() no longer switches. 2019-05-27 18:47:20 +01:00
convert_drawsegment_list_to_polygon.cpp Moving further arc approximations down 2019-05-22 14:35:17 -07:00
cross-probing.cpp Re-implement sch->pcb cross-probing using net highlighting architecture. 2019-06-26 21:54:03 +01:00
drc_item.cpp Move DRC control to a tool; move assorted commands to ACTIONS. 2019-06-03 21:08:30 +01:00
eagle_plugin.cpp pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
eagle_plugin.h eagle: Handle DRC rule-based pad shapes 2019-02-04 07:06:49 +01:00
edit.cpp Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
edit_track_width.cpp Move DRC control to a tool; move assorted commands to ACTIONS. 2019-06-03 21:08:30 +01:00
files.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
footprint_edit_frame.cpp Real-time highlighting for Pcbnew and ModEdit delete tools. 2019-06-25 21:10:21 +01:00
footprint_edit_frame.h Add env-var setting to CommonSettingsChanged(). 2019-06-25 11:34:28 +01:00
footprint_editor_options.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
footprint_editor_utils.cpp Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
footprint_info_impl.cpp Escape slashes in labels and netnames. 2019-04-07 00:24:10 +01:00
footprint_info_impl.h Use binary search on Footprint Info list. 2018-08-04 10:29:17 +01:00
footprint_libraries_utils.cpp Update toolbar to get new icon/tooltip 2019-06-18 19:25:15 -07:00
footprint_preview_panel.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
footprint_preview_panel.h Pcbnew: FOOTPRINT_PREVIEW_PANEL passes reference to local 2019-04-11 17:01:23 +01:00
footprint_tree_pane.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
footprint_tree_pane.h Convert Footprint Editor to component tree. 2018-08-01 09:35:46 +01:00
footprint_viewer_frame.cpp Set library selection when pre-loading the Footprint Viewer. 2019-06-27 00:40:36 +01:00
footprint_viewer_frame.h Add env-var setting to CommonSettingsChanged(). 2019-06-25 11:34:28 +01:00
footprint_wizard.cpp
footprint_wizard.h
footprint_wizard_frame.cpp Don't try to show sub-dialog in OnActivate(). High Sierra asserts. 2019-06-25 11:34:28 +01:00
footprint_wizard_frame.h Cleanup some left-over vestiages of the legacy canvas architecture. 2019-06-13 15:51:32 +01:00
footprint_wizard_frame_functions.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
fp_tree_model_adapter.cpp Footprint library nickname comparison fixes. 2019-06-24 08:03:28 -04:00
fp_tree_model_adapter.h Convert Footprint Editor to component tree. 2018-08-01 09:35:46 +01:00
fp_tree_synchronizing_adapter.cpp Footprint library nickname comparison fixes. 2019-06-24 08:03:28 -04:00
fp_tree_synchronizing_adapter.h Move footprint & symbol tree context menus to tool infrastructure. 2019-06-05 20:16:48 +01:00
generate_footprint_info.cpp More performance enhancements. 2018-08-06 13:49:27 +01:00
generate_footprint_info.h Convert Place Footprint to component tree. 2018-08-01 09:35:45 +01:00
gpcb_plugin.cpp pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
gpcb_plugin.h Performance enhancements in fp loading, string cmp, etc. 2018-08-01 09:35:46 +01:00
grid_layer_box_helpers.cpp Fix a few coverity errors 2019-02-16 14:09:21 +01:00
grid_layer_box_helpers.h In-place editing for footprint TEXTE_MODULEs. 2018-07-17 15:11:04 +01:00
help_common_strings.h Fix occurrences of "edition" which should be "editing" 2018-07-17 15:12:39 +01:00
initpcb.cpp Re-implement sch->pcb cross-probing using net highlighting architecture. 2019-06-26 21:54:03 +01:00
invoke_pcb_dialog.h Clean up some dangling legacy odds and ends. 2019-06-01 01:17:46 +01:00
io_mgr.cpp pcbnew: Prevent GITHUB plugin from being registered 2019-01-15 12:14:02 -08:00
io_mgr.h pcbnew: Fix missing config.h from 9458ae8221 2019-01-15 14:17:56 -08:00
kicad_clipboard.cpp Fix typo introduced in DLIST erradication. 2019-06-11 01:00:43 +01:00
kicad_clipboard.h Move hotkeys to ACTION architecture. 2019-06-10 23:46:00 +01:00
kicad_netlist_reader.cpp Handle separate parsing rules for ID_SCH and ID_PCB. 2018-07-26 15:43:53 +01:00
kicad_plugin.cpp Pcbnew: prepare the new zone filling algo (filled polygons with no thickness). Work in progress. 2019-06-04 21:24:24 +02:00
kicad_plugin.h pcbnew: Remove segment count from board file 2019-05-24 21:13:53 -07:00
layer_widget.cpp Remove more legacy editing code. 2019-05-27 18:47:20 +01:00
layer_widget.h Remove more legacy editing code. 2019-05-27 18:47:20 +01:00
legacy_netlist_reader.cpp
legacy_plugin.cpp pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
legacy_plugin.h Remove legacy segment-based zones. 2019-04-12 20:19:23 +01:00
load_select_footprint.cpp Clear some compile warnings 2019-06-13 15:16:54 -07:00
menubar_footprint_editor.cpp Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
menubar_pcb_editor.cpp Resolve() call missing from Route menu. 2019-06-25 21:31:20 +01:00
microwave.cpp pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
netclass.cpp units: Move common units and add tests 2019-01-08 09:29:32 -08:00
netclass.h Consolidate design rules UI. 2018-07-17 15:12:34 +01:00
netinfo.h Performance enhancements to zone filling & track DRC. 2019-06-25 11:34:28 +01:00
netinfo_item.cpp pcbnew: Move tracks to std::deque 2019-06-01 09:53:23 -07:00
netinfo_list.cpp pcbnew: Move pads to std::deque 2019-06-01 16:23:54 -07:00
netlist.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
netlist_reader.cpp Handle separate parsing rules for ID_SCH and ID_PCB. 2018-07-26 15:43:53 +01:00
netlist_reader.h
pad_custom_shape_functions.cpp Custom pads: fix a bug when plotting the custom shape. 2019-06-07 10:50:40 +02:00
pad_naming.cpp Pcbnew: Array tool should not number NPTHs 2019-01-06 07:55:49 -08:00
pad_naming.h Pcbnew: Array tool should not number NPTHs 2019-01-06 07:55:49 -08:00
pad_print_functions.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
pcb_base_edit_frame.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
pcb_base_edit_frame.h Fix grid update when edited from menubar. 2019-06-19 18:35:17 +01:00
pcb_base_frame.cpp Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
pcb_display_options.cpp pcbnew: Add option to show ratsnest while moving 2019-06-12 17:36:02 -07:00
pcb_draw_panel_gal.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
pcb_draw_panel_gal.h Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
pcb_edit_frame.cpp Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
pcb_edit_frame.h Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
pcb_general_settings.cpp Eradicate globals for PCB_GENERAL_SETTINGS. 2019-06-26 21:54:03 +01:00
pcb_general_settings.h Eradicate globals for PCB_GENERAL_SETTINGS. 2019-06-26 21:54:03 +01:00
pcb_layer_box_selector.cpp Move hotkeys to ACTION architecture. 2019-06-10 23:46:00 +01:00
pcb_layer_box_selector.h Move hotkeys to ACTION architecture. 2019-06-10 23:46:00 +01:00
pcb_layer_widget.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
pcb_layer_widget.h Remove more legacy editing code. 2019-05-27 18:47:20 +01:00
pcb_legacy_draw_utils.cpp pcbnew: Move pads to std::deque 2019-06-01 16:23:54 -07:00
pcb_netlist.cpp Escape slashes in labels and netnames. 2019-04-07 00:24:10 +01:00
pcb_netlist.h
pcb_painter.cpp Re-implement sch->pcb cross-probing using net highlighting architecture. 2019-06-26 21:54:03 +01:00
pcb_painter.h pcbnew: Add option to show ratsnest while moving 2019-06-12 17:36:02 -07:00
pcb_parser.cpp Pcbnew: prepare the new zone filling algo (filled polygons with no thickness). Work in progress. 2019-06-04 21:24:24 +02:00
pcb_parser.h Remove legacy segment-based zones. 2019-04-12 20:19:23 +01:00
pcb_plot_params.cpp Allow DXF to be exported in either inches or millimeters 2019-06-13 15:18:20 -07:00
pcb_plot_params.h Allow DXF to be exported in either inches or millimeters 2019-06-13 15:18:20 -07:00
pcb_plot_params_parser.h hpgl plot parameters: use double instead of int to store the pen diameter to avoid truncation. 2018-05-26 09:37:42 +02:00
pcb_screen.cpp Remove some more legacy code. 2019-05-29 00:26:29 +01:00
pcb_view.cpp fix incorrect initialization of VIEW::m_boundary. 2018-11-18 20:04:17 +01:00
pcb_view.h
pcbnew.cpp Add env-var setting to CommonSettingsChanged(). 2019-06-25 11:34:28 +01:00
pcbnew.h pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
pcbnew.icns
pcbnew.rc
pcbnew_config.cpp pcbnew: Add option to show ratsnest while moving 2019-06-12 17:36:02 -07:00
pcbnew_config.h
pcbnew_doc.icns
pcbnew_id.h Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
pcbnew_printout.cpp Disable zone outlines and hatched lines rendering in printouts 2018-10-31 19:17:30 +01:00
pcbnew_printout.h Disable zone outlines and hatched lines rendering in printouts 2018-10-31 19:17:30 +01:00
pcbplot.cpp Plot filenames automatically generated: change the point ('.') find in layer names to '_' 2019-01-05 12:44:38 +01:00
pcbplot.h Store line width setting for printouts 2018-10-31 19:17:30 +01:00
plot_board_layers.cpp Allow DXF to be exported in either inches or millimeters 2019-06-13 15:18:20 -07:00
plot_brditems_plotter.cpp Pcbnew: prepare the new zone filling algo (filled polygons with no thickness). Work in progress. 2019-06-04 09:39:17 +02:00
plotcontroller.h
plugin.cpp Performance enhancements in fp loading, string cmp, etc. 2018-08-01 09:35:46 +01:00
ratsnest.cpp pcbnew: Move tracks to std::deque 2019-06-01 09:53:23 -07:00
ratsnest_data.cpp pcbnew: Separating connectivity to subdir 2018-10-12 16:31:09 -07:00
ratsnest_data.h pcbnew: Separating connectivity to subdir 2018-10-12 16:31:09 -07:00
ratsnest_viewitem.cpp pcbnew: Draw dynamic ratsnest with curved lines 2019-06-15 08:17:28 -07:00
ratsnest_viewitem.h Implement undo for Page Settings in PlEditor, Eeschema and PCBNew. 2019-05-27 11:58:55 +01:00
sel_layer.cpp Move global commands to ACTIONs. 2019-06-03 21:08:30 +01:00
text_mod_grid_table.cpp Re-enable text layers now that DRC & zone fills are fixed. 2018-08-24 10:56:13 +01:00
text_mod_grid_table.h Consolidate design rules UI. 2018-07-17 15:12:34 +01:00
toolbars_footprint_editor.cpp Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
toolbars_footprint_viewer.cpp Update exit strategy to match UI guidelines 2019-06-24 21:46:42 -07:00
toolbars_pcb_editor.cpp Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
tracks_cleaner.cpp TRACKS_CLEANER: restart dangling track removal loop every time an item is removed 2019-06-25 21:40:30 +02:00
tracks_cleaner.h pcbnew: Cleanup tracks and vias rework 2019-06-01 09:53:23 -07:00
undo_redo.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
zone_filler.cpp Fix rotated & offset pad thermal spoke geometry. 2019-06-26 00:04:35 +01:00
zone_filler.h Back to the drawing board for zone filling. 2019-06-25 21:10:21 +01:00
zone_settings.cpp pcbnew: Remove segment count from board file 2019-05-24 21:13:53 -07:00
zone_settings.h pcbnew: Remove segment count from board file 2019-05-24 21:13:53 -07:00
zones.h UNIT_BINDERize zone dialogs. 2018-07-17 15:11:32 +01:00
zones_by_polygon.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
zones_by_polygon_fill_functions.cpp Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
zones_functions_for_undo_redo.cpp Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
zones_functions_for_undo_redo.h Fix occurrences of "edition" which should be "editing" 2018-07-17 15:12:39 +01:00
zones_test_and_combine_areas.cpp Move DRC control to a tool; move assorted commands to ACTIONS. 2019-06-03 21:08:30 +01:00