X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-show.el;h=aa9cceedd0e5c9dbcb96e1505d54f23cf80e409e;hb=d50171d1cc575a41bf620c55853ade65d0edfad8;hp=33845d3972cc62f58849813add8f850d517b1be1;hpb=48766fca71502fc5ff0cfc594758b6d2af47cb9d;p=notmuch diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 33845d39..aa9cceed 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -126,6 +126,11 @@ indentation." (const :tag "View interactively" notmuch-show-interactively-view-part))) +(defcustom notmuch-show-only-matching-messages nil + "Only matching messages are shown by default." + :type 'boolean + :group 'notmuch-show) + (defvar notmuch-show-thread-id nil) (make-variable-buffer-local 'notmuch-show-thread-id) (put 'notmuch-show-thread-id 'permanent-local t) @@ -1032,6 +1037,12 @@ function is used." ;; Set the default value for `notmuch-show-process-crypto' in this ;; buffer. (setq notmuch-show-process-crypto notmuch-crypto-process-mime) + ;; Set the default value for + ;; `notmuch-show-elide-non-matching-messages' in this buffer. If + ;; there is a prefix argument, invert the default. + (setq notmuch-show-elide-non-matching-messages notmuch-show-only-matching-messages) + (if current-prefix-arg + (setq notmuch-show-elide-non-matching-messages (not notmuch-show-elide-non-matching-messages))) (setq notmuch-show-thread-id thread-id notmuch-show-parent-buffer parent-buffer @@ -1113,7 +1124,7 @@ This includes: Refreshes the current view, observing changes in display preferences. If RETAIN-STATE is non-nil then the state of the buffer is stored and re-applied after the refresh." - (interactive) + (interactive "P") (let ((inhibit-read-only t) state) (if retain-state @@ -1679,32 +1690,12 @@ argument, hide all of the messages." (interactive) (backward-button 1)) -(defun notmuch-show-tag-thread-internal (tag &optional remove) - "Add tag to the current set of messages. - -If the remove switch is given, tags will be removed instead of -added." - (goto-char (point-min)) - (let ((op (if remove "-" "+"))) - (loop do (notmuch-show-tag-message (concat op tag)) - until (not (notmuch-show-goto-message-next))))) - -(defun notmuch-show-add-tag-thread (tag) - "Add tag to all messages in the current thread." - (interactive) - (notmuch-show-tag-thread-internal tag)) - -(defun notmuch-show-remove-tag-thread (tag) - "Remove tag from all messages in the current thread." - (interactive) - (notmuch-show-tag-thread-internal tag t)) - (defun notmuch-show-next-thread (&optional show-next) "Move to the next item in the search results, if any." (interactive "P") (let ((parent-buffer notmuch-show-parent-buffer)) (notmuch-kill-this-buffer) - (when parent-buffer + (when (buffer-live-p parent-buffer) (switch-to-buffer parent-buffer) (notmuch-search-next-thread) (if show-next @@ -1726,9 +1717,8 @@ being delivered to the same thread. It does not archive the entire thread, but only the messages shown in the current buffer." (interactive "P") - (if unarchive - (notmuch-show-add-tag-thread "inbox") - (notmuch-show-remove-tag-thread "inbox"))) + (let ((op (if unarchive "+" "-"))) + (notmuch-show-tag-all (concat op "inbox")))) (defun notmuch-show-archive-thread-then-next () "Archive each message in thread, then show next thread from search."