Shortcut handling for Gio::Actions. Also use actions for some GUI elements (zoom, canvas modes, snapping, etc.).
Rewrite shortcut code to handle accelerators for Gio::Actions. Use Zoom, Snap, Canvas transforms, and Canvas display mode actions in GUI. Demonstrate Application, Window, and Document level actions.
Shortcut code changes:
- Convert to C++ class.
- Removing duplicate code.
- Removing dead code.
- Fixing memory leak.
- Eliminating improper use of GDK_MODIFIER_RESERVED_XXX values.
- Show all accelerators in Inkscape Preferences dialog.
- Distinguish Numeric Pad number keys and normal number keys.
- Update GUI text when shortcuts changed.
GUI changes:
- Use Action "Extra Data" to define tooltips in GUI (same string shared among command-line, menus, toolbars).
To do:
- In the preference dialog:
- Merge verbs and actions (they are in separate sections now, and maybe should stay that way).
- Add an option to show all actions or only actions that can be assigned to shortcuts (example, it doesn't make sense to assign the object 'transform-translate' action to a shortcut).
- Would be interesting to allow users to add "custom" shortcuts by being able to add extra parameters: 'transform-translate(10, 10)'. Would also be interesting to integrate with Command Dialog (assign shortcuts to particular macros).
Needs testing, particularly:
- Non-latin based keyboards.
- OSX, Windows
Edited by Tavmjong Bah