Fix config option conflicts (PR #14233)
Closes #14170
Summary:
For some GUI settings, a difference between the default (base) profile and another profile,
could have unexpected results.
An example:
- A profile named 'Notepad' with setting (GUI option) 'line indentation reporting' to 'tones'
- The default profile with the same GUI option set to 'speech'
- Result: indentation reported with speech and tones instead of tones only when returning to notepad
- Issue #14170 contains detailed steps.
Only one combo-box was used to set line indentation reporting in the UI, but the value of this
combo-box was saved in two items in the configuration.
These two items were then managed separately when dealing with configuration profile switching.
The following combo-boxes in the GUI were impacted by this issue:
* "Line indentation reporting" in doc formatting settings
- See initial description of #14170
* "Cell borders" in doc formatting settings
- See https://github.com/nvaccess/nvda/issues/14170#issuecomment-1277702879
* "Show messages" combined with "Message timeout" in braille settings
- See https://github.com/nvaccess/nvda/issues/14170#issuecomment-1276335227
* "Tether Braille" in braille settings
- See https://github.com/nvaccess/nvda/issues/14170#issuecomment-1277685893
Change for users:
The values of the following settings should not change unexpectedly anymore
when switching profile:
* Line indentation in Document formatting settings.
* Cell borders in doc formatting settings
* Show messages in braille settings
* Tether Braille in braille settings
Approach:
* One control in the GUI now matches one and only one item in the config
* Upgrade the config adequately
* Used the same approach as #14132 (and the fix in #14183)
A note on profile upgrade:
Because it is possible for arbitrary stacking order for config profiles it is not possible
to determine the setting which would be expected by the user.
Config stacking can be caused by mixes of the following, default/base, manually enabled profile, app triggered profile, say-all triggered profile