From 9d2bd542ba085b7edee098e85fa76ad7416d42f6 Mon Sep 17 00:00:00 2001 From: zjzhang Date: Mon, 21 Oct 2024 20:31:10 +0800 Subject: [PATCH] fix EntryNode issues --- explorer/file_chooser.go | 7 ++++++- explorer/tree.go | 12 ++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/explorer/file_chooser.go b/explorer/file_chooser.go index 23bf113..5499789 100644 --- a/explorer/file_chooser.go +++ b/explorer/file_chooser.go @@ -231,7 +231,12 @@ func (vw *FileChooserDialog) OnNavTo(intent view.Intent) error { } vw.fileExplorer.bottomPanel.addFolderCb = func(folderName string) error { - return vw.fileExplorer.viewer.entryTree.AddChild(folderName, FolderNode) + err := vw.fileExplorer.viewer.entryTree.AddChild(folderName, FolderNode) + if err == nil { + vw.fileExplorer.viewer.refresh() + } + + return err } if f, ok := intent.Params["filter"]; ok { diff --git a/explorer/tree.go b/explorer/tree.go index 098838e..6d70b53 100644 --- a/explorer/tree.go +++ b/explorer/tree.go @@ -165,8 +165,8 @@ func (n *EntryNode) AddChild(name string, kind NodeKind) error { return errors.New("empty file/folder name") } - if err := n.checkDuplicate(name); err != nil { - return err + if n.exists(name) { + return errors.New("duplicated file/folder name") } path := filepath.Join(n.Path, name) @@ -194,11 +194,11 @@ func (n *EntryNode) AddChild(name string, kind NodeKind) error { return nil } -func (n *EntryNode) checkDuplicate(name string) error { +func (n *EntryNode) exists(name string) bool { filename := filepath.Join(n.Path, name) _, err := os.Stat(filename) - return err + return err == nil } // Update set a new name for the current file/folder. @@ -211,8 +211,8 @@ func (n *EntryNode) UpdateName(newName string) error { return nil } - if err := n.Parent.checkDuplicate(newName); err != nil { - return err + if n.Parent.exists(newName) { + return errors.New("duplicated file/folder name") } newPath := filepath.Join(filepath.Dir(n.Path), newName)