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).
Merge pull request #5759 from RosettaCommons/roccomoretti/interactive_improve_ligand_validation
[Foldit] Attempt to address a number of the soft crashes.
We're getting a large number of "soft" crashes reported for the ligand puzzles. (Molecules which are being rejected for internal issues.) This PR should address the bulk of them, or at least set us up for handling them later.
* A large number of the reports are for "texas" carbons, nitrogens, oxygens, etc. We have valence checking code, but it wasn't being run in at least one location before passing to RDKit - fix that.
* RDKit can handle some odd valences of iodine, which we're not considering (and which lead to issues later). Add iodine to the list of things we explicitly check for.
* We're getting some issues related to the reprotonation of aromatic nitrogen and phosphorus. I'm not sure where these are coming from, and I haven't been able to reproduce this locally. Add annotations of the starting molecule to the soft crash, which will allow me to better debug the issues later.
No Release Notes. (These changes are only internally relevant.)
Merge pull request #5761 from RosettaCommons/roccomoretti/interactive_address_waterbuilder_crashes
[Foldit] Attempt to address issues with LK_Ball crashes.
We're seeing a fair number of crashes with Stub building in LK_Ball evaluation in the ligand design puzzles. Best I can tell from the traceback, this is happening due to coincident atoms. Adjust the LKBall and Stub code to be more robust to these sorts of situations. (This may result in non-ideal energies for the system, but it won't cause the client to crash.)
RELEASE NOTES:
* Address crashes in scoring for ligand design puzzles.
Merge pull request #5762 from RosettaCommons/roccomoretti/interactive_ligand_crash_fixes
[Foldit] Bundle of ligand-related crash fixes.
A few fixes related to issues seen commonly in the small molecule design crash reports.
* Tracer output in conformer generator manager destructor is unneeded (there's some crash reports related to this, probably due to object destruction order at program shutdown.)
* With ligand generation, we can sometimes get large atom names - don't crash in ICoord parsing if we do generate those. (We may crash/mess up PDBs later, but crashing outright here is unnecessary.)
* There's some crashes related to ElementsPanel::disabled_elements() and FragmentsPanel::get_disabled_fragments() Not entirely sure what's causing this, but add in a soft-crash check for atom index issues (which is my current theory.)
RELEASE NOTES:
* Address issue causing crash-on-exit bugs.
* Made small molecule design more robust to certain causes of crashes.
Merge pull request #5760 from RosettaCommons/roccomoretti/interactive_fix_hbond_filter
[Foldit] Fix bug in the HBondFilter
It looks like a typo can cause a crash due to off-the-end access.
RELEASE NOTES:
* Fix bug in HBond Objective that was causing crashes in VHL puzzles.
Merge pull request #5757 from RosettaCommons/rocccomoretti/interactive_fix_tips
[Foldit] Fix the loading tips for the updated GUI.
(No release notes on this one -- it's not really something we need to draw attention to.)
Merge pull request #5710 from RosettaCommons/koepnick/hbnet_buns_display
[Foldit] Highlight unsatisfied atoms in HBNetFilterGeom
Release Notes:
- Show H-Bond Network Objective now highlights unsatisfied atoms in a network