0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-07-16 14:46:27 +00:00

org-colview: Clean up items in agenda mode too.

* org-colview.el (org-columns-display-here): Clean up items in
org-agenda-mode too.
(org-columns-cleanup-item): Take a new argument CPHR to allow
passing a complex heading regexp.  Rewrite to cleanup ITEM
correctly in `org-agenda-mode'.

Thanks to Christian Schmidt for pointing at this problem.
This commit is contained in:
Bastien Guerry 2011-08-17 16:56:27 +02:00
parent 8c3ecbe39a
commit 2edd05eaac

View file

@ -209,9 +209,9 @@ This is the compiled version of the format.")
(funcall org-columns-modify-value-for-display-function (funcall org-columns-modify-value-for-display-function
title val)) title val))
((equal property "ITEM") ((equal property "ITEM")
(if (org-mode-p) (org-columns-cleanup-item
(org-columns-cleanup-item val org-columns-current-fmt-compiled
val org-columns-current-fmt-compiled))) (or org-complex-heading-regexp cphr)))
((and calc (functionp calc) ((and calc (functionp calc)
(not (string= val "")) (not (string= val ""))
(not (get-text-property 0 'org-computed val))) (not (get-text-property 0 'org-computed val)))
@ -341,24 +341,28 @@ for the duration of the command.")
(when (local-variable-p 'org-colview-initial-truncate-line-value) (when (local-variable-p 'org-colview-initial-truncate-line-value)
(setq truncate-lines org-colview-initial-truncate-line-value))))) (setq truncate-lines org-colview-initial-truncate-line-value)))))
(defun org-columns-cleanup-item (item fmt) (defun org-columns-cleanup-item (item fmt cphr)
"Remove from ITEM what is a column in the format FMT." "Remove from ITEM what is a column in the format FMT.
(if (not org-complex-heading-regexp) CPHR is the complex heading regexp to use for parsing ITEM."
item (let (fixitem)
(when (string-match org-complex-heading-regexp item) (if (not cphr)
(setq item item
(concat (unless (string-match "\*+ " item)
(org-add-props (match-string 1 item) nil (setq item (concat "* " item) fixitem t))
'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) (if (string-match cphr item)
(and (match-end 2) (not (assoc "TODO" fmt)) (concat " " (match-string 2 item))) (setq item
(and (match-end 3) (not (assoc "PRIORITY" fmt)) (concat " " (match-string 3 item))) (concat
" " (save-match-data (org-columns-compact-links (match-string 4 item))) (org-add-props (match-string 1 item) nil
(and (match-end 5) (not (assoc "TAGS" fmt)) (concat " " (match-string 5 item))))) 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1))))))
(add-text-properties (and (match-end 2) (not (assoc "TODO" fmt)) (concat " " (match-string 2 item)))
0 (1+ (match-end 1)) (and (match-end 3) (not (assoc "PRIORITY" fmt)) (concat " " (match-string 3 item)))
(list 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) " " (save-match-data (org-columns-compact-links (match-string 4 item)))
item) (and (match-end 5) (not (assoc "TAGS" fmt)) (concat " " (match-string 5 item)))))
item))) (add-text-properties
0 (1+ (match-end 1))
(list 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1))))))
item)
(if fixitem (replace-regexp-in-string "^\*+ " "" item) item)))))
(defun org-columns-compact-links (s) (defun org-columns-compact-links (s)
"Replace [[link][desc]] with [desc] or [link]." "Replace [[link][desc]] with [desc] or [link]."