Commit d6685abc authored by Carsten Dominik's avatar Carsten Dominik
Browse files

2009-01-28 Carsten Dominik <carsten.dominik@gmail.com>

	* org-agenda.el (org-agenda-get-todos): Start search from correct
	position.

	* org.el (org-fast-todo-selection): Make sure TODO selection does
	not change buffer position.

	* org-list.el (org-toggle-checkbox): Implement adding or removing
	checkboxes from line or region when called with a prefix
	argument.

	* org-rmail.el (org-rmail-store-link): Protect the call to
	`rmail-narrow-to-non-pruned-header'.

	* org-clock.el (org-clock-special-range): Fix week display in
	clock tables.

	* org-exp.el (org-get-current-options): Fix bug when in indirect
	buffer.

	* org-agenda.el (org-agenda-dim-blocked-tasks): New option.
	(org-finalize-agenda): Call `org-agenda-dim-blocked-tasks'.
	(org-agenda-dim-blocked-tasks): New function.

	* org.el (org-enforce-todo-dependencies): New option.
	(org-block-todo-from-children-or-siblings): New function.

	* org-faces.el (org-agenda-dimmed-todo-face): New face.
parent f088b054
2009-01-28 Carsten Dominik <dominik@science.uva.nl>
* org.texi (TODO dependencies): New section.
2009-01-27 Carsten Dominik <dominik@science.uva.nl>
* org.texi (Plain lists, TODO basics, Priorities)
......
2009-01-28 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-get-todos): Start search from correct
position.
* org.el (org-fast-todo-selection): Make sure TODO selection does
not change buffer position.
* org-list.el (org-toggle-checkbox): Implement adding or removing
checkboxes from line or region when called with a prefix
argument.
* org-rmail.el (org-rmail-store-link): Protect the call to
`rmail-narrow-to-non-pruned-header'.
* org-clock.el (org-clock-special-range): Fix week display in
clock tables.
* org-exp.el (org-get-current-options): Fix bug when in indirect
buffer.
* org-agenda.el (org-agenda-dim-blocked-tasks): New option.
(org-finalize-agenda): Call `org-agenda-dim-blocked-tasks'.
(org-agenda-dim-blocked-tasks): New function.
* org.el (org-enforce-todo-dependencies): New option.
(org-block-todo-from-children-or-siblings): New function.
* org-faces.el (org-agenda-dimmed-todo-face): New face.
2009-01-27 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-todo): Return correct state type even if the blocker
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......@@ -513,6 +513,21 @@ deadlines are always turned off when the item is DONE."
:group 'org-agenda-daily/weekly
:type 'boolean)
(defcustom org-agenda-dim-blocked-tasks t
"Non-nil means, dim blocked tasks in the agenda display.
This causes some overhead during agenda construction, but if you have turned
on `org-enforce-todo-dependencies' or any other blocking mechanism, this
will create useful feedback in the agenda.
Instead ot t, this variable can also have the value `invisible'. Then
blocked tasks will be invisible and only become visible when they
become unblocked."
:group 'org-agenda-daily/weekly
:group 'org-agenda-todo-list
:type '(choice
(const :tag "Do not dim" nil)
(const :tag "Dim to a grey face" t)
(const :tag "Make invisibe" invisible)))
(defcustom org-timeline-show-empty-dates 3
"Non-nil means, `org-timeline' also shows dates without an entry.
When nil, only the days which actually have entries are shown.
......@@ -2132,6 +2147,8 @@ VALUE defaults to t."
(org-agenda-columns))
(when org-agenda-fontify-priorities
(org-fontify-priorities))
(when (and org-agenda-dim-blocked-tasks org-blocker-hook)
(org-agenda-dim-blocked-tasks))
(run-hooks 'org-finalize-agenda-hook)
(setq org-agenda-type (get-text-property (point) 'org-agenda-type))
)))
......@@ -2162,6 +2179,36 @@ VALUE defaults to t."
((equal p h) 'bold)))
(org-overlay-put ov 'org-type 'org-priority)))))
(defun org-agenda-dim-blocked-tasks ()
"Dim currently blocked TODO's in the agenda display."
(mapc (lambda (o) (if (eq (org-overlay-get o 'org-type) 'org-blocked-todo)
(org-delete-overlay o)))
(org-overlays-in (point-min) (point-max)))
(save-excursion
(let ((inhibit-read-only t)
(invis (eq org-agenda-dim-blocked-tasks 'invisible))
b e p ov h l)
(goto-char (point-min))
(while (let ((pos (next-single-property-change (point) 'todo-state)))
(and pos (goto-char (1+ pos))))
(let ((marker (get-text-property (point) 'org-hd-marker)))
(when (and marker
(not (with-current-buffer (marker-buffer marker)
(save-excursion
(goto-char marker)
(run-hook-with-args-until-failure
'org-blocker-hook
(list :type 'todo-state-change
:position marker
:from 'todo
:to 'done))))))
(setq b (if invis (max (point-min) (1- (point))) (point))
e (point-at-eol)
ov (org-make-overlay b e))
(if invis
(org-overlay-put ov 'invisible t)
(org-overlay-put ov 'face 'org-agenda-dimmed-todo-face))
(org-overlay-put ov 'org-type 'org-blocked-todo)))))))
(defvar org-agenda-skip-function nil
"Function to be called at each match during agenda construction.
......@@ -3272,7 +3319,7 @@ the documentation of `org-diary'."
(catch :skip
(save-match-data
(beginning-of-line)
(setq beg (point) end (progn (outline-next-heading) (point)))
(setq beg (point) end (save-excursion (outline-next-heading) (point)))
(when (org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item end)
(goto-char (1+ beg))
(or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -4,7 +4,7 @@
;; Author: John Wiegley <johnw@newartisans.com>
;; Keywords: org data task
;; Version: 6.19e
;; Version: 6.20c
;; This file is part of GNU Emacs.
;;
......
......@@ -7,7 +7,7 @@
;; Thomas Baumann <thomas dot baumann at ch dot tum dot de>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -5,7 +5,7 @@
;; Author: Bastien Guerry <bzg at altern dot org>
;; Carsten Dominik <carsten dot dominik at gmail dot com>
;; Keywords: org, wp, remember
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......@@ -724,6 +724,7 @@ the returned times will be formatted strings."
(setq date (calendar-gregorian-from-absolute
(calendar-absolute-from-iso (list w 1 y))))
(setq d (nth 1 date) month (car date) y (nth 2 date)
dow 1
key 'week))
((string-match "^\\([0-9]+\\)-\\([0-9]\\{1,2\\}\\)-\\([0-9]\\{1,2\\}\\)$" skey)
(setq y (string-to-number (match-string 1 skey))
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......@@ -3031,7 +3031,10 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
(mapconcat 'identity org-export-exclude-tags " ")
org-export-html-link-up
org-export-html-link-home
(file-name-nondirectory buffer-file-name)
(or (ignore-errors
(file-name-sans-extension
(file-name-nondirectory (buffer-file-name (buffer-base-buffer)))))
"NOFILENAME")
"TODO FEEDBACK VERIFY DONE"
"Me Jason Marie DONE"
org-highest-priority org-lowest-priority org-default-priority
......
......@@ -4,7 +4,7 @@
;;
;; Emacs Lisp Archive Entry
;; Filename: org-export-latex.el
;; Version: 6.19e
;; Version: 6.20c
;; Author: Bastien Guerry <bzg AT altern DOT org>
;; Maintainer: Bastien Guerry <bzg AT altern DOT org>
;; Keywords: org, wp, tex
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......@@ -400,15 +400,15 @@ changes."
(defface org-clock-overlay ;; copied from secondary-selection
(org-compatible-face nil
'((((class color) (min-colors 88) (background light))
:background "yellow1")
(:background "yellow1"))
(((class color) (min-colors 88) (background dark))
:background "SkyBlue4")
(:background "SkyBlue4"))
(((class color) (min-colors 16) (background light))
:background "yellow")
(:background "yellow"))
(((class color) (min-colors 16) (background dark))
:background "SkyBlue4")
(:background "SkyBlue4"))
(((class color) (min-colors 8))
:background "cyan" :foreground "black")
(:background "cyan" :foreground "black"))
(t (:inverse-video t))))
"Basic face for displaying the secondary selection."
:group 'org-faces)
......@@ -456,6 +456,11 @@ belong to the weekend.")
"Face for items scheduled for a certain day."
:group 'org-faces)
(defface org-agenda-dimmed-todo-face
'((((background light)) (:foreground "grey50"))
(((background dark)) (:foreground "grey50")))
"Face used to dimm blocked tasks in the agenda."
:group 'org-faces)
(defface org-scheduled-previously
(org-compatible-face nil
......
......@@ -5,7 +5,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -7,7 +7,7 @@
;; Tassilo Horn <tassilo at member dot fsf dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -5,7 +5,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -4,7 +4,7 @@
;;
;; Author: Philip Jackson <emacs@shellarchive.co.uk>
;; Keywords: erc, irc, link, org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -6,7 +6,7 @@
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......
......@@ -7,7 +7,7 @@
;; Bastien Guerry <bzg AT altern DOT org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 6.19e
;; Version: 6.20c
;;
;; This file is part of GNU Emacs.
;;
......@@ -248,11 +248,15 @@ Return t when things worked, nil when we are not in an item."
(skip-chars-forward " \t")
(looking-at "\\[[- X]\\]"))))
(defun org-toggle-checkbox (&optional arg)
"Toggle the checkbox in the current line."
(defun org-toggle-checkbox (&optional toggle-presence)
"Toggle the checkbox in the current line.
With prefix arg TOGGLE-PRESENCE, add or remove checkboxes.
When there is an active region, toggle status or presence of the checkbox
in the first line, and make every item in the region have the same
status or precence, respectively."
(interactive "P")
(catch 'exit
(let (beg end status (firstnew 'unknown))
(let (beg end status first-present first-status)
(cond
((org-region-active-p)
(setq beg (region-beginning) end (region-end)))
......@@ -260,23 +264,46 @@ Return t when things worked, nil when we are not in an item."
(setq beg (point) end (save-excursion (outline-next-heading) (point))))
((org-at-item-checkbox-p)
(let ((pos (point)))
(replace-match
(cond (arg "[-]")
((member (match-string 0) '("[ ]" "[-]")) "[X]")
(t "[ ]"))
t t)
(if toggle-presence
(progn
(replace-match "")
(goto-char (match-beginning 0))
(just-one-space))
(replace-match
(cond ((member (match-string 0) '("[ ]" "[-]")) "[X]")
(t "[ ]"))
t t))
(goto-char pos))
(throw 'exit t))
((org-at-item-p)
;; add a checkbox
(save-excursion
(goto-char (match-end 0))
(insert "[ ] "))
(throw 'exit t))
(t (error "Not at a checkbox or heading, and no active region")))
(setq end (move-marker (make-marker) end))
(save-excursion
(goto-char beg)
(setq first-present (org-at-item-checkbox-p)
first-status (and first-present (equal (match-string 0) "[X]")))
(while (< (point) end)
(when (org-at-item-checkbox-p)
(setq status (equal (match-string 0) "[X]"))
(when (eq firstnew 'unknown)
(setq firstnew (not status)))
(replace-match
(if (if arg (not status) firstnew) "[X]" "[ ]") t t))
(if toggle-presence
(cond
((and first-present (org-at-item-checkbox-p))
(save-excursion
(replace-match "")
(goto-char (match-beginning 0))
(just-one-space)))
((and (not first-present) (not (org-at-item-checkbox-p))
(org-at-item-p))
(save-excursion
(goto-char (match-end 0))
(insert "[ ] "))))
(when (org-at-item-checkbox-p)
(setq status (equal (match-string 0) "[X]"))
(replace-match
(if first-status "[ ]" "[X]") t t)))
(beginning-of-line 2)))))
(org-update-checkbox-count-maybe))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment