emacs: notmuch-hello: Make viewing of all tags conditional.

And off by default. There's a notmuch-hello-show-tags option in
customize to toggle the default setting, as well as buttons to
persistently toggle the visibility for the current session.

I have enough tags in my database that it's quite a bit faster for
notmuch-hello to come up without showing the tags.
This commit is contained in:
Carl Worth 2010-04-26 20:06:50 -07:00
parent 7fa6306cae
commit 7df0e611df

View file

@ -57,6 +57,11 @@
:type 'boolean
:group 'notmuch)
(defcustom notmuch-hello-show-tags nil
"Should all tags be shown in the notmuch-hello view?"
:type 'boolean
:group 'notmuch)
(defface notmuch-hello-logo-background
'((((class color)
(background dark))
@ -339,12 +344,26 @@ diagonal."
(indent-rigidly start (point) notmuch-hello-indent)))
(when alltags-alist
(widget-insert "\nAll tags:\n\n")
(let ((start (point)))
(setq found-target-pos (notmuch-hello-insert-tags alltags-alist widest target))
(if (not final-target-pos)
(setq final-target-pos found-target-pos))
(indent-rigidly start (point) notmuch-hello-indent))))
(if notmuch-hello-show-tags
(progn
(widget-insert "\nAll tags: ")
(widget-create 'push-button
:notify (lambda (widget &rest ignore)
(setq notmuch-hello-show-tags nil)
(notmuch-hello-update))
"hide")
(widget-insert "\n\n")
(let ((start (point)))
(setq found-target-pos (notmuch-hello-insert-tags alltags-alist widest target))
(if (not final-target-pos)
(setq final-target-pos found-target-pos))
(indent-rigidly start (point) notmuch-hello-indent)))
(widget-insert "\n")
(widget-create 'push-button
:notify (lambda (widget &rest ignore)
(setq notmuch-hello-show-tags t)
(notmuch-hello-update))
"Show all tags"))))
(let ((start (point)))
(widget-insert "\n\n")