mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-27 20:32:53 -08:00
directory and file buttons
This commit is contained in:
parent
2dbc39481e
commit
09aa23bac8
6 changed files with 230 additions and 123 deletions
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
(defun populate-dir-win (panel d)
|
||||
(let ((dir (directory-namestring (uiop:truename* d))))
|
||||
(setf (current-dir panel) dir)
|
||||
;; Dirs
|
||||
(setf (inner-html (folders panel)) "")
|
||||
(add-select-option (folders panel)
|
||||
|
|
@ -18,8 +19,56 @@
|
|||
|
||||
(defun on-select-dir-win (panel)
|
||||
(let ((item (value (files panel))))
|
||||
(cond ((and (> (length item) 5)
|
||||
(equal (subseq item (- (length item) 5)) ".clog"))
|
||||
(on-new-builder-panel panel :open-file item))
|
||||
(t
|
||||
(on-open-file panel :open-file item)))))
|
||||
(unless (equal item "")
|
||||
(cond ((and (> (length item) 5)
|
||||
(equal (subseq item (- (length item) 5)) ".clog"))
|
||||
(on-new-builder-panel panel :open-file item))
|
||||
(t
|
||||
(on-open-file panel :open-file item))))))
|
||||
|
||||
(defun on-delete-dir-win (panel)
|
||||
(let ((item (value (files panel))))
|
||||
(unless (equal item "")
|
||||
(confirm-dialog panel (format nil "Delete ~A?" item)
|
||||
(lambda (result)
|
||||
(when result
|
||||
(uiop:delete-file-if-exists item)
|
||||
(populate-dir-win panel (directory-namestring item))))))))
|
||||
|
||||
(defun on-new-dir-dir-win (panel)
|
||||
(input-dialog panel "Name of new directory?"
|
||||
(lambda (result)
|
||||
(when result
|
||||
(ensure-directories-exist (format nil "~A~A/" (current-dir panel) result))
|
||||
(populate-dir-win panel (current-dir panel))))
|
||||
:title "New Directory"))
|
||||
|
||||
(defun on-delete-dir-dir-win (panel d)
|
||||
(let ((dir (directory-namestring (uiop:truename* d))))
|
||||
(confirm-dialog panel (format nil "Delete ~A?" dir)
|
||||
(lambda (result)
|
||||
(when result
|
||||
(handler-case
|
||||
(uiop:delete-empty-directory dir)
|
||||
(error ()
|
||||
(alert-toast panel "Directory Delete Failure"
|
||||
(format nil "Failed to delete ~A, perhaps not empty." dir))))
|
||||
(populate-dir-win panel (current-dir panel)))))))
|
||||
|
||||
(defun on-rename-dir-dir-win (panel d)
|
||||
(input-dialog panel "Rename directory to?"
|
||||
(lambda (result)
|
||||
(when result
|
||||
(rename-file d (format nil "~A~A/" (current-dir panel) result))
|
||||
(populate-dir-win panel (current-dir panel))))
|
||||
:title "Rename Directory"))
|
||||
|
||||
(defun on-rename-dir-win (panel)
|
||||
(let ((item (value (files panel))))
|
||||
(unless (equal item "")
|
||||
(input-dialog panel "Rename file to?"
|
||||
(lambda (result)
|
||||
(when result
|
||||
(rename-file item (format nil "~A~A" (directory-namestring item) result))
|
||||
(populate-dir-win panel (current-dir panel))))
|
||||
:title "Rename File"))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue