New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Settings should be removed from configuration profiles when equal to normal configuration #4892
Comments
Comment 1 by jteh on 2015-02-06 11:24 |
Comment 2 by leonarddr on 2015-02-06 13:39 |
Comment 3 by bdorer (in reply to comment description) on 2015-03-01 17:15 |
Coming back to this, I really like this approach. It however might be quite difficult to realise because of the multiple settings dialogs NVDA now uses.
|
Actually, it might be an option to create a new dialog for this and gather all the changed configuration options based on how rapid settings does this. |
…o a particular profile (nvaccess#4892)
I've been working on the latter suggestion, but I'm afraid it needs a whole bunch of changes. Most importantly, it should be possible to map a WX control to a particular setting in config.conf. For example, when we have self.languageList=wx.Choice(self,languageListID,name=_("Language"),choices=[x[1] for x in self.languageNames]), we should be able to retrieve from the control that it controls config.conf["general"]["language"]. When that's possible, we can gather the controls from every settings ddialog in a similar way Rapid Settings does it, checking whether the setting it controls differs from its value in the normal configuration. of course, it can be solved by using two instances for every settings dialog, one instance for the normal configuration and one instance for the profile configuration, but that's overwhelmingly ugly. |
@jcsteh mind if I take this one? |
I'm not really a big fan of having a dialog with a list of changed settings. Aside from anything else, it's not enough to just check config values and revert the config value if the user wants to remove it. I wonder whether we can mitigate the need for this altogether by allowing users to restrict a profile to specific groups of settings (config sections). Anyway, please hold on this for now. I think we need to have a bit of a brainstorm on this internally. |
That's an idea I certainly like! |
Another thing to toss around internally might be ability to lock a On 10/18/2016 1:13 AM, Leonard de Ruijter wrote:
Websites: email me at derek.riemer@colorado.edu mailto:derek.riemer@colorado.edu |
In the initial version of this code, you had to explicitly edit a profile to change setings, effectively locking profiles by default. However, users complained because they would switch to their app, make a change and it wouldn't be remembered. Alternatively, they'd edit the profile and forget to deactivate it, so all changes got applied to the profile being edited. Either way, I think we're going to confuse some group of users.
|
The thing is with this method, if I use the synth settings ring to turn Either way,, over time, profiles become corrupted without intention here.
Websites: email me at derek.riemer@colorado.edu mailto:derek.riemer@colorado.edu |
==Note that I'm just trying to provide use cases where the current On 10/18/2016 4:31 AM, James Teh wrote:
Websites: email me at derek.riemer@colorado.edu mailto:derek.riemer@colorado.edu |
To clarify, I totally get the confusion here. It's just that the potential solutions all have downsides people don't expect which are in some cases even more likely to lead to confusion. Anyway, we'll see what we can come up with.
|
@jcsteh, @michaelDCurran, @feerrenrut, @LeonarddeR, @derekriemer have there been any further discussions on this issue? |
Hi, Note that any new discussion MUST include a nod to #577. Thanks. |
Reported by leonarddr on 2015-02-06 11:10
By default, when a configuration profile is created, the configuration file is empty. As soon as a setting is changed in the profile, the setting is defined in the profile's configuration file. For example, when nvda.ini contains,
and i change the speech in the profile to espeak, the configuration file contains the espeak synth as expected. However, when changing the synth in the profile back to vocalizer_expressive, we have a duplicate: Both nvda.ini and profile.ini contain synth = vocalizer_expressive. This means that, when changing the normal configuration's synth to espeak, the profile.ini and nvda.ini differ and you will have to set the synth to espeak in both profile and normal configuration. This is quite annoying and leads to unexpected situations. Also, it might be the underlying idea behind ticket #4167.
Therefore, when a profile setting is changed, NVDA should check against the normal configuration whether the change is equal to it. So, when vocalizer_expressive is defined in the normal configuration and the synth is changed in the profile from espeak to vocalizer_expressive, NVDA should detect that this change reverts the synth setting to the normal configuration and should remove the synth parameter from the profile.
The text was updated successfully, but these errors were encountered: