summaryrefslogtreecommitdiffstats
path: root/runtime/ui/view/filetree.go
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ui/view/filetree.go')
-rw-r--r--runtime/ui/view/filetree.go17
1 files changed, 16 insertions, 1 deletions
diff --git a/runtime/ui/view/filetree.go b/runtime/ui/view/filetree.go
index 62439e9..e92be37 100644
--- a/runtime/ui/view/filetree.go
+++ b/runtime/ui/view/filetree.go
@@ -24,7 +24,7 @@ type FileTree struct {
gui *gocui.Gui
view *gocui.View
header *gocui.View
- vm *viewmodel.FileTree
+ vm *viewmodel.FileTreeViewModel
title string
filterRegex *regexp.Regexp
@@ -99,6 +99,11 @@ func (v *FileTree) Setup(view, header *gocui.View) error {
Display: "Collapse all dir",
},
{
+ ConfigKeys: []string{"keybinding.toggle-sort-order"},
+ OnAction: v.toggleSortOrder,
+ Display: "Toggle sort order",
+ },
+ {
ConfigKeys: []string{"keybinding.toggle-added-files"},
OnAction: func() error { return v.toggleShowDiffType(filetree.Added) },
IsSelected: func() bool { return !v.vm.HiddenDiffTypes[filetree.Added] },
@@ -288,6 +293,16 @@ func (v *FileTree) toggleCollapseAll() error {
return v.Render()
}
+func (v *FileTree) toggleSortOrder() error {
+ err := v.vm.ToggleSortOrder()
+ if err != nil {
+ return err
+ }
+ v.resetCursor()
+ _ = v.Update()
+ return v.Render()
+}
+
func (v *FileTree) toggleWrapTree() error {
v.view.Wrap = !v.view.Wrap
return nil