-
-
Notifications
You must be signed in to change notification settings - Fork 626
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
Setting search (experimental) #16502
Conversation
See test results for failed build of commit 66660defc8 |
@ABuffEr thanks for this work. Here are some points to consider from #872 raised by Reef. Some UX points to consider:
Approach ideas on the table sofar in addition to what you described:
Drawbacks:
Second alternative approach, more consistent with what other software do:
Seems most promising in my view, maybe even in combination with the first alternative. The only drawback I see is that the dropdown menu might be a bit confusing.
Third alternative approach
|
Hi @Adriani90, |
Any progress on this? Wider feedback on the UX is encouraged from the community |
Hi, |
@ABuffEr - do you plan to do any further work? Otherwise I think this should be closed as Abandoned |
Hi, |
Link to issue number:
Possible experimental implementation for #16500
Summary of the issue:
NVDA does not provide any search/filter in settings.
Description of user facing changes
User can type in the search field, above the category list, and wait that the first result is focused.
Then, he can press F3 to move on other results.
Description of development approach
First, this PR is just a proof-of-concept; it's not completed, and I don't know whether I'll be able to continue it further.
I publish it today with the hope this work would be useful in any way.; so contributions or completely new PRs based on it are absolutely welcome.
So, what I did and how:
I worked only under MultiCategorySettingsDialog class.
In makeSettings, added a search field with a timer, that launches search after 500 ms after user stops typing.
In onFilterEditTextChange, the timer is restarted each time user digit a new char.
In onCharHook, F3 calls onFilterEditTextReady to get new results (or cycle over them).
In onFilterEditTextReady, the search field value is split into a list (to implement OR search), and I use itertools.cycle to manage circularly the result generator (and to cache its values). The method takes care also to adjust focus and selection of results.
In searchGenerator there are two main parts: the for loop that loops over categories, that creates a generator for each category panel and yields results as long as there are ones; and the inner generator, that recursively searches on category panel controls to find one with value/label matching any search terms (via searchInLabel method), and yields a tuple as result, containing the matching wx control and the index (on first item) or the wx control to move focus to.
(see known issues)
Testing strategy:
Manual, searching various terms like exit, pitch, color, bookmark, and so on.
Known issues with pull request:
Code Review Checklist: