kicad/pcbnew/tools
John Beard 9fe780f1b3 Rework zone creation in GAL
The zone creation in DRAWING_TOOL was a complex event loop whici
simultaneously managed the event handling, construction of the preview
polygon and the creation and commiting of the zone, all in the same
scope. This has been broken into several pieces:

* POLYGON_ITEM preview item, used to preview the polygon in progress
* POLYGON_GEOM_MANAGER is a class that collects points from user input
  and used them to describe a polygon's geometry, including calculation
  of 45-degree constrained leader lines
* ZONE_CREATE_HELPER is a class which deals with creating zones based on
  geometry from a geometry manager and parameters from the DRAWING_TOOL
* The (much simpler) event loop in DRAWING_TOOL drives the
  POLYGON_GEOM_MANAGER. With a minor refactor, this loop can be reused
  in future for other polygonal tools if wanted.

The polygon preview now has a translucent fill which makes it easier to
visualise the zone.

This also adds the Close Zone Outline and Delete Last Corner actions as
part of the new event loop.

Fixes: lp:1663885
* https://bugs.launchpad.net/kicad/+bug/1663885

Fixes: lp:1667885
* https://bugs.launchpad.net/kicad/+bug/1667885
2017-03-22 17:18:12 +01:00
..
drawing_tool.cpp Rework zone creation in GAL 2017-03-22 17:18:12 +01:00
drawing_tool.h Rework zone creation in GAL 2017-03-22 17:18:12 +01:00
edit_constraints.cpp replace round() with KiROUND(), our function that is used almost everywhere for rounding, and detects int overflows in debug mode. 2015-07-17 10:26:48 +02:00
edit_constraints.h Explicitly mark overriding functions. 2016-09-24 14:53:15 -04:00
edit_points.cpp Fixed bounding box computation for EDIT_POINTS class 2017-02-09 12:03:28 +01:00
edit_points.h Fixed bounding box computation for EDIT_POINTS class 2017-02-09 12:03:28 +01:00
edit_tool.cpp Enable angle snap for pcbnew GAL ruler tool 2017-03-22 10:59:47 +01:00
edit_tool.h Add a ruler tool to pcbnew GAL 2017-03-10 16:21:44 +01:00
grid_helper.cpp Code formatting 2016-12-12 16:45:52 +01:00
grid_helper.h Pcbnew: fix push and shove router segfault bug. 2015-11-03 11:19:42 -05:00
microwave_tool.cpp Add GAL microwave tools 2017-03-20 16:10:51 +01:00
microwave_tool.h Add GAL microwave tools 2017-03-20 16:10:51 +01:00
module_editor_tools.cpp Use GAL axes instead of a ORIGIN_VIEWITEM in module editor 2017-03-08 10:35:51 +01:00
module_editor_tools.h Use GAL axes instead of a ORIGIN_VIEWITEM in module editor 2017-03-08 10:35:51 +01:00
pad_tool.cpp Refactor SELECTION, SELECTION_CONDITIONS, and context menus to common 2017-02-28 14:47:20 +01:00
pad_tool.h PAD_TOOL: enable 'Apply' after copying a pad 2017-02-20 11:09:00 +01:00
pcb_actions.cpp Add GAL microwave tools 2017-03-20 16:10:51 +01:00
pcb_actions.h Add GAL microwave tools 2017-03-20 16:10:51 +01:00
pcb_bright_box.cpp Refactor BRIGHT_BOX to common so it can be used by other programs 2017-03-11 21:38:01 +01:00
pcb_bright_box.h Refactor BRIGHT_BOX to common so it can be used by other programs 2017-03-11 21:38:01 +01:00
pcb_editor_control.cpp Coverity fixes 2017-03-11 22:20:08 +01:00
pcb_editor_control.h Fixed VIEW_ITEM memory leaks 2017-03-02 23:57:13 +01:00
pcb_selection_conditions.cpp Refactor SELECTION, SELECTION_CONDITIONS, and context menus to common 2017-02-28 14:47:20 +01:00
pcb_selection_conditions.h Refactor SELECTION, SELECTION_CONDITIONS, and context menus to common 2017-02-28 14:47:20 +01:00
pcb_tool.cpp Add GAL microwave tools 2017-03-20 16:10:51 +01:00
pcb_tool.h Add GAL microwave tools 2017-03-20 16:10:51 +01:00
pcbnew_control.cpp Move cursor shape flag into GAL settings 2017-03-22 10:24:48 +01:00
pcbnew_control.h Move ZoomFitScreen and ZoomPreset from PCBNEW_CONTROL to COMMON_TOOLS 2017-03-03 13:28:19 +01:00
picker_tool.cpp Move TOOL_ACTIONs to their corresponding tools; create COMMON_TOOLS 2017-02-22 10:32:48 +01:00
picker_tool.h Add more "override" markers. 2016-09-25 13:59:41 -04:00
placement_tool.cpp Refactor SELECTION, SELECTION_CONDITIONS, and context menus to common 2017-02-28 14:47:20 +01:00
placement_tool.h Explicitly mark overriding functions. 2016-09-24 14:53:15 -04:00
point_editor.cpp Removed code resetting VIEW_CONTROLS settings 2017-03-06 15:04:27 +01:00
point_editor.h TOOL_ACTIONs are handled with transitions, no handlers needed in the event loops 2017-01-18 14:20:39 +01:00
selection_tool.cpp Pcbnew fix: checking properties on error marker crashed pcbnew 2017-03-21 16:44:56 +01:00
selection_tool.h Make SELECTION_AREA a generic overlay item 2017-03-10 16:21:44 +01:00
size_menu.cpp Move bitmaps.h out of base_struct.h 2017-02-21 09:50:15 -05:00
size_menu.h Fixed the issue of creating and event handling in context menus (GAL). 2017-01-23 11:40:59 +01:00
tool_event_utils.cpp Add cancel interactive tool action to GAL 2017-02-24 10:37:07 +01:00
tool_event_utils.h Add cancel interactive tool action to GAL 2017-02-24 10:37:07 +01:00
tools_common.cpp Add GAL microwave tools 2017-03-20 16:10:51 +01:00
zone_create_helper.cpp Rework zone creation in GAL 2017-03-22 17:18:12 +01:00
zone_create_helper.h Rework zone creation in GAL 2017-03-22 17:18:12 +01:00
zoom_tool.cpp Make SELECTION_AREA a generic overlay item 2017-03-10 16:21:44 +01:00
zoom_tool.h Explicitly mark overriding functions. 2016-09-24 14:53:15 -04:00