Keyboard Shortcut conflicts
Posted: Sun Mar 05, 2017 1:34 am
Keyboard shortcuts are very important to me and many others because they allow faster work, and more importantly, reduce repetitive stress injuries from using the mouse/trackpad so much.
The Function Manager and its related editors have some conflicts in keyboard shortcuts, causing them not to work in some circumstances. This is a complex interrelated set of issues, because different platforms behave differently, so there will be some judgment choices to make, taking into account standard UI conventions vs. QLC+'s history vs. cross-platform consistency.
I'll be testing some ideas that attempt to improve this situation at this fork on GitHub.
The issues as I see them are:
1) Ctrl-C for Clone (in the main m_tree QTreeWidget) conflicts with Ctrl-C for Copy in the Scene and other editors.
On Linux, it's tricky to get the focus just right in order to copy a channel's settings rather than copy function name text or clone the function. On MacOS, I haven't found any way to use Ctrl-C to copy channel settings from one fixture to another, because the focus never seems to get to the general Scene Editor - it always seems to be on either the function list, the scene name text field, or the number text field from a slider.
2) In general, most of the Ctrl-key shortcuts in the Function Manager conflict with OS-level shortcuts which keeps them from working properly. Specifically:
- Ctrl-C for Clone instead of Edit->Copy
- Ctrl-S for New Scene instead of File->Save
- (MacOS only) Command-H for New Chaser instead of Application menu->Hide Application
- Ctrl-O for New Collection instead of File->Open
- Ctrl-W for Function Wizard instead of File->Close Window
My inclination is to change these to something like Ctrl-Alt-(key) or Ctrl-Shift-(key), leaving the letter keys as they currently are.
3) When selecting a function from the list, the current behavior is to immediately focus on the relevant editor's text field that holds the name of the function, and select all characters. This has some drawbacks:
- It's very easy for the user to accidentally rename the function, possibly not realizing which function they renamed.
- At least on MacOS, when a text field is in focus, the Alt-Left and Alt-Right keyboard shortcuts (for switching fixture tabs in the Scene Editor) do not work because they are reserved by the OS for moving the text insertion point backwards and forwards by word.
- It becomes impossible to use arrow keys to move between functions, since after pressing Up or Down, the function's name text field immediately takes keyboard focus, requiring a Tab or click to go back to the list.
- The only way I've found to get the Copy/Paste keyboard shortcuts to reliably copy slider settings from one fixture tab to another within a Scene is to 1) Remove Ctrl-C from "Clone" in the function list (line 324 in functionmanager.cpp); and 2) Comment out line 96 in sceneeditor.cpp.
What I intend to try next (see my fork on GitHub, link above) is:
- Change the New ___ shortcuts to Ctrl-Alt-(key)
- Find different shortcuts for Next/Previous tab in the Scene Editor that will work across all platforms.
--> This may be tricky; for example, Ctrl-Tab would be ideal, and it does work on Linux depending on focus, but on MacOS it does not because Qt maps Command to Ctrl but the OS reserves Command-Tab for application switching. Command-Shift-Left/Right would work well for MacOS users because this is what Safari uses, but on Windows, Ctrl-Shift-Left/Right would make some users' screens flip horizontally which is undesirable.
Does anyone have any ideas or thoughts about this situation? Either way I'll try some different things on GitHub and you all (especially Massimo) can decide if it's something worth addressing.
Thanks,
Matt
The Function Manager and its related editors have some conflicts in keyboard shortcuts, causing them not to work in some circumstances. This is a complex interrelated set of issues, because different platforms behave differently, so there will be some judgment choices to make, taking into account standard UI conventions vs. QLC+'s history vs. cross-platform consistency.
I'll be testing some ideas that attempt to improve this situation at this fork on GitHub.
The issues as I see them are:
1) Ctrl-C for Clone (in the main m_tree QTreeWidget) conflicts with Ctrl-C for Copy in the Scene and other editors.
On Linux, it's tricky to get the focus just right in order to copy a channel's settings rather than copy function name text or clone the function. On MacOS, I haven't found any way to use Ctrl-C to copy channel settings from one fixture to another, because the focus never seems to get to the general Scene Editor - it always seems to be on either the function list, the scene name text field, or the number text field from a slider.
2) In general, most of the Ctrl-key shortcuts in the Function Manager conflict with OS-level shortcuts which keeps them from working properly. Specifically:
- Ctrl-C for Clone instead of Edit->Copy
- Ctrl-S for New Scene instead of File->Save
- (MacOS only) Command-H for New Chaser instead of Application menu->Hide Application
- Ctrl-O for New Collection instead of File->Open
- Ctrl-W for Function Wizard instead of File->Close Window
My inclination is to change these to something like Ctrl-Alt-(key) or Ctrl-Shift-(key), leaving the letter keys as they currently are.
3) When selecting a function from the list, the current behavior is to immediately focus on the relevant editor's text field that holds the name of the function, and select all characters. This has some drawbacks:
- It's very easy for the user to accidentally rename the function, possibly not realizing which function they renamed.
- At least on MacOS, when a text field is in focus, the Alt-Left and Alt-Right keyboard shortcuts (for switching fixture tabs in the Scene Editor) do not work because they are reserved by the OS for moving the text insertion point backwards and forwards by word.
- It becomes impossible to use arrow keys to move between functions, since after pressing Up or Down, the function's name text field immediately takes keyboard focus, requiring a Tab or click to go back to the list.
- The only way I've found to get the Copy/Paste keyboard shortcuts to reliably copy slider settings from one fixture tab to another within a Scene is to 1) Remove Ctrl-C from "Clone" in the function list (line 324 in functionmanager.cpp); and 2) Comment out line 96 in sceneeditor.cpp.
What I intend to try next (see my fork on GitHub, link above) is:
- Change the New ___ shortcuts to Ctrl-Alt-(key)
- Find different shortcuts for Next/Previous tab in the Scene Editor that will work across all platforms.
--> This may be tricky; for example, Ctrl-Tab would be ideal, and it does work on Linux depending on focus, but on MacOS it does not because Qt maps Command to Ctrl but the OS reserves Command-Tab for application switching. Command-Shift-Left/Right would work well for MacOS users because this is what Safari uses, but on Windows, Ctrl-Shift-Left/Right would make some users' screens flip horizontally which is undesirable.
Does anyone have any ideas or thoughts about this situation? Either way I'll try some different things on GitHub and you all (especially Massimo) can decide if it's something worth addressing.
Thanks,
Matt