This is used by the the notmuch-search command notmuch-tree-from-search-current-query which now keeps the sort order the same when calling tree mode with the current search query.
It also uses the customize variable notmuch-search-oldest-first as the default for sort order of a tree search (only relevant for interactive use). --- emacs/notmuch-tree.el | 21 +++++++++++++++------ emacs/notmuch.el | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el index 6afed76..b9d9b91 100644 --- a/emacs/notmuch-tree.el +++ b/emacs/notmuch-tree.el @@ -565,7 +565,9 @@ (defun notmuch-tree-refresh-view () (erase-buffer) (notmuch-tree-worker basic-query query-context - target))) + target + nil + notmuch-tree-oldest-first))) (defun notmuch-tree-toggle-order () "Toggle the current search order. @@ -865,7 +867,7 @@ (defun notmuch-tree-process-filter (proc string) (notmuch-sexp-parse-partial-list 'notmuch-tree-insert-forest-thread results-buf))))) -(defun notmuch-tree-worker (basic-query &optional query-context target open-target) +(defun notmuch-tree-worker (basic-query &optional query-context target open-target oldest-first) "Insert the tree view of the search in the current buffer. This is is a helper function for notmuch-tree. The arguments are @@ -876,6 +878,7 @@ (defun notmuch-tree-worker (basic-query &optional query-context target open-targ (setq notmuch-tree-query-context query-context) (setq notmuch-tree-target-msg target) (setq notmuch-tree-open-target open-target) + (setq notmuch-tree-oldest-first oldest-first) (erase-buffer) (goto-char (point-min)) @@ -911,7 +914,7 @@ (defun notmuch-tree-get-query () ")") notmuch-tree-basic-query)) -(defun notmuch-tree (&optional query query-context target buffer-name open-target) +(defun notmuch-tree (&optional query query-context target buffer-name open-target oldest-first) "Display threads matching QUERY in Tree View. The arguments are: @@ -924,8 +927,14 @@ (defun notmuch-tree (&optional query query-context target buffer-name open-targe current if it appears in the tree view results. BUFFER-NAME: the name of the buffer to display the tree view. If it is nil \"*notmuch-tree\" followed by QUERY is used. - OPEN-TARGET: If TRUE open the target message in the message pane." - (interactive) + OPEN-TARGET: If TRUE open the target message in the message pane. + OLDEST-FIRST: If TRUE display threads sorted oldest first" + (interactive + (list + ;; Prompt for a query + nil + ;; use default search order + nil nil nil nil (default-value 'notmuch-search-oldest-first))) (if (null query) (setq query (notmuch-read-query "Notmuch tree view search: "))) (let ((buffer (get-buffer-create (generate-new-buffer-name @@ -937,7 +946,7 @@ (defun notmuch-tree (&optional query query-context target buffer-name open-targe ;; Don't track undo information for this buffer (set 'buffer-undo-list t) - (notmuch-tree-worker query query-context target open-target) + (notmuch-tree-worker query query-context target open-target oldest-first) (setq truncate-lines t)) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 6564816..f1035dc 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -478,7 +478,7 @@ (defun notmuch-search-show-thread (&optional elide-toggle) (defun notmuch-tree-from-search-current-query () "Call notmuch tree with the current query" (interactive) - (notmuch-tree notmuch-search-query-string)) + (notmuch-tree notmuch-search-query-string nil nil nil nil notmuch-search-oldest-first)) (defun notmuch-tree-from-search-thread () "Show the selected thread with notmuch-tree" -- 2.1.4