FeatureFlag: fix changing from default value and value of default (#14133)
Summary of the issue:
Feature flags use a default option that results in a default value.
For example, for a boolean feature flag could have three options: Default (Enabled), Enabled, Disabled.
When comparing feature flags __eq__ is overridden such that Default (Enabled) == Enabled.
NVDA checks if a value has changed before marking a profile as dirty so that it is written to disk when saving the configuration.
Due to __eq__ being overridden, NVDA does not write changes to disk if you change from the default value to the value of default.
STR:
With NVDA running, open braille preferences
Update "Interrupt Speech While scrolling" from Default (Enabled) to Enabled
Save the settings and exit the settings dialog
Re-open braille preferences, note the setting is still set to Default (Enabled)
Description of user facing changes
NVDA correctly updates feature flags when changing from the default value to the value of default.
Description of development approach
When checking if a config setting has changed, compare non-sections as strings, as this is how they are written to the config profile.