JSON based Mapper configuration
In addition to the configuration of Mapper through the 'Settings' GUI where a dedicated control element is needed for each setting, this commit implements a lightweight mechanism by using a JSON configuration file that allows to easily configure a variety of settings. The 'Settings' GUI is extended by the possibility to select and remember the JSON configuration to be used as default configuration. An additional dialog allows to load and save JSON configuration and provides a simple, i.e., not context-sensitive, text editor. The validity of the JSON format is checked and deviations to Mapper's default JSON configuration can be shown and resolved.
As examples for its usage it closes #2087 and closes #1961, thus superseding #2088 and #2154.
Note: this is currently just a POC and there are some TODOs:
- when the 'Settings' dialog is reset or canceled, also the JSON settings should be reset
- the code needs proper comments and maybe some refactoring
- a test should be added
However, before continuing I need feedback whether this kind of JSON based configuration is desired at all.
I think this is just great. If more config options can find its way down here, that would be awesome. Also custom colors for scribbling might perhaps be stored in here (#1738)? That way you can switch to another OO Mapper instance / device and keep all your preferences in a single file 🥳