Jeff Young
29df4f809e
Better safety around boost::optional.
...
I'm not sure these are necessary but I got a crash when checking one
as a boolean instead of calling is_initialized(). Sadly, my debugger
doesn't like boost, so I didn't get much more info.
2019-07-05 14:45:15 +01:00
Seth Hillbrand
69b31eb88d
Corrects test for return case in tool event
2019-07-02 10:32:49 -07:00
Jeff Young
9effd24f3a
Allow move tool to run on top of other tools.
...
Fixes: lp:1784480
* https://bugs.launchpad.net/kicad/+bug/1784480
2019-07-01 22:15:25 +01:00
Jeff Young
981072598b
Overhaul cursor code for new tool/action framework.
...
Includes the addition of an onSetCursor() handler which must be called
from both the GAL canvas AND the GAL backend (at least on OSX) to prevent
cursor flickering between (for instance) pencil and arrow.
Also includes new architecture for point editors which allows them to
coordiate cursors with the editing tools (so we can switch to an arrow
when over a point).
2019-06-27 22:37:11 +01:00
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
Jeff Young
e175eb25b8
Fix bug with accidental modification of legacy hotkey name.
2019-06-27 11:29:05 +01:00
Jeff Young
7099614041
Expose a bunch of cursor, panning and grid shortcuts.
...
Fixes: lp:1819249
* https://bugs.launchpad.net/kicad/+bug/1819249
2019-06-26 21:54:03 +01:00
jean-pierre charras
e800bc5ffe
Avoid crashed in eeschema after selecting/deselecting and reselecting highlight tool or delete tool
...
It was due to use of items in std::deque without testing if these items exist.
2019-06-26 13:17:03 +02:00
Jeff Young
f9702aab87
Immediate actions for PlEditor, PcbNew, etc.
2019-06-25 11:34:28 +01:00
Jeff Young
fbfcba6e4d
Add action for context menu (right-mouse-click).
...
Fixes: lp:1663595
* https://bugs.launchpad.net/kicad/+bug/1663595
2019-06-25 11:34:27 +01:00
Jeff Young
485d436860
Clear ctx-menu before rebuilding; don't veto ctx-menu mousewarp for non-ctx-menu dialog.
...
Fixes: lp:1833312
* https://bugs.launchpad.net/kicad/+bug/1833312
2019-06-19 21:17:56 +01:00
Jeff Young
eb95202708
Fix grid update when edited from menubar.
...
Fixes: lp:1833399
* https://bugs.launchpad.net/kicad/+bug/1833399
2019-06-19 18:35:17 +01:00
Seth Hillbrand
b876309999
Don't skip handled events in GTK
...
Now that our tool framework handles the hotkeys, we need to skip the
passed handling work-around for actions that are already handled in the
event.
Fixes: lp:1832604
* https://bugs.launchpad.net/kicad/+bug/1832604
2019-06-18 17:19:40 -07:00
Jeff Young
dcbd897a95
Push/pop tools even when selected from the toolbar.
2019-06-18 20:24:15 +01:00
Jeff Young
7dd247f1dc
Make better use of TOOL_EVENT parameters.
2019-06-18 20:24:15 +01:00
Jeff Young
1f35ec5521
Beware of copying events and losing the m_passEvent flag.
...
Fixes: lp:1833031
* https://bugs.launchpad.net/kicad/+bug/1833031
2019-06-17 14:44:39 +01:00
Jeff Young
5d7739a662
Handle '&'s in menu labels.
...
Fixes: lp:1832904
* https://bugs.launchpad.net/kicad/+bug/1832904
2019-06-17 10:45:23 +01:00
Jeff Young
e6d5110ccf
Implement I18N for ACTIONs.
...
It's a bit of a hack because they're statically initialized and
so we can't make use of the _() macro. We do still want it in the
code, however, because the string harvesting is based off of it.
Fixes: lp:1833000
* https://bugs.launchpad.net/kicad/+bug/1833000
2019-06-17 10:45:23 +01:00
Jeff Young
e4fbd003e0
Make m_passEvent event-specific rather than global.
...
If a tool called something like clearSelection while processing a
MOUSE_CLICK, the SELECTION_TOOL will pass the clearSelection
COMMAND_EVENT because it handles it as a transition, not as an
event. Because m_passEvent is effectively global, the tool manager
would then interpret that as passing the MOUSE_CLICK and we'd end
up processing the click by multiple tools.
2019-06-16 12:06:49 +01:00
Seth Hillbrand
552815d486
tool_mgr: Don't invalidate our own iterators
...
Re-arranging the stack will invalidate the iterator that is removed and
inserted (begin()). Because this is not a threaded operation, we can
only do it to ourselves, so check that the operation isn't a NOP before
performing.
Fixes: lp:1832930
* https://bugs.launchpad.net/kicad/+bug/1832930
2019-06-15 17:49:15 -07:00
Jeff Young
18ebced8f4
Code hygiene.
2019-06-15 20:43:52 +01:00
Jeff Young
19aba615c2
Remove selection condition from conditional menu separators.
...
We don't allow duplicate separators anyway so all they really do
is complicate the code.
2019-06-15 20:43:51 +01:00
Jeff Young
5610261dce
Immediate-action hotkeys (and context menu actions) for eeschema.
2019-06-15 20:43:51 +01:00
Jeff Young
b429dbfb88
Fix bugs with ACTIONs not being "honest" singletons.
...
Delete the copy ctor and assignment operator to start with, but
even then the separate apps each have their own statically allocated
copy of the common actions. So we need to update all of them, which
also means having the kicad manager frame's set of actions on hand).
This changelist also adds a Clear Hotkey Assignment function since
the hotkeys set is now likely to be sparse with respect to the
actions.
2019-06-14 16:54:46 +01:00
Jeff Young
8f84c3ec4f
Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal.
2019-06-13 19:58:37 +01:00
Jeff Young
ce1f35a1be
Cleanup some left-over vestiages of the legacy canvas architecture.
2019-06-13 15:51:32 +01:00
Jeff Young
158e05adea
Add mouse gestures to List Hotkeys.
...
Fixes: lp:1778437
* https://bugs.launchpad.net/kicad/+bug/1778437
2019-06-13 15:51:32 +01:00
Jeff Young
97d2800f16
Update hotkey maps when the hotkeys are edited.
...
Also removes some legacy code dealing with conflicts.
Also disambiguates zoom in/out commands for hotkey list.
2019-06-12 12:43:12 +01:00
Jeff Young
7726b039b2
Re-jigger standard submenus so they both link AND work.
2019-06-11 18:03:16 +01:00
Jeff Young
b9e07f2a70
Attempt to fix un-resolved sub-menus.
...
While I'm pretty sure this will work, the issues don't appear on OSX
so I can't be positive.
Fixes: lp:1832049
* https://bugs.launchpad.net/kicad/+bug/1832049
2019-06-11 10:04:21 +01:00
Jeff Young
a91934c7b3
Don't update toolbars on mouse-move events.
...
It produces cursor-lag in some instances, and none of our state changes
currently rely on mouse position.
Fixes: lp:1831541
* https://bugs.launchpad.net/kicad/+bug/1831541
2019-06-11 09:52:01 +01:00
Jeff Young
9f427da56f
Use the ACTION_ID offset when updating the layer pair bitmap.
2019-06-11 09:13:56 +01:00
Jeff Young
aeadc768f6
Add import of hotkeys and fix bugs in reanding and writing hotkeys.
2019-06-10 23:46:01 +01:00
Jeff Young
b0e8443383
Sync-ing of menu has been done in CONDITIONAL_MENU for some time now.
2019-06-10 23:46:01 +01:00
Jeff Young
620395608c
Move Kicad Manager launch bar to ACTIONs.
...
Also fixes a bug where hotkeys weren't getting put in menus.
2019-06-10 23:46:01 +01:00
Jeff Young
5e49517781
Move hotkeys to ACTION architecture.
2019-06-10 23:46:00 +01:00
Jeff Young
c13ef839c1
Tool framework for Kicad Manager frame.
2019-06-10 23:46:00 +01:00
Jeff Young
16cb1e731d
Finish moving TOOL_MANAGER down to the EDA_BASE_FRAME level.
2019-06-10 23:46:00 +01:00
Jeff Young
6025256e07
Push KIWAY_HOLDER down a level so we can move a bunch of stuff that doesn't belong there out.
2019-06-10 23:46:00 +01:00
Jeff Young
e606587ff6
Move remaining Symbol Tree ctx menu cmds to ACTIONS.
...
Also moves the various Player instantiators down into COMMON_TOOLS
for better sharing.
2019-06-10 23:46:00 +01:00
Seth Hillbrand
1a3b129d1e
pcbnew: Don't reset triangular points for intersection
...
We prevent the creation of invalid polygons by keeping the converging
lines from intersecting. This test doesn't make sense for triangular
polygons as they always intersect and we want to allow them to move
outside of the singular point.
Fixes: lp:1831481
* https://bugs.launchpad.net/kicad/+bug/1831481
(cherry picked from commit 966173c129
)
2019-06-07 21:35:29 -07:00
Jeff Young
2d40425e4d
Move footprint & symbol tree context menus to tool infrastructure.
...
Fixes: lp:1831692
* https://bugs.launchpad.net/kicad/+bug/1831692
2019-06-05 20:16:48 +01:00
jean-pierre charras
6f8a0a4eed
pcbnew: Fix launching of action plugins from an action menu
...
The action menu handler was capturing too many menuitem events.
Only context menuitem highlight events and some popup menu events need to be captured
Any id < 0 (like automatically assigned menuitem id) is no longer captured.
Fixes: lp:1831669
https://bugs.launchpad.net/kicad/+bug/1831669
2019-06-05 11:14:31 +02:00
Jeff Young
1ea5b04e22
More ACTIONS work. Nearly done now.
2019-06-04 22:31:42 +01:00
Jeff Young
568c8c336b
Move DRC control to a tool; move assorted commands to ACTIONS.
2019-06-03 21:08:30 +01:00
Jeff Young
9f1e2e34b7
Move some dupicated tools to common tools.
2019-06-03 21:08:30 +01:00
Jeff Young
e517199794
Move ConfigurePaths and LibTable management to common ACTIONs.
2019-06-03 21:08:30 +01:00
Jeff Young
33773bad4d
Yet more command conversions to ACTIONs.
2019-06-02 21:10:56 +01:00
Jeff Young
6ac273264d
Move Show3DViewer to common action.
2019-06-02 16:21:44 +01:00
Jeff Young
45a9544726
Instantate a default menu from no selection when menu is first built.
...
This might resolve some of the GTK menu anomalies.
2019-06-02 12:58:08 +01:00
Jeff Young
7f1ed30ff5
Move DeMorgan handling to ACTIONs.
2019-06-01 23:03:24 +01:00
Jeff Young
74e10791ff
Fix some Mac-specific issues with the Preferences... menu item.
2019-06-01 16:29:12 +01:00
Jon Evans
9094a17795
Zoom to fit: only consider worksheet if there are no other items
2019-05-29 21:27:59 -04:00
Seth Hillbrand
87d997704f
Enable cairo switch
...
Hooks up the action to the event.
Fixes: lp:1830976
* https://bugs.launchpad.net/kicad/+bug/1830976
2019-05-29 15:21:21 -07:00
Jeff Young
0260b32125
Push resetLocalCoords down into COMMON_TOOLS.
...
Fixes: lp:1830693
* https://bugs.launchpad.net/kicad/+bug/1830693
2019-05-29 00:26:29 +01:00
Jeff Young
a27e4246e0
Move some more menu commands to ACTIONs.
2019-05-29 00:26:29 +01:00
Jeff Young
6936effaa7
Implement undo for Page Settings in PlEditor, Eeschema and PCBNew.
...
Fixes: lp:1820059
* https://bugs.launchpad.net/kicad/+bug/1820059
2019-05-27 11:58:55 +01:00
Jon Evans
549b76739e
Exclude invisible items from view bounding box for zoom-to-fit
...
Fixes: lp:1116457
* https://bugs.launchpad.net/kicad/+bug/1116457
(cherry picked from commit ede2575018
)
2019-05-26 13:03:23 -04:00
jean-pierre charras
568d4e2b19
Avoid including id.h in a lot of files that do not use it.
2019-05-26 08:14:25 +02:00
Jeff Young
a3dfce5adb
Implement common file menu actions and move Eeschema over.
2019-05-25 01:14:21 +01:00
jean-pierre charras
32f25cf8b4
ACTION_MENU::appendCopy: Fix an issue on Windows with Check-able menu-items.
...
The source bitmap was copied to the new created item.
However, for Checkable menu-items, when setting a bitmap, our standard check bitmap is also added.
This is unwanted when the source bitmap is the wxNullBitmap (bitmap sizes are different)
2019-05-24 21:01:49 +02:00
Jeff Young
85f984ccd9
Add point-editor activation for immediate-mode drawing.
2019-05-24 19:49:09 +01:00
Jeff Young
323bb0f8e1
Moving PageLayout editor to GAL canvas and modern toolset.
2019-05-24 19:49:09 +01:00
jean-pierre charras
40382f4d52
Viewlib: menubar/view menu: make grid select working
...
Set also a better icon for this menu item
2019-05-24 15:49:51 +02:00
jean-pierre charras
83e08c9277
Fix crash in Eeschema when clicking on a menubar item.
...
It happens if an other frame (libedit) was opened, a menubar clicked, an this frame was closed.
2019-05-23 13:35:12 +02:00
Jeff Young
0047f88f82
Mark unfold bus menu as clean so it doesn't get generated a second time.
...
Fixes: lp:1829878
* https://bugs.launchpad.net/kicad/+bug/1829878
2019-05-23 00:27:53 +01:00
Jeff Young
67cc2aac2e
Rework Eeschema find/replace for modern toolset.
...
Fixes: lp:1827274
* https://bugs.launchpad.net/kicad/+bug/1827274
Fixes: lp:1827240
* https://bugs.launchpad.net/kicad/+bug/1827240
2019-05-22 21:48:04 +01:00
Seth Hillbrand
06b22594ca
libedit: Prevent null dereference in popup
...
Lack of tool manager can happen when the popup is not connected to the
main tool.
Fixes: lp:1829825
* https://bugs.launchpad.net/kicad/+bug/1829825
2019-05-21 19:59:43 -07:00
jean-pierre charras
aee1fe45f4
Fix a few issues related to Bitmaps in menus.
...
- fix missing icons.
- remove duplicate (and incorrect) code to set these icons in wxMenuItems
2019-05-21 17:50:05 +02:00
jean-pierre charras
62a5302bc4
Fix issues created by commit cbb0d74bd5
.
...
This commit redirected too many menuitem IDs to the tool manager.
Only some context menu items have to be redirected, not all inside ACTION_EVENT events.
This hack is not perfect. It needs a better handling of ACTION_EVENT handling.
2019-05-21 12:48:37 +02:00
Jon Evans
cbb0d74bd5
Ensure all custom event ids are processed by ACTION_MENU
...
Fixes: lp:1829759
* https://bugs.launchpad.net/kicad/+bug/1829759
2019-05-20 23:45:22 -04:00
Jon Evans
f53c42fac9
Fix another instance of wxGTK not liking menu icons
2019-05-20 20:34:08 -04:00
Jon Evans
95a6fb6ea3
Don't set bitmaps on non-normal menu items under wxGTK
...
Fixes: lp:1829780
* https://bugs.launchpad.net/kicad/+bug/1829780
2019-05-20 20:11:22 -04:00
jean-pierre charras
d701637eab
Footprint viewer: Fix crash when truing to open the View menu.
2019-05-20 11:36:58 +02:00
jean-pierre charras
97ddefd01a
Cosmetic refinement in conditional menu: avoid adding useless separators in menu.
...
A useless separator is a separator added when no menuitem was previously added.
2019-05-20 10:53:32 +02:00
Jeff Young
f21faceb74
A hack to work around wxWidgets failure to capture WX_MENU_OPEN events
...
See the comments. It's not pretty, but it works.
Fixes: lp:1829640
* https://bugs.launchpad.net/kicad/+bug/1829640
Fixes: lp:1829307
* https://bugs.launchpad.net/kicad/+bug/1829307
Fixes: lp:1594029
* https://bugs.launchpad.net/kicad/+bug/1594029
2019-05-19 22:04:28 +01:00
Jeff Young
7d9a0b06e0
Push help menu down into EDA_BASE_FRAME.
2019-05-18 13:14:08 +01:00
Jeff Young
13aa503614
Hack for wxWidgets failure to open menu on MSW.
2019-05-18 00:21:49 +01:00
Jeff Young
1a3d0492f5
Push polar coords down into COMMON_TOOLS.
2019-05-18 00:21:49 +01:00
Jeff Young
48fb78418c
Fix merge error.
2019-05-16 20:05:45 +01:00
Jeff Young
b4d4525496
Fix icon-scaling issue for ACTION_TOOLBAR.
...
Fixes: lp:1829291
* https://bugs.launchpad.net/kicad/+bug/1829291
2019-05-16 19:57:06 +01:00
Jeff Young
fbb807f3bb
Move some more menu & toolbar items to modern toolset.
2019-05-16 19:57:06 +01:00
Seth Hillbrand
ddc6079ceb
Move remaining hard-coded segment counts
...
This removes the remaining hard-coded segments counts and replaces them
with the relative error calculation where the segments per arc is
determined by the maximum error we allow (smaller arcs = fewer segments)
2019-05-16 08:49:55 -07:00
John Beard
8378f97a78
Eeschema: enable grid change hotkey
...
Add the N/Shift+N hotkeys to the eeschema hotkey file.
Also adjust the COMMON_TOOLS::GridNext/Prev to work when
the screen's grid definitions do not have consecutive command
IDs (they do not in eeschema).
This is related to lp:1811018 (but doesn't constitute a fix).
* https://bugs.launchpad.net/kicad/+bug/1811018
2019-05-16 14:10:43 +01:00
Jeff Young
69afa27a5f
Implement ACTION_TOOLBAR and update some of the menus to ACTION_MENU.
...
This gives us better separation of MVC in line with the design of
the modern toolset. It also reduces a whole bunch of duplicated
data.
2019-05-15 17:50:52 +01:00
Jeff Young
f9e4ee1fc9
CONTEXT_MENU -> ACTION_MENU. (Now used for menu-bar menus too.)
2019-05-15 17:50:52 +01:00
Jeff Young
06d64c7883
Use wxMessageBox instead of ASSERT for duplicate hotkey warnings.
2019-05-15 17:50:52 +01:00
Jeff Young
e850592587
Cleanup.
2019-05-15 17:50:52 +01:00
Jeff Young
ef5c69167a
Start moving some LibEdit and SchEdit menubar menus to actions.
...
Also includes a bunch of bug fixes that got intermingled.
Fixes: lp:1828826
* https://bugs.launchpad.net/kicad/+bug/1828826
Fixes: lp:1828826
* https://bugs.launchpad.net/kicad/+bug/1828826
Fixes: lp:1828793
* https://bugs.launchpad.net/kicad/+bug/1828793
2019-05-13 21:44:29 +01:00
Jeff Young
e77d096412
Make setting a breakpoint easier.
2019-05-10 16:11:57 +01:00
Jeff Young
ea0941cab3
Implement modern tools for LibEdit.
2019-05-10 16:11:57 +01:00
Jeff Young
cd2bd23c37
Fix a bunch of issues with hotkeys, IDs and event processing.
...
Fixes: lp:1827894
* https://bugs.launchpad.net/kicad/+bug/1827894
2019-05-06 21:42:00 +01:00
Jeff Young
a42a4b0b52
Implement immediate bus unfold and add bus unfold to selection context menu.
2019-05-05 17:14:30 +01:00
Jeff Young
9adf012c20
Move duplicate hotkey check so it respects AS_CONTEXT.
2019-05-05 17:14:30 +01:00
Jeff Young
6e695aac25
Move bus unfold and symbol unit selection to modern toolkit.
2019-05-05 17:14:30 +01:00
Jeff Young
423d430b58
Replace deleteNode and deleteConnection with selectNode and selectConnection.
2019-05-05 17:14:29 +01:00
Jeff Young
2244dcd567
Move show datasheet to SCH_INSPECTOR_TOOL and add show marker info.
2019-05-05 17:12:59 +01:00
Jeff Young
902be18a04
More modern toolset context menu work.
...
Text/label type changes and bus entry shape changes. And some
context menu bug fixing.
2019-05-05 17:12:59 +01:00
Jeff Young
b526461a8e
Fix colliding hotkeys issue.
...
All grid commands need to be shared now as they're implemented
by a common tool.
2019-05-05 17:12:59 +01:00
Jeff Young
42383ae871
Build out some of the modern toolkit context menus.
2019-05-05 17:12:59 +01:00