emacs: hello: allow deleting individual searches in the history

This commit adds an extra button at the end of the search entries that
allows deleting that individual search from the history. A short
confirmation («y» or «n») is made before taking action.
This commit is contained in:
Servilio Afre Puentes 2013-06-07 16:57:46 -04:00 committed by David Bremner
parent 486340e28e
commit 10aac89911

View file

@ -286,6 +286,15 @@ afterwards.")
(message "Saved '%s' as '%s'." search name) (message "Saved '%s' as '%s'." search name)
(notmuch-hello-update))) (notmuch-hello-update)))
(defun notmuch-hello-delete-search-from-history (widget)
(interactive)
(let ((search (widget-value
(symbol-value
(widget-get widget :notmuch-saved-search-widget)))))
(setq notmuch-search-history (delete search
notmuch-search-history))
(notmuch-hello-update)))
(defun notmuch-hello-longest-label (searches-alist) (defun notmuch-hello-longest-label (searches-alist)
(or (loop for elem in searches-alist (or (loop for elem in searches-alist
maximize (length (car elem))) maximize (length (car elem)))
@ -624,7 +633,12 @@ Complete list of currently available key bindings:
;; `[save]' button. 6 ;; `[save]' button. 6
;; for the `[save]' ;; for the `[save]'
;; button. ;; button.
1 6)) 1 6
;; 1 for the space
;; before the `[del]'
;; button. 5 for the
;; `[del]' button.
1 5))
:action (lambda (widget &rest ignore) :action (lambda (widget &rest ignore)
(notmuch-hello-search (widget-value widget))) (notmuch-hello-search (widget-value widget)))
search)) search))
@ -633,7 +647,14 @@ Complete list of currently available key bindings:
:notify (lambda (widget &rest ignore) :notify (lambda (widget &rest ignore)
(notmuch-hello-add-saved-search widget)) (notmuch-hello-add-saved-search widget))
:notmuch-saved-search-widget widget-symbol :notmuch-saved-search-widget widget-symbol
"save")) "save")
(widget-insert " ")
(widget-create 'push-button
:notify (lambda (widget &rest ignore)
(when (y-or-n-p "Are you sure you want to delete this search? ")
(notmuch-hello-delete-search-from-history widget)))
:notmuch-saved-search-widget widget-symbol
"del"))
(widget-insert "\n")) (widget-insert "\n"))
(indent-rigidly start (point) notmuch-hello-indent)) (indent-rigidly start (point) notmuch-hello-indent))
nil)) nil))