Comments (2)
I don't think this is a good feature to encourage. Many preference systems (notably on Mac and Gnome) do not have "Apply/OK" action, and the preferences are live and the ui (preference panes) is expected to not let the user enter an invalid state (or indicate it as such - for example proxy setting won't be used because port number is not specified).
from envisage.
Many preference systems (notably on Mac and Gnome) do not have "Apply/OK" action, and the preferences are live and the ui (preference panes) is expected to not let the user enter an invalid state (or indicate it as such - for example proxy setting won't be used because port number is not specified).
I think that this generally depends on the application. For example on Mac the network setting will show Revert
and Apply
buttons which will be enabled/disabled based on the settings that the user has used (e.g. Revert will be disabled if the user has not changed any settings). Specifically for the proxy settings there are 'OK' and 'Cancel' buttons.
The PreferencePanes
in the tasks sub-package are designed to keep a temporary copy of the preferences which can be discarded or applied (become permanent). The current implementation of the PreferencesDialog
will show 'OK' and 'Cancel' in all platforms. 'OK' will call apply
on all the managed preference panes.
I agree that in general all settings should be validated automatically however it is not always possible for the validation to be instant. In some cases the application needs to perform a number of tasks and checks to validate the provided settings (e.g. network settings). Given the current implementation of the PreferencesDialog
, the user is able to close the dialog and force the un-validated settings to become permenent. I think it is better UX experience to have a simple way to tell the user that the changes have not been validated yet and give the opportunity to correct if necessary.
from envisage.
Related Issues (20)
- Remove setuptools dependency HOT 2
- Include changelog in generated documentation
- Remove legacy examples HOT 1
- Review release checklist HOT 2
- Use pyproject.toml
- DeprecationWarning for declare_namespace HOT 5
- Drop wxPython support in `etstool.py`
- Consider applying black and isort HOT 1
- Remove PySide6 workflow restrictions after next Pyface release HOT 1
- Fix Plugin.__repr__ to include class name
- PluginManager.include and PluginManager.exclude are not useful HOT 4
- Fix test suite to work with pytest
- Check tests don't write to the user's home directory HOT 1
- Deprecate EggBasketPluginManager and EggPluginManager
- Egg building tests leave 'build' directories behind HOT 2
- Remove PluginManager include and exclude traits
- Remove EggPluginManager, EggBasketPluginManager, PackagePluginManager HOT 1
- Add automated documentation build
- Remove PySide6-related test skips HOT 2
- EggPluginManager tests fail when run standalone HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from envisage.