Merge pull request #4679 from RosettaCommons/roccomoretti/interactive_fix_tests
[Foldit] Fix some tests
Some fixes for the currently broken tests in interactive/develop. This doesn't address them all, but hits the major spots.
Merge pull request #4643 from RosettaCommons/roccomoretti/interactive_translate_log
Foldit: Log untranslated messages
The list of messages to translate in the Foldit-provided template is woefully out of date. Furthermore, it's a little impractical to require us to keep updating it as we add and change wording.
So let's crowd-source it! This PR adds a change to the translation machinery such that when the translation machinery is passed a message that the currently loaded translation file is unaware of, that message will be logged. That way people looking for an up-to-date list of translations strings can simply look at their working directory.
This feature is not enabled by default. It's only active if the translation machinery is loaded, and only if the player has explicitly added a "log_untranslated" : "1" line to their options.txt file. It also won't capture any messages in the code which are displayed to the players without passing through the translation machinery. The messages which are logged will be appended to the file untranslated_messages.<LANG_CODE>.log in the working directory. (in a pseudo gettext format).
RELEASE NOTES:
Translators: A new feature has been added which will log messages which could be translated but aren't currently present in the active language pack to the file "untranslated_messages.<LANG_CODE>.log" in the working directory. Add the line "log_untranslated" : "1" to your options.txt file to enable.
Merge pull request #4396 from RosettaCommons/roccomoretti/interactive_poseview_split
Foldit: Remove Rosetta dependency from src/interactive/poseview
This is an attempt at furthering the frontend/backend split of Foldit by making interactive/poseview a "GUI only" sub-library, independent of the Rosetta libraries.
The way this works is by making a new GUIPose object at the poseview level which is a pure virtual interface class independent of Rosetta. For now, this will be instantiated via either a GUIPoseProxy or a GUIWrappedPoseProxy subclass object, which have implementations at the interactive/application/appposeview level (and thus can access Rosetta).
The classes in poseview have been re-written to use GUIPoseProxy, and those which needed actual Pose access have been moved to interactive/application/appposeview.