RPTools / maptool

Virtual Tabletop for playing roleplaying games with remote players or face to face.
http://rptools.net
GNU Affero General Public License v3.0
799 stars 261 forks source link

New macro editor dialog uses shortcut keys that conflict with existing Actions #277

Open Azhrei opened 5 years ago

Azhrei commented 5 years ago

The macro editor uses Meta-Shift-F and Meta-Shift-H to toggle the Find and Replace slide-up panels, but Meta-Shift-F is already used for Center map continuously (see the Window menu).

I'm building a list of all shortcut keys from the wiki, then adding what I find from the properties file and from searching the code. I'll paste it here in markdown table form for further discussion.

One solution short-term is for the dialog to disable all existing keystroke Actions. Since the text area implements its own cut/copy/paste, this should work. (I think the keystroke to exit MapTool will not be blocked, and on macOS, the ⌘, shortcut to open Preferences probably won't be blocked either.)

Azhrei commented 5 years ago

Here's what I have so far. Most of it is already on the wiki, although MapTool has modes that the wiki doesn't represent ("StampTool", "PointerTool", "FacingTool", and so on). I don't know if the keystrokes in each of those modes operates differently, only whether the keys are defined, which is what this issue is for. It's possible that something like Shift+Down works differently in one mode than another, but I'm not too concerned with that.

A few are listed here as being in a particular section because that's when I came across them (like Escape and Delete), but they typically appear in multiple sections.

The last section is the most important for now, as it lists keystrokes that I need to look into more. One thing this tells me is that the various "Tools" (like PointerTool and StampTool) really need some refactoring as there is a lot of duplicated code. I'm not worrying about it since this might/could/will all change with the new UI, but it could inform future decisions about how to use these keystrokes.

Section Keystroke Notes
Light/Vision Related Meta+K Toggle display of light source icons
Light/Vision Related Meta+I Clear FoW visible by selected token(s)
Light/Vision Related Meta+P Clear FoW visible by selected token(s) along last moved path
Light/Vision Related Meta+Shift+O Restore FoW to entire map except area currently visible to selected token(s)
Light/Vision Related Meta+W Toggle FoW on/off (GM only)
Drawing Tools Related Meta+LeftMouseButton Snap to grid while drawing
Drawing Tools Related Alt+LeftMouseButton Draw from center (vs. corner-to-corner)
Drawing Tools Related Shift+LeftMouseButton Erase area
Map Related Spacebar Show a pointer (arrow) on the map
Map Related Meta+Spacebar Show a pointer (talk-balloon)
Map Related Shift+Spacebar Show a pointer (think-balloon)
Map Related Spacebar Toggle waypoint while moving (same as middle mouse button)
Map Related Meta+G Toggle grid on/off (current client only)
Map Related Meta+Shift+S Create screenshot
Map Related Meta+Shift+D Clear all drawings
Map Related Meta+Z Undo last drawing
Map Related Meta+R Redo last drawing (only when drawing tool is active)
Map Related Meta+Alt+Enter Toggle full screen map
Map Related = Set zoom to 1:1 and back on second press
Map Related - Zoom out
Map Related + Zoom in
Map Related Z (keep it pressed) inverse mouse scroll zoom
Map Related Meta+H Toggle map (in)visible to player(s) (GM only)
Map Related Meta+Shift+A Grid settings (spacing, alignment, color) (GM only)
Map Related Meta+N New map (GM only)
Map Related Meta+Shift+P Toggle player view (GM only)
Map Related Meta+Shift+F Center players on current view continuously (GM only)
Map Related Meta+F Center players on current view (GM only)
Map Related Meta+E Force players to current map (GM only)
Token Related Delete Delete currently selected token(s). also in client/tool/FacingTool.java
Token Related Meta+T Toggle token name display.
Token Related T Select next token (Shift=previous) on map.
Token Related Digits on numeric keypad Move in the direction of the digit (7=NW, 9=NE, 1=SW, 3=SE).
Token Related Arrow keys Move in the direction of the arrow (up, down, left, right).
Token Related D Drop selected tokens after moving (when using arrow keys).
Token Related NumPad5 Drop selected tokens after moving (when using arrow keys).
Token Related Home Drop selected tokens after moving (when using arrow keys).
Token Related Shift+MouseWheel_Up Rotate facing of token: clockwise.
Token Related Ctrl+MouseWheel Rotate by 1 degree. Otherwise angle controlled by Preferences.
Token Related Shift+LeftArrow On TOKEN layer same as Shift+MouseWheel; other layers, move token by 1px
Token Related Shift+RightArrow On TOKEN layer same as Shift+MouseWheel; other layers, move token by 1px
Token Related Meta+R Turn on token facing. With a mouse click set the facing in the direction of the mouse pointer. Angle controlled as for Shift+MouseWheel. Use Delete to remove facing.
Token Related Shift+MouseOver Holding down Shift turns off the token statsheet.
Chat Related / Macro command (press Enter to complete)
Chat Related Meta+Enter Toggle chat frame visibility
Chat Related Shift+Enter ??? (see CommandPanel.java)
Standard Meta+O Open Campaign File...
Standard Meta+S Save Campaign
Standard Meta+A Save Campaign As...
Standard Meta+X Cut (tokens only)
Standard Meta+C Copy (tokens only)
Standard Meta+V Paste (tokens only)
Adjust Grid Panel Escape Cancel grid adjustment panel
Adjust Grid Panel Action.ZOOM_OUT Use the keystroke defined by AppActions.ZOOM_OUT
Adjust Grid Panel Action.ZOOM_IN Use the keystroke defined by AppActions.ZOOM_IN
Adjust Grid Panel Action.ZOOM_RESET Use the keystroke defined by AppActions.ZOOM_RESET
Adjust Grid Panel Shift+Up Grid size decrease; client/ui/adjustgrid/AdjustGridPanel.java
Adjust Grid Panel Shift+Left Grid size decrease
Adjust Grid Panel Shift+Down Grid size increase
Adjust Grid Panel Shift+Right Grid size increase
Adjust Grid Panel Up Grid y offset decrease; client/ui/adjustgrid/AdjustGridPanel.java
Adjust Grid Panel Left Grid x offset decrease
Adjust Grid Panel Down Grid y offset increase
Adjust Grid Panel Right Grid x offset increase
Needs Investigation F10 Windows-specific client/ui/MapToolFrame.java
Needs Investigation Delete Initiative Panel Remove selected token; client/ui/tokenpanel/InitiativePanel.java
Needs Investigation Integer.toString(position) ??? client/AppActions.java
Needs Investigation .addActionForKeyStroke ??? client/tool/drawing/DrawnTextTool.java
Needs Investigation Spacebar ??? client/tool/drawing/DrawnTextTool.java
Needs Investigation Meta+R ??? Check to see what the action is; client/tool/PointerTool.java
Needs Investigation Meta+Spacebar Uses CTRL_MASK instead of Meta? (twice) client/tool/PointerTool.java
Needs Investigation Meta+I ??? client/tool/PointerTool.java
Needs Investigation Meta+Shift+O ??? client/tool/PointerTool.java
Needs Investigation Meta+Shift+F ??? client/tool/PointerTool.java
Needs Investigation Meta+P ??? client/tool/PointerTool.java
Needs Investigation NumpadKeys all are defined, with/without Shift client/tool/StampTool.java
Needs Investigation ArrowKeys all are defined, with/without Shift client/tool/StampTool.java
cwisniew commented 5 years ago

Moved out of current release