diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2021-03-15 23:00:20 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2021-03-30 21:57:00 +1100 |
commit | c9de6c003bf28c7f5fdb5ed7aaf70793836b324d (patch) | |
tree | 5fc7aecda7ff31f69dc4bfd5464bd4a4f0420067 /pkg/gui/files_panel.go | |
parent | 418621a9ff41f1282e471ce2250f62c9e1d2bdbf (diff) |
support some more things
Diffstat (limited to 'pkg/gui/files_panel.go')
-rw-r--r-- | pkg/gui/files_panel.go | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go index d443a7a8f..772b05cf3 100644 --- a/pkg/gui/files_panel.go +++ b/pkg/gui/files_panel.go @@ -43,6 +43,15 @@ func (gui *Gui) getSelectedFile() *models.File { return node.File } +func (gui *Gui) getSelectedPath() string { + node := gui.getSelectedStatusNode() + if node == nil { + return "" + } + + return node.GetPath() +} + func (gui *Gui) selectFile(alreadySelected bool) error { gui.getFilesView().FocusPoint(0, gui.State.Panels.Files.SelectedLineIdx) @@ -104,7 +113,7 @@ func (gui *Gui) refreshFilesAndSubmodules() error { gui.Mutexes.RefreshingFilesMutex.Unlock() }() - selectedFile := gui.getSelectedFile() + selectedPath := gui.getSelectedPath() filesView := gui.getFilesView() if filesView == nil { @@ -131,8 +140,8 @@ func (gui *Gui) refreshFilesAndSubmodules() error { } if gui.currentContext().GetKey() == FILES_CONTEXT_KEY || (g.CurrentView() == gui.getMainView() && g.CurrentView().Context == MAIN_MERGING_CONTEXT_KEY) { - newSelectedFile := gui.getSelectedFile() - alreadySelected := selectedFile != nil && newSelectedFile != nil && newSelectedFile.Name == selectedFile.Name + newSelectedPath := gui.getSelectedPath() + alreadySelected := selectedPath != "" && newSelectedPath == selectedPath if err := gui.selectFile(alreadySelected); err != nil { return err } @@ -461,20 +470,25 @@ func (gui *Gui) editFile(filename string) error { } func (gui *Gui) handleFileEdit(g *gocui.Gui, v *gocui.View) error { - file := gui.getSelectedFile() - if file == nil { + node := gui.getSelectedStatusNode() + if node == nil { return nil } - return gui.editFile(file.Name) + if node.File == nil { + return gui.createErrorPanel(gui.Tr.ErrCannotEditDirectory) + } + + return gui.editFile(node.GetPath()) } func (gui *Gui) handleFileOpen(g *gocui.Gui, v *gocui.View) error { - file := gui.getSelectedFile() - if file == nil { + node := gui.getSelectedStatusNode() + if node == nil { return nil } - return gui.openFile(file.Name) + + return gui.openFile(node.GetPath()) } func (gui *Gui) handleRefreshFiles(g *gocui.Gui, v *gocui.View) error { |