mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-29 21:37:50 +00:00
org-agenda: Refactored. Add test.
* lisp/org-agenda.el (org-agenda-mode): Factored out a function for a loop occuring two times. * testing/lisp/test-org-agenda.el: test the text scale after agenda-undo.
This commit is contained in:
parent
d6ebe38e2c
commit
a6b4cec691
|
@ -2191,30 +2191,29 @@ The following commands are available:
|
|||
face-remapping-alist))
|
||||
(save (buffer-local-variables)))
|
||||
(kill-all-local-variables)
|
||||
(cond (org-agenda-doing-sticky-redo
|
||||
;; Refreshing sticky agenda-buffer
|
||||
;;
|
||||
;; Preserve the value of `org-agenda-local-vars' variables.
|
||||
(mapc #'make-local-variable org-agenda-local-vars)
|
||||
(dolist (elem save)
|
||||
(pcase elem
|
||||
(`(,var . ,val) ;ignore unbound variables
|
||||
(when (and val (memq var org-agenda-local-vars))
|
||||
(set var val)))))
|
||||
(setq-local org-agenda-this-buffer-is-sticky t))
|
||||
(org-agenda-sticky
|
||||
;; Creating a sticky Agenda buffer for the first time
|
||||
(mapc 'make-local-variable org-agenda-local-vars)
|
||||
(setq-local org-agenda-this-buffer-is-sticky t))
|
||||
(t
|
||||
;; Creating a non-sticky agenda buffer
|
||||
(setq-local org-agenda-this-buffer-is-sticky nil)))
|
||||
(mapc #'make-local-variable agenda-local-vars-to-keep)
|
||||
(dolist (elem save)
|
||||
(pcase elem
|
||||
(`(,var . ,val) ;ignore unbound variables
|
||||
(when (and val (memq var agenda-local-vars-to-keep))
|
||||
(set var val))))))
|
||||
(cl-flet ((reset-saved (var-set)
|
||||
"Reset variables in VAR-SET to possibly stored value in SAVE."
|
||||
(dolist (elem save)
|
||||
(pcase elem
|
||||
(`(,var . ,val) ;ignore unbound variables
|
||||
(when (and val (memq var var-set))
|
||||
(set var val)))))))
|
||||
(cond (org-agenda-doing-sticky-redo
|
||||
;; Refreshing sticky agenda-buffer
|
||||
;;
|
||||
;; Preserve the value of `org-agenda-local-vars' variables.
|
||||
(mapc #'make-local-variable org-agenda-local-vars)
|
||||
(reset-saved org-agenda-local-vars)
|
||||
(setq-local org-agenda-this-buffer-is-sticky t))
|
||||
(org-agenda-sticky
|
||||
;; Creating a sticky Agenda buffer for the first time
|
||||
(mapc 'make-local-variable org-agenda-local-vars)
|
||||
(setq-local org-agenda-this-buffer-is-sticky t))
|
||||
(t
|
||||
;; Creating a non-sticky agenda buffer
|
||||
(setq-local org-agenda-this-buffer-is-sticky nil)))
|
||||
(mapc #'make-local-variable agenda-local-vars-to-keep)
|
||||
(reset-saved agenda-local-vars-to-keep)))
|
||||
(setq org-agenda-undo-list nil
|
||||
org-agenda-pending-undo-list nil
|
||||
org-agenda-bulk-marked-entries nil)
|
||||
|
|
|
@ -123,6 +123,27 @@
|
|||
(org-toggle-sticky-agenda)
|
||||
(org-test-agenda--kill-all-agendas))
|
||||
|
||||
|
||||
;; agenda redo
|
||||
|
||||
(require 'face-remap)
|
||||
|
||||
(ert-deftest test-org-agenda/rescale ()
|
||||
"Text scale survives `org-agenda-redo'."
|
||||
(org-test-agenda--kill-all-agendas)
|
||||
(unwind-protect
|
||||
(let ((org-agenda-span 'day)
|
||||
org-agenda-files)
|
||||
(org-agenda-list)
|
||||
(set-buffer org-agenda-buffer-name)
|
||||
(text-scale-mode)
|
||||
(text-scale-set 11)
|
||||
(cl-assert (and (boundp text-scale-mode) text-scale-mode))
|
||||
(org-agenda-redo)
|
||||
(should text-scale-mode)
|
||||
(should (= 11 text-scale-mode-amount)))
|
||||
(org-test-agenda--kill-all-agendas)))
|
||||
|
||||
|
||||
(provide 'test-org-agenda)
|
||||
|
||||
|
|
Loading…
Reference in a new issue