notmuch-hello/jump: allow saved searches to specify unthreaded mode

Saved searches in notmuch-hello and notmuch-jump can specify whether
to use search mode or tree mode. This adds an option for them to
specify unthreaded mode.
This commit is contained in:
Mark Walters 2020-02-27 17:16:52 +00:00 committed by David Bremner
parent c578c32e3b
commit 98e9bda17f
2 changed files with 26 additions and 13 deletions

View file

@ -32,6 +32,9 @@
(declare-function notmuch-poll "notmuch" ()) (declare-function notmuch-poll "notmuch" ())
(declare-function notmuch-tree "notmuch-tree" (declare-function notmuch-tree "notmuch-tree"
(&optional query query-context target buffer-name open-target unthreaded)) (&optional query query-context target buffer-name open-target unthreaded))
(declare-function notmuch-unthreaded
(&optional query query-context target buffer-name open-target))
(defun notmuch-saved-search-get (saved-search field) (defun notmuch-saved-search-get (saved-search field)
"Get FIELD from SAVED-SEARCH. "Get FIELD from SAVED-SEARCH.
@ -99,7 +102,8 @@ searches so they still work in customize."
(group :format "%v" :inline t (const :format "" :search-type) (group :format "%v" :inline t (const :format "" :search-type)
(choice :tag " Search Type" (choice :tag " Search Type"
(const :tag "Search mode" nil) (const :tag "Search mode" nil)
(const :tag "Tree mode" tree)))))) (const :tag "Tree mode" tree)
(const :tag "Unthreaded mode" unthreaded))))))
(defcustom notmuch-saved-searches (defcustom notmuch-saved-searches
`((:name "inbox" :query "tag:inbox" :key ,(kbd "i")) `((:name "inbox" :query "tag:inbox" :key ,(kbd "i"))
@ -122,10 +126,10 @@ a plist. Supported properties are
:sort-order Specify the sort order to be used for the search. :sort-order Specify the sort order to be used for the search.
Possible values are 'oldest-first 'newest-first or Possible values are 'oldest-first 'newest-first or
nil. Nil means use the default sort order. nil. Nil means use the default sort order.
:search-type Specify whether to run the search in search-mode :search-type Specify whether to run the search in search-mode,
or tree mode. Set to 'tree to specify tree tree mode or unthreaded mode. Set to 'tree to specify tree
mode, set to nil (or anything except tree) to mode, 'unthreaded to specify unthreaded mode, and set to nil
specify search mode. (or anything except tree and unthreaded) to specify search mode.
Other accepted forms are a cons cell of the form (NAME . QUERY) Other accepted forms are a cons cell of the form (NAME . QUERY)
or a list of the form (NAME QUERY COUNT-QUERY)." or a list of the form (NAME QUERY COUNT-QUERY)."
@ -437,13 +441,18 @@ diagonal."
append (notmuch-hello-reflect-generate-row ncols nrows row list)))) append (notmuch-hello-reflect-generate-row ncols nrows row list))))
(defun notmuch-hello-widget-search (widget &rest ignore) (defun notmuch-hello-widget-search (widget &rest ignore)
(if (widget-get widget :notmuch-search-type) (cond
(notmuch-tree (widget-get widget ((eq (widget-get widget :notmuch-search-type) 'tree)
:notmuch-search-terms)) (notmuch-tree (widget-get widget
:notmuch-search-terms)))
((eq (widget-get widget :notmuch-search-type) 'unthreaded)
(notmuch-unthreaded (widget-get widget
:notmuch-search-terms)))
(t
(notmuch-search (widget-get widget (notmuch-search (widget-get widget
:notmuch-search-terms) :notmuch-search-terms)
(widget-get widget (widget-get widget
:notmuch-search-oldest-first)))) :notmuch-search-oldest-first)))))
(defun notmuch-saved-search-count (search) (defun notmuch-saved-search-count (search)
(car (process-lines notmuch-command "count" search))) (car (process-lines notmuch-command "count" search)))
@ -579,7 +588,7 @@ with `notmuch-hello-query-counts'."
(newest-first nil) (newest-first nil)
(oldest-first t) (oldest-first t)
(otherwise notmuch-search-oldest-first))) (otherwise notmuch-search-oldest-first)))
(search-type (eq (plist-get elem :search-type) 'tree)) (search-type (plist-get elem :search-type))
(msg-count (plist-get elem :count))) (msg-count (plist-get elem :count)))
(widget-insert (format "%8s " (widget-insert (format "%8s "
(notmuch-hello-nice-number msg-count))) (notmuch-hello-nice-number msg-count)))

View file

@ -56,9 +56,13 @@ fast way to jump to a saved search from anywhere in Notmuch."
(oldest-first t) (oldest-first t)
(otherwise (default-value 'notmuch-search-oldest-first))))) (otherwise (default-value 'notmuch-search-oldest-first)))))
(push (list key name (push (list key name
(if (eq (plist-get saved-search :search-type) 'tree) (cond
`(lambda () (notmuch-tree ',query)) ((eq (plist-get saved-search :search-type) 'tree)
`(lambda () (notmuch-search ',query ',oldest-first)))) `(lambda () (notmuch-tree ',query)))
((eq (plist-get saved-search :search-type) 'unthreaded)
`(lambda () (notmuch-unthreaded ',query)))
(t
`(lambda () (notmuch-search ',query ',oldest-first)))))
action-map))))) action-map)))))
(setq action-map (nreverse action-map)) (setq action-map (nreverse action-map))