forked from mirrors/org-mode
org.el (org-refresh-effort-properties): New function
* org.el (org-refresh-effort-properties): New function. (org-agenda-prepare-buffers, org-mode): Use it.
This commit is contained in:
parent
f36b19eef6
commit
554c9e3228
81
lisp/org.el
81
lisp/org.el
|
@ -5550,7 +5550,8 @@ The following commands are available:
|
||||||
(when org-startup-with-latex-preview
|
(when org-startup-with-latex-preview
|
||||||
(org-preview-latex-fragment))
|
(org-preview-latex-fragment))
|
||||||
(unless org-inhibit-startup-visibility-stuff
|
(unless org-inhibit-startup-visibility-stuff
|
||||||
(org-set-startup-visibility))))
|
(org-set-startup-visibility))
|
||||||
|
(org-refresh-effort-properties)))
|
||||||
;; Try to set org-hide correctly
|
;; Try to set org-hide correctly
|
||||||
(let ((foreground (org-find-invisible-foreground)))
|
(let ((foreground (org-find-invisible-foreground)))
|
||||||
(if foreground
|
(if foreground
|
||||||
|
@ -9414,6 +9415,40 @@ call CMD."
|
||||||
|
|
||||||
;;; Refresh properties
|
;;; Refresh properties
|
||||||
|
|
||||||
|
(defun org-refresh-properties (dprop tprop)
|
||||||
|
"Refresh buffer text properties.
|
||||||
|
DPROP is the drawer property and TPROP is either the
|
||||||
|
corresponding text property to set, or an alist with each element
|
||||||
|
being a text property (as a symbol) and a function to apply to
|
||||||
|
the value of the drawer property."
|
||||||
|
(let ((case-fold-search t)
|
||||||
|
(inhibit-read-only t))
|
||||||
|
(org-with-silent-modifications
|
||||||
|
(save-excursion
|
||||||
|
(save-restriction
|
||||||
|
(widen)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (re-search-forward (concat "^[ \t]*:" dprop ": +\\(.*\\)[ \t]*$") nil t)
|
||||||
|
(org-refresh-property tprop (org-match-string-no-properties 1))))))))
|
||||||
|
|
||||||
|
(defun org-refresh-property (tprop p)
|
||||||
|
"Refresh the buffer text property TPROP from the drawer property P.
|
||||||
|
The refresh happens only for the current tree (not subtree)."
|
||||||
|
(save-excursion
|
||||||
|
(org-back-to-heading t)
|
||||||
|
;; tprop is a text property symbol
|
||||||
|
(if (symbolp tprop)
|
||||||
|
(put-text-property
|
||||||
|
(point) (or (outline-next-heading) (point-max)) tprop p)
|
||||||
|
;; tprop is an alist with (properties . function) elements
|
||||||
|
(mapc (lambda(al)
|
||||||
|
(save-excursion
|
||||||
|
(put-text-property
|
||||||
|
(point-at-bol) (or (outline-next-heading) (point-max))
|
||||||
|
(car al)
|
||||||
|
(funcall (cdr al) p))))
|
||||||
|
tprop))))
|
||||||
|
|
||||||
(defun org-refresh-category-properties ()
|
(defun org-refresh-category-properties ()
|
||||||
"Refresh category text properties in the buffer."
|
"Refresh category text properties in the buffer."
|
||||||
(let ((case-fold-search t)
|
(let ((case-fold-search t)
|
||||||
|
@ -9466,39 +9501,12 @@ call CMD."
|
||||||
(put-text-property (point) (progn (org-end-of-subtree t t) (point))
|
(put-text-property (point) (progn (org-end-of-subtree t t) (point))
|
||||||
'org-stats stats)))))))
|
'org-stats stats)))))))
|
||||||
|
|
||||||
(defun org-refresh-properties (dprop tprop)
|
(defun org-refresh-effort-properties ()
|
||||||
"Refresh buffer text properties.
|
"Refresh effort properties"
|
||||||
DPROP is the drawer property and TPROP is either the
|
(org-refresh-properties
|
||||||
corresponding text property to set, or an alist with each element
|
org-effort-property
|
||||||
being a text property (as a symbol) and a function to apply to
|
'((effort . identity)
|
||||||
the value of the drawer property."
|
(effort-minutes . org-duration-string-to-minutes))))
|
||||||
(let ((case-fold-search t)
|
|
||||||
(inhibit-read-only t))
|
|
||||||
(org-with-silent-modifications
|
|
||||||
(save-excursion
|
|
||||||
(save-restriction
|
|
||||||
(widen)
|
|
||||||
(goto-char (point-min))
|
|
||||||
(while (re-search-forward (concat "^[ \t]*:" dprop ": +\\(.*\\)[ \t]*$") nil t)
|
|
||||||
(org-refresh-property tprop (org-match-string-no-properties 1))))))))
|
|
||||||
|
|
||||||
(defun org-refresh-property (tprop p)
|
|
||||||
"Refresh the buffer text property TPROP from the drawer property P.
|
|
||||||
The refresh happens only for the current tree (not subtree)."
|
|
||||||
(save-excursion
|
|
||||||
(org-back-to-heading t)
|
|
||||||
;; tprop is a text property symbol
|
|
||||||
(if (symbolp tprop)
|
|
||||||
(put-text-property
|
|
||||||
(point) (or (outline-next-heading) (point-max)) tprop p)
|
|
||||||
;; tprop is an alist with (properties . function) elements
|
|
||||||
(mapc (lambda(al)
|
|
||||||
(save-excursion
|
|
||||||
(put-text-property
|
|
||||||
(point-at-bol) (or (outline-next-heading) (point-max))
|
|
||||||
(car al)
|
|
||||||
(funcall (cdr al) p))))
|
|
||||||
tprop))))
|
|
||||||
|
|
||||||
;;;; Link Stuff
|
;;;; Link Stuff
|
||||||
|
|
||||||
|
@ -18344,10 +18352,7 @@ When a buffer is unmodified, it is just killed. When modified, it is saved
|
||||||
(or (memq 'stats org-agenda-ignore-properties)
|
(or (memq 'stats org-agenda-ignore-properties)
|
||||||
(org-refresh-stats-properties))
|
(org-refresh-stats-properties))
|
||||||
(or (memq 'effort org-agenda-ignore-properties)
|
(or (memq 'effort org-agenda-ignore-properties)
|
||||||
(org-refresh-properties
|
(org-refresh-effort-properties))
|
||||||
org-effort-property
|
|
||||||
'((effort . identity)
|
|
||||||
(effort-minutes . org-duration-string-to-minutes))))
|
|
||||||
(or (memq 'appt org-agenda-ignore-properties)
|
(or (memq 'appt org-agenda-ignore-properties)
|
||||||
(org-refresh-properties "APPT_WARNTIME" 'org-appt-warntime))
|
(org-refresh-properties "APPT_WARNTIME" 'org-appt-warntime))
|
||||||
(setq org-todo-keywords-for-agenda
|
(setq org-todo-keywords-for-agenda
|
||||||
|
|
Loading…
Reference in New Issue