Function: image-dired-dired-edit-comment-and-tags
image-dired-dired-edit-comment-and-tags is an autoloaded, interactive
and byte-compiled function defined in image-dired-tags.el.gz.
Signature
(image-dired-dired-edit-comment-and-tags)
Documentation
Edit comment and tags of current or marked image files.
Edit comment and tags for all marked image files in an easy-to-use form.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/image/image-dired-tags.el.gz
;;;###autoload
(defun image-dired-dired-edit-comment-and-tags ()
"Edit comment and tags of current or marked image files.
Edit comment and tags for all marked image files in an
easy-to-use form."
(interactive nil dired-mode)
(setq image-dired-widget-list nil)
;; Setup buffer.
(let ((files (dired-get-marked-files)))
(pop-to-buffer-same-window "*Image-Dired Edit Meta Data*")
(kill-all-local-variables)
(let ((inhibit-read-only t))
(erase-buffer))
(remove-overlays)
;; Some help for the user.
(widget-insert
(substitute-command-keys
"\\<widget-field-keymap>
Edit comments and tags for each image. Separate multiple tags
with a comma. Move forward between fields using \\[widget-forward] \
or \\[widget-field-activate].
Move to the previous field using \\[widget-backward]. Save by
activating the \"Save\" button at the bottom of the form or
cancel the operation by activating the \"Cancel\" button.\n\n"))
;; Here comes all images and a comment and tag field for each
;; image.
(let (thumb-file img comment-widget tag-widget)
(dolist (file files)
(setq thumb-file (image-dired-thumb-name file)
img (create-image thumb-file))
(insert-image img)
(widget-insert "\n\nComment: ")
(setq comment-widget
(widget-create 'editable-field
:size 60
:format "%v "
:value (or (image-dired-get-comment file) "")))
(widget-insert "\nTags: ")
(setq tag-widget
(widget-create 'editable-field
:size 60
:format "%v "
:value (or (mapconcat
#'identity
(image-dired-list-tags file)
",") "")))
;; Save information in all widgets so that we can use it when
;; the user saves the form.
(setq image-dired-widget-list
(append image-dired-widget-list
(list (list file comment-widget tag-widget))))
(widget-insert "\n\n")))
;; Footer with Save and Cancel button.
(widget-insert "\n")
(widget-create 'push-button
:notify
(lambda (&rest _ignore)
(image-dired-save-information-from-widgets)
(bury-buffer)
(message "Done"))
"Save")
(widget-insert " ")
(widget-create 'push-button
:notify
(lambda (&rest _ignore)
(bury-buffer)
(message "Operation canceled"))
"Cancel")
(widget-insert "\n")
(use-local-map widget-keymap)
(widget-setup)
;; Jump to the first widget.
(widget-forward 1)))