keep collapsed state in view while changing layers; closes #4
This commit is contained in:
parent
430bbaec7b
commit
093f648cc2
@ -209,9 +209,8 @@ func (tree *FileTree) MarkRemoved(path string) error {
|
||||
}
|
||||
|
||||
func StackRange(trees []*FileTree, index int) *FileTree {
|
||||
// TMP TMP TMP: TODO: later change the index of both of these to 0
|
||||
tree := trees[1].Copy()
|
||||
for idx := 1; idx <= index; idx++ {
|
||||
tree := trees[0].Copy()
|
||||
for idx := 0; idx <= index; idx++ {
|
||||
tree.Stack(trees[idx])
|
||||
}
|
||||
return tree
|
||||
|
@ -55,13 +55,26 @@ func (view *FileTreeView) Setup(v *gocui.View) error {
|
||||
}
|
||||
|
||||
func (view *FileTreeView) setLayer(layerIndex int) error {
|
||||
view.Tree = filetree.StackRange(view.RefTrees, layerIndex-1)
|
||||
view.Tree.Compare(view.RefTrees[layerIndex])
|
||||
newTree := filetree.StackRange(view.RefTrees, layerIndex-1)
|
||||
newTree.Compare(view.RefTrees[layerIndex])
|
||||
|
||||
visitor := func(node *filetree.FileNode) error {
|
||||
if node.Collapsed {
|
||||
newNode, err := newTree.GetNode(node.Path())
|
||||
if err == nil {
|
||||
newNode.Collapsed = true
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
view.Tree.Visit(visitor)
|
||||
|
||||
// v, _ := view.gui.View("debug")
|
||||
// v.Clear()
|
||||
// _, _ = fmt.Fprintln(v, view.RefTrees[layerIndex])
|
||||
view.view.SetCursor(0, 0)
|
||||
view.TreeIndex = 0
|
||||
view.Tree = newTree
|
||||
return view.Render()
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user