Skip to content

Commit

Permalink
Fixed basic search via / in cmd line
Browse files Browse the repository at this point in the history
  • Loading branch information
drcynic committed Jan 3, 2024
1 parent 8992c36 commit 6f70a39
Showing 1 changed file with 24 additions and 7 deletions.
31 changes: 24 additions & 7 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,21 @@ type DatasetEntry struct {
dataset dicom.Dataset
}

func findNodeRecursive(node *tview.TreeNode, searchText string) *tview.TreeNode {
if strings.Contains(strings.ToLower(node.GetText()), searchText) {
return node
}

for _, child := range node.GetChildren() {
foundNode := findNodeRecursive(child, searchText)
if foundNode != nil {
return foundNode
}
}

return nil
}

func main() {
var args args
p := arg.MustParse(&args)
Expand Down Expand Up @@ -107,6 +122,10 @@ func main() {
return nil
}
}
if strings.HasPrefix(cmdlineText, "/") {
app.SetFocus(tree)
return nil
}
}

return event
Expand All @@ -116,14 +135,12 @@ func main() {
cmdlineText := text // cmdline.GetText()
if strings.HasPrefix(cmdlineText, "/") && len(cmdlineText) > 1 {
searchText := cmdlineText[1:]
statusLine.SetText(searchText)
searchText = strings.ToLower(searchText)
for _, child := range root.GetChildren() {
for _, element := range child.GetChildren() {
if strings.Contains(strings.ToLower(element.GetText()), searchText) {
tree.SetCurrentNode(element)
break
}
}
foundNode := findNodeRecursive(root, searchText)
if foundNode != nil {
root.ExpandAll() // todo: only expand way to node
tree.SetCurrentNode(foundNode)
}
}
})
Expand Down

0 comments on commit 6f70a39

Please sign in to comment.