175b694a4d
Searching the Global Database although is enough but I have felt a need to have a quick and fast search option to search the current buffer. Buffer Search is also one of the views It can be only turned on if the File Browser has focus. ( Thinking of making it global ). The Searching is done through the fuzzy module. FileNode now implements the Source Interface. The Changed Function of the Search Bar checks for text changes and then modifies the Matches Variable which is used by the Update Function to Draw the Results. The Results have the Matching Characters Highlighted Differently. Maximum of 15 results are displayed to avoid lag. Upon Selecting the Result through the Search Bar navigation is possible and selection of the item is done the same way it works for file Browser. After Selection the Focus is returned Back to the File Browser. For The Tracks only the title is used for searching.
26 lines
701 B
Go
26 lines
701 B
Go
package ui
|
|
|
|
// The Focus Map Helps to keep track of which UI Element Currently Has the Focus It can be queried to get the Current
|
|
// UI Element with Focus and also can set UI Focus keep in mind that it isn't Focus Map that is Responsible to change
|
|
// the Focus that is Done through the Update Function of UI.ExpandedView */
|
|
var FocusMap map[string]bool
|
|
|
|
func GenerateFocusMap() {
|
|
FocusMap = make(map[string]bool)
|
|
FocusMap["Playlist"] = true
|
|
FocusMap["FileBrowser"] = false
|
|
FocusMap["SearchView"] = false
|
|
FocusMap["BuffSearchView"] = false
|
|
}
|
|
|
|
func HasFocus(s string) bool {
|
|
return FocusMap[s]
|
|
}
|
|
|
|
func SetFocus(s string) {
|
|
for k := range FocusMap {
|
|
FocusMap[k] = false
|
|
}
|
|
FocusMap[s] = true
|
|
}
|