Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Introduce search history in NvDA Find dialog #8482
This is the "issueformation" (combination of the words "issue" and "transformation") of the PR #6484:
Suppose one wishes to find multiple texts from different applications. Currently, in order to find new text in any application that supports cursor manager, users must enter the new text. In case users may wish to find something they've searched before, a search history in the form of a combo box should be provided.
Steps to reproduce:
Users must enter new text again.
Users can choose items from search history.
NVDA Installed/portable/running from source:
Windows 10 Version 1803
Name and version of other software in use when reproducing the issue:
Other information about your system:
Does the issue still occur after restarting your PC?
Have you tried any other versions of NVDA?
Yes (perpetual as this is a new feature)
One way to implement this is via wx.ComboBox and hosting search history (a list/priority queue) inside Cursor Manager class (the base class, that is). When Find dialog opens, present this combo box with entries coming from search history list, with find next (NvDA+F3)/previous (NVDA+Shift+F3) searching the topmost item.
Special corner case: what if users type something that NVDA knows is already part of search history (the whole text, that is)? If so, bump this text to the top if it isn't.
Another case: suppose there is already an entry in search history and the user types the same entry that only differs in case. If so, the best path might be to compare the texts regardless of case, or if case sensitivity is turned on, just prepend the new variant.
For a code example, see StationPlaylist Studio add-on.