From 1fc4782a749b434841a638261b32a8d47103750e Mon Sep 17 00:00:00 2001 From: KevsterAmp Date: Sun, 17 Nov 2024 09:21:30 +0800 Subject: [PATCH 1/2] draft initial change for database improvement If there are no selected database (highlighted db node should be expanded): function will search on database names only else, the function will search within the tables of the selected database --- components/Tree.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/components/Tree.go b/components/Tree.go index 17ac075..2bb12e2 100644 --- a/components/Tree.go +++ b/components/Tree.go @@ -326,28 +326,33 @@ func (tree *Tree) databasesToNodes(children map[string][]string, node *tview.Tre func (tree *Tree) search(searchText string) { rootNode := tree.GetRoot() + currNode := tree.GetCurrentNode() lowerSearchText := strings.ToLower(searchText) tree.state.searchFoundNodes = []*tview.TreeNode{} if lowerSearchText == "" { rootNode.Walk(func(_, parent *tview.TreeNode) bool { if parent != nil && parent != rootNode && parent.IsExpanded() { - parent.SetExpanded(false) + parent.SetExpanded(true) } return true }) return } - // filteredNodes := make([]*TreeStateNode, 0, len(treeNodes)) + var searchStartNode *tview.TreeNode + if currNode != nil && currNode.IsExpanded() { + // search between tables if theres a curentdatabase selected + searchStartNode = currNode + } else { + // if there's no current database selected, search within the database names only + searchStartNode = rootNode + } - rootNode.Walk(func(node, parent *tview.TreeNode) bool { + searchStartNode.Walk(func(node, parent *tview.TreeNode) bool { nodeText := strings.ToLower(node.GetText()) if strings.Contains(nodeText, lowerSearchText) { - if parent != nil { - parent.SetExpanded(true) - } tree.state.searchFoundNodes = append(tree.state.searchFoundNodes, node) tree.SetCurrentNode(node) tree.state.currentFocusFoundNode = node From acde06a2191a0684b879f2e503d2587bb2fc8d1d Mon Sep 17 00:00:00 2001 From: KevsterAmp Date: Sun, 17 Nov 2024 09:22:55 +0800 Subject: [PATCH 2/2] set parent.SetExpanded to false --- components/Tree.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/Tree.go b/components/Tree.go index 2bb12e2..d25b707 100644 --- a/components/Tree.go +++ b/components/Tree.go @@ -333,7 +333,7 @@ func (tree *Tree) search(searchText string) { if lowerSearchText == "" { rootNode.Walk(func(_, parent *tview.TreeNode) bool { if parent != nil && parent != rootNode && parent.IsExpanded() { - parent.SetExpanded(true) + parent.SetExpanded(false) } return true })