From 7df0e611df9275bf2330bc73895e2d729a157adc Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 26 Apr 2010 20:06:50 -0700 Subject: [PATCH] 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. --- emacs/notmuch-hello.el | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el index 09bc6b72..936d5466 100644 --- a/emacs/notmuch-hello.el +++ b/emacs/notmuch-hello.el @@ -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")