Merge pull request #5765 from RosettaCommons/roccomoretti/interactive_hotkey_help
[Foldit] Update Help Panel.
This PR updates the Help panel for a few changes, but the primary one is to improve the way we display hotkeys. (Others are adding a Selection card, updating the Tweak image, and some other typo/formatting issues.)
RELEASE NOTES:
* Update Help Menu.
Merge pull request #5756 from RosettaCommons/roccomoretti/interactive_action_hotkeys
[Foldit] New UI Hotkey adjustment
A number of Hotkey-related improvements to the new interface.
The main feature is enabling the ability for people to rebind the selection interface action button hotkeys.
Part of this was reworking/refactoring the HotkeyTable system a bit. In the process, I've moved the HotkeyTable toward using the exec_id as a primary identifier. Key combos can be bound to the exec_id, and there's facilities for making sure that two exec_ids aren't bound to the same key combo, but things are refactored a bit around the primacy of the exec_ids.
Part of this is to allow for dynamic enabling/disabling of hotkeys. exec_ids can now be enabled/disabled, and when disabled their hotkey is invisible, available for other functions to use. Enabling them will only enable the hotkey if no one else is using it, or if it's been user-specified, in which case it will take control.
I've also changed how the hotkey.txt is viewed. It's no longer a raw dump of all hotkeys, it's now just a list of the rebound hotkeys -- hotkeys which are set at their default values are not listed. This should hopefully make things more flexible in the future regarding changing hotkey defaults and/or retiring old hotkeys. (As explicit key designations take primacy over the default values.)
I also needed to generalize how the hotkey updating system worked, to allow for updating the hints in the FloatMenu (as opposed to just the tooltips). There's also a short-string for hotkey designations, to give `CAS-T` instead of the can't-fit-on-a-button `Ctrl-Alt-Shift-T`. (Though the defaults for the actions should all be non-meta-ed single keys, so only people rebinding keys should see the issue.)
Release Notes:
* Allow action menu keyboard shortcuts to be rebound in the "Configure Keyboard Shortcuts" General Options submenu.
* Make sure that user-set keyboard shortcuts take priority over default shortcuts for other actions.
* To avoid conflicts with the actions menu, the default "Restore Very Best" and "Restore Credit Best" keyboard shortcuts were changed to Ctrl+B and Ctrl+C, respectively. These can be rebound in the "Configure Keyboard Shortcuts" General Options submenu.
* Made the "Configure Keyboard Shortcuts" dialog resizable.
* Clean up some residual keyboard shortcuts from the old interfaces & cross talk from other shortcuts. (e.g. Alt+T no longer invokes wiggle.)
* Add keyboard shortcuts for the side buttons (Help/Undo/View/Behavior/Cookbook). So as not to conflict with actions, these are F1/Alt+U/Alt+V/Alt-B/Alt+C by default. These can be rebound in the "Configure Keyboard Shortcuts" general options submenu
* Allow keyboard shortcuts to be bound to View Presets, including user defined presets (as with Recipes, these start off unbound.)
* Fix bug where the Color/View Protein/View Sidechains list in More View Options did not update when keyboard shortcuts were used.
* Add the screenshot and AlphaFold panel buttons to the list of rebindable keyboard shortcuts
* Other assorted hotkey-related bug and usability fixes.
Merge pull request #5758 from RosettaCommons/roccomoretti/interactive_fix_three_dots
[Foldit] Fix Title resize issue.
I was trying to be too clever by only recalculating the title size when needed. This was a premature optimization,
as the calculations are actually not that computationally demanding, especially when we consider everything else
which goes on in an update().
This resulted in a bug where the title would be set a zero width and then never resized for the actual width.
Recalculating the size at every update() seems to fix the problem.
RELEASE NOTES:
* Fixed bug where the title wasn't resizing properly (leaving it and the objective panel as only three dots).