X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=emacs%2Fnotmuch-hello.el;h=b8ec665db6782dc55668b7295b5c9e207aa757bc;hb=cd8cb607332b143bd5403175bed5fabe0f793b9c;hp=e2b6ce4f77f77e8f7ae7aaa9bd93d6eb6bb78294;hpb=355d24fb94d0520a9c19201ea04cd52f272f1f19;p=notmuch diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el index e2b6ce4f..b8ec665d 100644 --- a/emacs/notmuch-hello.el +++ b/emacs/notmuch-hello.el @@ -39,9 +39,12 @@ :type 'boolean :group 'notmuch-hello) -(defun notmuch-sort-saved-searches (alist) - "Generate an alphabetically sorted saved searches alist." - (sort (copy-sequence alist) (lambda (a b) (string< (car a) (car b))))) +(defun notmuch-sort-saved-searches (saved-searches) + "Generate an alphabetically sorted saved searches list." + (sort (copy-sequence saved-searches) + (lambda (a b) + (string< (notmuch-saved-search-get a :name) + (notmuch-saved-search-get b :name))))) (defcustom notmuch-saved-search-sort-function nil "Function used to sort the saved searches for the notmuch-hello view. @@ -51,8 +54,10 @@ sorting (nil) displays the saved searches in the order they are stored in `notmuch-saved-searches'. Sort alphabetically sorts the saved searches in alphabetical order. Custom sort function should be a function or a lambda expression that takes the saved -searches alist as a parameter, and returns a new saved searches -alist to be used." +searches list as a parameter, and returns a new saved searches +list to be used. For compatibility with the various saved-search +formats it should use notmuch-saved-search-get to access the +fields of the search." :type '(choice (const :tag "No sorting" nil) (const :tag "Sort alphabetically" notmuch-sort-saved-searches) (function :tag "Custom sort function" @@ -363,7 +368,8 @@ diagonal." (defun notmuch-hello-widget-search (widget &rest ignore) (notmuch-search (widget-get widget :notmuch-search-terms) - notmuch-search-oldest-first)) + (widget-get widget + :notmuch-search-oldest-first))) (defun notmuch-saved-search-count (search) (car (process-lines notmuch-command "count" search))) @@ -495,12 +501,17 @@ with `notmuch-hello-query-counts'." (widget-insert (make-string column-indent ? ))) (let* ((name (plist-get elem :name)) (query (plist-get elem :query)) + (oldest-first (case (plist-get elem :sort-order) + (newest-first nil) + (oldest-first t) + (otherwise notmuch-search-oldest-first))) (msg-count (plist-get elem :count))) (widget-insert (format "%8s " (notmuch-hello-nice-number msg-count))) (widget-create 'push-button :notify #'notmuch-hello-widget-search :notmuch-search-terms query + :notmuch-search-oldest-first oldest-first name) (setq column-indent (1+ (max 0 (- column-width (length name)))))))