「view this page in B3 βῆτα server」

Revisions №308

branch: interactive/develop 「№308」
Commited by: Rocco Moretti
GitHub commit link: 「eacd76453cf437df」 「№5450」
Difference from previous tested commit:  code diff
Commit date: 2021-09-20 16:11:03
foldit.build.debug foldit.build.release foldit.defines foldit.levels foldit.unit.debug foldit.unit.release

Merge pull request #5450 from RosettaCommons/roccomoretti/interactive_help_update [ Foldit ] Update Help Panel to be more flexible. The current Help Panel has its content hard-coded in the StandaloneApplication directly. This makes it hard to update content. Create a new HelpPanel class which generalizes the logic needed for displaying the current style help panel. The content of the panel is no longer hard-coded, but instead present in the resources/help/ directory as a series of JSON files. This should hopefully allow us to iterate/expand/update help text more readily. The general organization is a series of "cards" which are organized based on "layouts"/lists which are a series of buttons in the left-hand pane. A small JSON-based domain-specific language lays out what the content of each card is. The implementation is somewhat general, so it should be straightforward to add additional content types and behaviors. (e.g. a button to launch a particular intro puzzle.) Right now the content is basically the same as the current version, except for some slight layout differences. The big change is the alteration to how the "Gameplay" and "Glossay" submenus work. Instead of a bespoke popup, I re-use the lefthand pane for a list of topics. I think this will generalize better, and will allow us to do multiple such nested lists, with arbitrary depth. An additional feature is context sensitivity. Items can be added/removed based on various settings. Right now it's just internal & secret keys availability, but we could theoretically add the ability to respond to puzzle type, or which actions are available on a given puzzle. This PR also includes a number of changes to various widgets, adding functionality that was helpful for getting the various widgets to work with the automated system. RELEASE NOTES: Update code behind the Help Menu, which should allow us to more easily improve the help content.