feat: prepare for JavaFX-property-based launcher settings #665
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contains
This prepares
Settings
to take over the role ofLauncherSettings
as source of truth for the launcher settings.The information is stored in JavaFX properties wrapping the actual value. The use of properties allows for reactive bindings to simplify automatic updates of the UI.
When storig a (legacy)
LauncherSettings
object we also deserialize an equivalentSettings
object to JSON. Vice versa, we can also readSettings
from a JSON file.The new
Settings
object is not yet used.Settings
to an FX property-based settings objectHow to test
This PR has no semantic or funcational changes.
However, you can test that the
Settings
object is properly serialized alongside the `.properties' file. The content should be pretty-printed JSON with the same values as the (soon-to-be legacy) launcher settings file.Vice versa, the
settings.json
is parsed to aSettings
object if present and it's content printed out when the launcher loads settings from disk. Check the logs for correctnes of the output.Contributes to #522
Based on #662
Extracted from #663