Jon Evans
fd4e2b042c
Refactor SELECTION, SELECTION_CONDITIONS, and context menus to common
...
SELECTION now holds EDA_ITEMs not BOARD_ITEMs so various places had to
change to casting the selected items to BOARD_ITEMs.
Fixed compilation warnings on clang (Tom)
2017-02-28 14:47:20 +01:00
Maciej Suminski
e34b73e187
Do not freeze cursor when a tool was cancelled using the context menu
...
dispatchContextMenu() stores the cursor position before displaying a
menu, so the tools use the original cursor position when processing
events (instead of the mouse position pointing to a menu entry). Later,
the previous position has to be restored, but if in the meantime the
tool was cancelled - previous settings were restored to a wrong tool.
2017-02-24 16:55:18 +01:00
Maciej Suminski
b25ded4d90
Store VIEW_CONTROLS settings when tools are switched
...
Fixes: lp:1663783
* https://bugs.launchpad.net/kicad/+bug/1663783
Fixes: lp:1667580
* https://bugs.launchpad.net/kicad/+bug/1667580
2017-02-24 16:47:19 +01:00
John Beard
c001c6114f
Add cancel interactive tool action to GAL
...
This is used to provide menu entries that allows cancellation of
interactive drawing and routing tools without needing the keyboard.
It is provided in the drawing tools and the router tool.
The cancel event doesn't have any new functionality (e.g. track rip-up
for the PNS router - lp:1448460), this just adds it to the menu, where
it behaves the same as an Escape keypress.
2017-02-24 10:37:07 +01:00
jean-pierre charras
a9d6af8001
Fix a comment
2017-02-23 13:17:23 +01:00
jean-pierre charras
10396ff435
Tool manager: renames Yield() to KiYield(), due to a collision name between the Yield macro in wxWidgets and Tool manager Yield.
...
Can be dependent on platforms.
2017-02-23 08:30:29 +01:00
Maciej Suminski
d7bf44eee0
Removed a few more headers from base_struct.h
2017-02-22 17:54:01 +01:00
Jon Evans
4c83b0a94d
Move TOOL_ACTIONs to their corresponding tools; create COMMON_TOOLS
...
Some grid/zoom tools are left in PCBNEW_CONTROL because they currently
depend on Pcbnew-specific class members. Once refactoring is done to
make it possible to use all zoom and grid controls outside of pcbnew,
these last tools can be moved to common to match their ACTIONs.
2017-02-22 10:32:48 +01:00
Jon Evans
167f45ca2b
Refactor COMMON_ACTIONS into a base and derived class
...
New virtual class ACTIONS is added as a member to EDA_DRAW_FRAME so
that the TOOL_DISPATCHER can have access to the appropriate derived
version of TranslateLegacyId()
2017-02-22 10:32:48 +01:00
John Beard
ca91c27852
Adjust pad sub-menu enablements
...
The apply settings and push settings options now take account of the
validity of the global pad settings when deciding whether to show or
not.
Global pad push now requires a source pad and doesn't push from the
global pad setting when there is no selection.
The whole submenu is hidden when there are no enabled items.
Fixes: lp:1664016
* https://bugs.launchpad.net/kicad/+bug/1664016
2017-02-20 11:08:34 +01:00
Maciej Suminski
060e163511
Fixed invoking TOOL_ACTIONs in submenus
...
Fixes: lp:1663101
* https://bugs.launchpad.net/kicad/+bug/1663101
2017-02-10 00:08:23 +01:00
Maciej Suminski
4b9243e0bf
Allow registering TOOLs in any order.
2017-01-30 13:21:43 +01:00
Maciej Suminski
1102eb0d0d
Store menu titles in CONTEXT_MENU
...
Previously a title had to be provided when a submenu was added,
but this led to storing the same title in many places.
2017-01-23 14:52:11 +01:00
Maciej Suminski
fc7be1a497
Removed redundant CONTEXT_MENU::m_parent field.
2017-01-23 11:40:59 +01:00
Maciej Suminski
682da70a86
Fixed the issue of creating and event handling in context menus (GAL).
...
When creating a copy of CONTEXT_MENU, always a CONTEXT_MENU instance was
constructed, whereas an inherited type should be used. Solved with
CONTEXT_MENU::create() that has to be overridden in inheriting classes.
Event & update handlers are now virtual functions, instead of setting
the handlers with Set{Event,Update}Handler().
2017-01-23 11:40:59 +01:00
Maciej Suminski
524dddaf70
Sync the PNS model when its changed
2016-11-28 15:51:18 +01:00
Simon Richter
59c81976dc
Explicitly mark overriding functions.
2016-09-24 14:53:15 -04:00
Maciej Suminski
3623421912
Fixed a PNS crash after undoing the last operation while routing
2016-09-23 13:58:33 +02:00
decimad
6a9c1cb6a1
Split the undo/redo event into the two stages "pre" and "post" for convenient synchronization of dependent state.
2016-09-23 13:29:25 +02:00
decimad
ee3d75f273
Add coroutine call invocation context to identify the main stack frame.
...
Run the text draw-tool on the main stack frame.
Fixes: lp:1547282
* https://bugs.launchpad.net/kicad/+bug/1547282
2016-09-21 11:56:40 +02:00
Maciej Suminski
cdc951d0a3
Fixed a crash when dragging a line was interrupted
...
Crash was caused by removing an element from m_activeTools list, causing other iterators to be invalidated.
2016-08-08 17:20:02 +02:00
Michael Steinberg
86496d3141
Pcbnew: fix dangling board reference crash in GAL. (fixes lp:1584489)
2016-08-05 13:45:14 -04:00
decimad
18b7dbf4d1
Refactor coroutine to improve readability and removed unnecessary heap allocations. Added documentation/links to various boost doc revisions.
2016-08-02 11:39:39 +02:00
decimad
78bc3c65de
use a guarded stack for coroutines in boost version 1.61
2016-07-05 18:02:50 +02:00
Michael Steinberg
06d4894fdb
boost::context fixes to make it compatible with boost 1.61
2016-07-05 00:14:32 +02:00
Maciej Suminski
33e7fe6211
Fix a crash caused by invalid iterator (thanks to Michael Steinberg)
...
TOOL_MANAGER::finishTool() caused iterator to become invalid when an element was removed from the m_activeTools deque.
2016-07-04 16:12:21 +02:00
Michael Steinberg
fde12ebd25
Replace boost::function and boost::bind with their std:: counterparts
2016-06-29 12:23:11 +02:00
Simon Richter
96ec9db5d6
Add missing C++ stdlib headers
...
The GCC standard library headers often include other headers, which makes
some code compile that forgets to include several headers.
2016-05-28 12:46:29 -04:00
Maciej Suminski
9ecc593aac
TOOL_SETTINGS acquires wxConfigBase each time it is used.
2015-08-07 18:17:51 +02:00
Tomasz Wlostowski
9c2bcb2f3c
Fixed crash on right click on zone with GAL mode.
2015-08-03 11:53:58 +02:00
Maciej Suminski
e9921d8eea
Fixed an assert when footprint viewer was closed before the pcbnew window.
2015-07-28 10:29:00 +02:00
Maciej Suminski
59af7a96f8
Minor code cleaning.
2015-07-15 14:08:52 +02:00
Andrew Zonenberg
6289f5bcf4
Fixed a bug causing layer-switch events to noe be handled by GAL.
2015-07-13 17:18:29 +02:00
Andrew Zonenberg
0a5847c71a
Removed a couple of trailing spaces
2015-07-12 21:57:07 -07:00
Andrew Zonenberg
1ad3b05664
Fixed a bug causing layer-switch events to not be handled by GAL
2015-07-12 21:52:17 -07:00
Maciej Suminski
3cb095b7c2
GAL canvases update status bar, message panel & zoom widget.
2015-07-03 20:58:12 +02:00
Maciej Suminski
766da1e494
Code formatting.
2015-07-02 16:11:15 +02:00
Tomasz Wlostowski
a86fda1d37
tools: added TOOL_SETTINGS class for storing persistent tool settings in config file (just a wrapper for wxConfigBase) router: free angle mode (mark obstacles only) & persistent settings
2015-07-02 16:09:51 +02:00
Maciej Suminski
a988ebaabd
Zone merging (GAL).
2015-06-19 17:32:33 +02:00
Maciej Suminski
b9805e4530
Added missing contents for TOOL_EVENT_LIST operator||.
2015-06-05 17:49:01 +02:00
Maciej Suminski
da75c52665
Hot keys settings are synchronized between GAL & legacy
2015-05-05 20:39:42 +02:00
Maciej Suminski
99e5228948
Moved the list of TOOL_ACTIONs to ACTION_MANAGER.
2015-05-05 20:39:41 +02:00
Maciej Suminski
8390fec69d
Minor fixes.
2015-04-30 10:46:08 +02:00
Maciej Suminski
b218c1099f
Added TA_CONTEXT_MENU_CLOSED tool event.
2015-04-30 10:46:07 +02:00
Maciej Suminski
06b978b829
Refactored CONTEXT_MENU, added handler for updating.
2015-04-30 10:46:05 +02:00
Maciej Suminski
4be876a13a
Expandable CONTEXT_MENUs (GAL). Minor CONTEXT_MENU
2015-04-30 10:46:04 +02:00
Maciej Suminski
946b9d1933
setTransitions() are called automatically for tools.
2015-04-30 10:46:03 +02:00
Maciej Suminski
74a902da20
Syntactic sugar for TOOL_MANAGER::RunAction().
2015-04-30 10:46:02 +02:00
Maciej Suminski
5c984aa069
Parametrized TOOL_ACTIONs.
2015-04-30 10:46:01 +02:00
Mikhail Karpenko
886a8521a4
Comments typos fixed.
2015-04-06 21:50:12 +02:00