Allow folders with no messages to be elided from list
authorKeith Packard <keithp@keithp.com>
Sun, 27 Dec 2009 00:34:18 +0000 (16:34 -0800)
committerCarl Worth <cworth@cworth.org>
Mon, 8 Feb 2010 22:40:25 +0000 (14:40 -0800)
This makes it easier to see folders with messages.
Eliding empty folders is togged with the 'e' binding.

Signed-off-by: Keith Packard <keithp@keithp.com>
notmuch.el

index 065ea86f6f18efa8edf5075c4c29c1e21922afab..6c9004ecfa0307519d4acd16ea8c7c580ffba2d0 100644 (file)
@@ -1447,6 +1447,7 @@ current search results AND that are tagged with the given tag."
     (define-key map "x" 'kill-this-buffer)
     (define-key map "q" 'kill-this-buffer)
     (define-key map "m" 'message-mail)
+    (define-key map "e" 'notmuch-folder-show-empty-toggle)
     (define-key map ">" 'notmuch-folder-last)
     (define-key map "<" 'notmuch-folder-first)
     (define-key map "=" 'notmuch-folder)
@@ -1523,14 +1524,32 @@ Currently available key bindings:
   (goto-char (point-max))
   (forward-line -1))
 
+(defun notmuch-folder-count (search)
+  (car (process-lines notmuch-command "count" search)))
+
+(setq notmuch-folder-show-empty t)
+
+(defun notmuch-folder-show-empty-toggle ()
+  "Toggle the listing of empty folders"
+  (interactive)
+  (setq notmuch-folder-show-empty (not notmuch-folder-show-empty))
+  (notmuch-folder))
+
 (defun notmuch-folder-add (folders)
   (if folders
-      (let ((name (car (car folders)))
+      (let* ((name (car (car folders)))
            (inhibit-read-only t)
-           (search (cdr (car folders))))
-       (insert name)
-       (indent-to 16 1)
-       (call-process notmuch-command nil t nil "count" search)
+           (search (cdr (car folders)))
+           (count (notmuch-folder-count search)))
+       (if (or notmuch-folder-show-empty
+               (not (equal count "0")))
+           (progn
+             (insert name)
+             (indent-to 16 1)
+             (insert count)
+             (insert "\n")
+             )
+         )
        (notmuch-folder-add (cdr folders)))))
 
 (defun notmuch-folder-find-name ()