summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2009-07-27 00:35:48 +0800
committerBastien Guerry <bzg@altern.org>2009-07-27 00:35:48 +0800
commit6ebb5f23046d40166695058fc6716fb405a2fd8e (patch)
treea39133c0e2ac029b8dd795715a281e033cb57661
parent402448cb4cc6efc6630dcda8d30a32eaa157c2aa (diff)
downloadorg-mode-6ebb5f23046d40166695058fc6716fb405a2fd8e.tar.gz
New value 'all-headlines for `org-provide-todo-statistics'.
When org-provide-todo-statistics is set to 'all-headlines, the statistics are performed against all headlines, including those with no TODO keyword. This was requested by David A. Gershman.
-rwxr-xr-xlisp/ChangeLog8
-rw-r--r--lisp/org.el34
2 files changed, 29 insertions, 13 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cb66edf..80e4667 100755
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,11 @@
+2009-07-26 Bastien Guerry <bzg@altern.org>
+
+ * org.el (org-provide-todo-statistics): Allow new value
+ 'all-headlines for this option, which includes entries with no
+ TODO keywords in the todo statistics.
+ (org-update-parent-todo-statistics): Possibly use the new option
+ from `org-provide-todo-statistics'.
+
2009-07-25 Bastien Guerry <bzg@altern.org>
* org-clock.el (org-dblock-write:clocktable): Add a new option
diff --git a/lisp/org.el b/lisp/org.el
index 7622089..93fe11d 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -1704,10 +1704,15 @@ by a letter in parenthesis, like TODO(t)."
(defcustom org-provide-todo-statistics t
"Non-nil means, update todo statistics after insert and toggle.
-When this is set, todo statistics is updated in the parent of the current
-entry each time a todo state is changed."
+ALL-HEADLINES means update todo statistics by including headlines
+with no TODO keyword as well. When this is set, todo statistics
+is updated in the parent of the current entry each time a todo
+state is changed."
:group 'org-todo
- :type 'boolean)
+ :type '(choice
+ (const :tag "For TODO entries" t)
+ (const :tag "By all headlines" 'all-headlines)
+ (const :tag "No TODO statistics" nil)))
(defcustom org-hierarchical-todo-statistics t
"Non-nil means, TODO statistics covers just direct children.
@@ -4538,7 +4543,7 @@ between words."
"^\\(\\**\\)\\(\\* \\)\\(.*\xa\\)"
"^\\(\\**\\)\\(\\* \\)\\(.*\\)")
(1 (org-get-level-face 1))
- (2 (org-get-level-face 2))
+ (2 (org-get-level-face 2))
(3 (org-get-level-face 3)))
;; Table lines
'("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
@@ -6631,7 +6636,7 @@ C-c C-c Set tags / toggle checkbox"
(defun orgstruct++-mode (&optional arg)
"Toggle `orgstruct-mode', the enhanced version of it.
-In addition to setting orgstruct-mode, this also exports all indentation
+In addition to setting orgstruct-mode, this also exports all indentation
and autofilling variables from org-mode into the buffer. It will also
recognize item context in multiline items.
Note that turning off orgstruct-mode will *not* remove the
@@ -7381,7 +7386,7 @@ Use TAB to complete link prefixes, then RET for type-specific completion support
(let ((org-completion-use-ido nil))
(org-completing-read
"Link: "
- (append
+ (append
(mapcar (lambda (x) (list (concat x ":")))
all-prefixes)
(mapcar 'car org-stored-links))
@@ -8743,8 +8748,8 @@ This function can be used in a hook."
;;;; Completion
(defconst org-additional-option-like-keywords
- '("BEGIN_HTML" "END_HTML" "HTML:" "ATTR_HTML"
- "BEGIN_DocBook" "END_DocBook" "DocBook:" "ATTR_DocBook"
+ '("BEGIN_HTML" "END_HTML" "HTML:" "ATTR_HTML"
+ "BEGIN_DocBook" "END_DocBook" "DocBook:" "ATTR_DocBook"
"BEGIN_LaTeX" "END_LaTeX" "LaTeX:" "LATEX_HEADER:" "ATTR_LaTeX"
"BEGIN:" "END:"
"ORGTBL" "TBLFM:" "TBLNAME:"
@@ -9403,7 +9408,10 @@ statistics everywhere."
(> (setq l1 (length (match-string 1))) level))
(setq kwd (and (or recursive (= l1 ltoggle))
(match-string 2)))
- (and kwd (setq cnt-all (1+ cnt-all)))
+ (if (eq org-provide-todo-statistics 'all-headlines)
+ (setq cnt-all (1+ cnt-all))
+ (if org-provide-todo-statistics
+ (and kwd (setq cnt-all (1+ cnt-all)))))
(and (member kwd org-done-keywords)
(setq cnt-done (1+ cnt-done)))
(outline-next-heading)))
@@ -12191,7 +12199,7 @@ user."
(when org-read-date-overlay
(org-delete-overlay org-read-date-overlay)
(setq org-read-date-overlay nil)))))))
-
+
(t ; Naked prompt only
(unwind-protect
(setq ans (read-string prompt default-input
@@ -12199,10 +12207,10 @@ user."
(when org-read-date-overlay
(org-delete-overlay org-read-date-overlay)
(setq org-read-date-overlay nil)))))
-
+
(setq final (org-read-date-analyze ans def defdecode))
(setq org-read-date-final-answer ans)
-
+
(if to-time
(apply 'encode-time final)
(if (and (boundp 'org-time-was-given) org-time-was-given)
@@ -15850,7 +15858,7 @@ which make use of the date at the cursor."
(org-set-local 'comment-start-skip "^#+[ \t]*")
(org-set-local 'paragraph-separate "\f\\|\\*+ \\|[ ]*$\\|[ \t]*[:|]")
;; The paragraph starter includes hand-formatted lists.
- (org-set-local
+ (org-set-local
'paragraph-start
(concat
"\f" "\\|"