From 42ac76f00843414fda2041cd5e87a1fe4aa878c7 Mon Sep 17 00:00:00 2001 From: David Botton Date: Thu, 25 Jul 2024 13:48:51 -0400 Subject: [PATCH] rename files and directories in project view --- tools/clog-builder-project-tree.lisp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tools/clog-builder-project-tree.lisp b/tools/clog-builder-project-tree.lisp index 5df7962..e07a476 100644 --- a/tools/clog-builder-project-tree.lisp +++ b/tools/clog-builder-project-tree.lisp @@ -140,6 +140,7 @@ (opd (create-div menu :content "Open in dir tree" :class *builder-menu-context-item-class*)) (ops (create-div menu :content "Open in pseudo shell" :class *builder-menu-context-item-class*)) (opo (create-div menu :content "Open in os" :class *builder-menu-context-item-class*)) + (ren (create-div menu :content "Rename directory" :class *builder-menu-context-item-class*)) (grp (create-div menu :content "Search directory" :class *builder-menu-context-item-class*))) (declare (ignore title op)) (mapcar (lambda (file-extension) @@ -166,6 +167,18 @@ (declare (ignore i)) (on-shell obj :dir item)) :cancel-event t) + (set-on-click ren (lambda (i) + (declare (ignore i)) + (let* ((*default-title-class* *builder-title-class*) + (*default-border-class* *builder-border-class*)) + (input-dialog obj (format nil "Rename ~A to?" disp) + (lambda (result) + (when result + (rename-file item (format nil "~A~A/" dir result)) + (setf item (format nil "~A~A/" dir result)) + (setf (text-value (content obj)) result))) + :title "Rename Directory"))) + :cancel-event t) (set-on-click opo (lambda (i) (declare (ignore i)) (open-file-with-os item)) @@ -197,6 +210,7 @@ (opt (create-div menu :content "Open new tab" :class *builder-menu-context-item-class*)) (ope (create-div menu :content "Open emacs" :class *builder-menu-context-item-class*)) (opo (create-div menu :content "Open os default" :class *builder-menu-context-item-class*)) + (ren (create-div menu :content "Rename" :class *builder-menu-context-item-class*)) (del (create-div menu :content "Delete" :class *builder-menu-context-item-class*))) (declare (ignore title op)) (mapcar (lambda (file-extension) @@ -227,6 +241,18 @@ (declare (ignore i)) (open-file-with-os item)) :cancel-event t) + (set-on-click ren (lambda (i) + (declare (ignore i)) + (let* ((*default-title-class* *builder-title-class*) + (*default-border-class* *builder-border-class*)) + (input-dialog obj (format nil "Rename ~A to?" disp) + (lambda (result) + (when result + (rename-file item (format nil "~A~A" (directory-namestring item) result)) + (setf item (format nil "~A~A" (directory-namestring item) result)) + (setf (text-value (content obj)) result))) + :title "Rename File"))) + :cancel-event t) (set-on-click del (lambda (i) (let* ((*default-title-class* *builder-title-class*) (*default-border-class* *builder-border-class*))