Mercurial > emacs
diff lisp/org/org-agenda.el @ 96975:60149c696033
2008-07-24 Carsten Dominik <dominik@science.uva.nl>
* org-exp.el (org-export-region-as-html, org-export-as-html): Make
sure that calls from `org-export-region-as-html' do not do the
special check for a subtree.
* org-agenda.el (org-batch-store-agenda-views): Fix parsing bug.
* org.el (org-open-file): Use
`org-open-directory-means-index-dot-org'.
(org-open-directory-means-index-dot-org): New option.
* org.el (org-make-link-string): Remove link attributes from
description.
(org-open-at-point): Remove link attributes bevore using the path.
* org-exp.el (org-export-as-html): Handle link attributes.
* org.el (org-extract-attributes, org-attributes-to-string): New functions.
* org-table.el (org-table-to-lisp): New function.
* org.el (org-narrow-to-subtree): Do not include the final newline
into the narrowed region.
* org-agenda.el (org-agenda-custom-commands-local-options): Fixed
bug with user-define skipping condition.
* org-agenda.el (org-agenda-get-restriction-and-command): Fixed typo.
* org-exp.el (org-export-html-style-default): Automatic overflow
handling for pre fields.
(org-export-as-ascii, org-export-as-html): Change default format
for time stamp.
* org-table.el (org-table-export): Offer completion for translator
functions, and do not require a heading above the table.
* org.el (org-renumber-ordered-list, org-beginning-of-item-list):
Cater for the case of a list starting in the first line of the
buffer.
* org-publish.el (org-publish-find-title): Bug fix.
(org-publish-org-index): Implement new :index-style option.
* org-publish.el (org-publish-timestamp-filename): Use
SHA1-encoded file names in the timestamp directory.
* org-publish.el (org-publish-needed-p): Be verbose about files
published and files skipped.
* org-exp.el (org-export-preprocess-string): Swap link
normalization and inernal link targeting.
* org-publish.el (org-publish-needed-p): Create timestamp
directory when it does not exist.
* org-clock.el (org-clock-out-when-done): Doc fix.
* org.el (org-agenda-skip-unavailable-files): Doc fix.
* org-exp.el (org-export-remove-comment-blocks-and-subtrees):
Ignore case when searching for the COMMENT cookie at export time.
* org-exp.el (org-get-file-contents)
(org-get-and-remove-property): New functions.
(org-export-handle-include-files): Handle the new prefix options.
(org-export-as-html): Fix the verse environment.
* org.el (org-time=, org-time<, org-time<=, org-time>)
(org-time>=, org-time<>, org-2ft): New functions.
(org-op-to-function): Also provide for the time testing fucntions.
* org-exp.el (org-export-html-style-default): New constant.
* org-exp.el (org-export-html-style-extra): New variable.
(org-export-splice-style): New function.
* org-exp.el (org-export-plist-vars, org-export-as-html):
Implement `org-export-creator-info'.
(org-export-creator-info): New option.
* org.el (org-clock-drawer-start-re, org-clock-drawer-end-re)
(org-property-drawer-re, org-clock-drawer-re): New constants.
* org-exp.el (org-icalendar-use-deadline)
(org-icalendar-use-scheduled): New options.
(org-icalendar-include-todo): Default changed to t.
(org-print-icalendar-entries): Implement better utilization of
scheduling and deadline time stamps.
(org-export-target-internal-links, org-export-as-html): Allow file
lines without the "file:" prefix if the file path is an absolute
path or starts with ".".
* org-clock.el (org-clocktable-shift): Also undertand yesterday,
lastweek etc.
(org-clock-special-range): Also undertand yesterday, lastweek etc.
* org.el (org-agenda-skip-archived-trees): Docstring now
discourages using this.
(org-scan-tags): Check for org-agenda-archives-mode.
(org-map-entries): Make sure org-agenda-archives-mode is nil.
(org-agenda-files): Functionality of second arg changed.
* org-agenda.el (org-agenda-archives-mode): New variable
(org-write-agenda, org-prepare-agenda, org-agenda-list)
(org-search-view, org-todo-list, org-tags-view)
(org-agenda-list-stuck-projects): Call `org-agenda-files' with
`ifmode' argument.
(org-agenda-quit): Reset the archives mode.
(org-agenda-archives-mode): New command.
(org-agenda-set-mode-name): Include archives info.
* org.el (org-paste-subtree): Make sure the yanked headline is
visible if it was yanked at a visible point.
(org-move-item-up): Fix the bug with moving white space at the end
of the item.
(org-show-empty-lines-in-parent): New function.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Thu, 24 Jul 2008 13:59:56 +0000 |
parents | c1ef445563bb |
children | adc2dffbdfc3 |
line wrap: on
line diff
--- a/lisp/org/org-agenda.el Thu Jul 24 13:00:20 2008 +0000 +++ b/lisp/org/org-agenda.el Thu Jul 24 13:59:56 2008 +0000 @@ -6,7 +6,7 @@ ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 6.05a +;; Version: 6.06a ;; ;; This file is part of GNU Emacs. ;; @@ -211,9 +211,8 @@ (const :tag "no deadline" 'notdeadline)))))) (list :tag "Non-standard skipping condition" :value (org-agenda-skip-function) - (list - (const org-agenda-skip-function) - (sexp :tag "Function or form (quoted!)"))))) + (const org-agenda-skip-function) + (sexp :tag "Function or form (quoted!)")))) "Selection of examples for agenda command settings. This will be spliced into the custom type of `org-agenda-custom-commands'.") @@ -392,6 +391,13 @@ :tag "Org Agenda Skip" :group 'org-agenda) +(defvar org-agenda-archives-mode nil + "Non-nil means, the agenda will include archived items. +If this is the symbol `trees', trees in the selected agenda scope +that are marked with the ARCHIVE tag will be included anyway. When this is +t, also all archive files associated with the current selection of agenda +files will be included.") + (defcustom org-agenda-skip-comment-trees t "Non-nil means, skip trees that start with teh COMMENT keyword. When nil, these trees are also scand by agenda commands." @@ -1105,6 +1111,7 @@ (org-defkey org-agenda-mode-map "f" 'org-agenda-follow-mode) (org-defkey org-agenda-mode-map "R" 'org-agenda-clockreport-mode) (org-defkey org-agenda-mode-map "l" 'org-agenda-log-mode) +(org-defkey org-agenda-mode-map "v" 'org-agenda-archives-mode) (org-defkey org-agenda-mode-map "D" 'org-agenda-toggle-diary) (org-defkey org-agenda-mode-map "G" 'org-agenda-toggle-time-grid) (org-defkey org-agenda-mode-map "r" 'org-agenda-redo) @@ -1234,14 +1241,25 @@ ["Year View" org-agenda-year-view :active (org-agenda-check-type nil 'agenda) :style radio :selected (member org-agenda-ndays '(365 366))] "--" - ["Show Logbook entries" org-agenda-log-mode - :style toggle :selected org-agenda-show-log :active (org-agenda-check-type nil 'agenda 'timeline)] + ["Include Diary" org-agenda-toggle-diary + :style toggle :selected org-agenda-include-diary + :active (org-agenda-check-type nil 'agenda)] + ["Use Time Grid" org-agenda-toggle-time-grid + :style toggle :selected org-agenda-use-time-grid + :active (org-agenda-check-type nil 'agenda)] + "--" ["Show clock report" org-agenda-clockreport-mode - :style toggle :selected org-agenda-clockreport-mode :active (org-agenda-check-type nil 'agenda)] - ["Include Diary" org-agenda-toggle-diary - :style toggle :selected org-agenda-include-diary :active (org-agenda-check-type nil 'agenda)] - ["Use Time Grid" org-agenda-toggle-time-grid - :style toggle :selected org-agenda-use-time-grid :active (org-agenda-check-type nil 'agenda)]) + :style toggle :selected org-agenda-clockreport-mode + :active (org-agenda-check-type nil 'agenda)] + "--" + ["Show Logbook entries" org-agenda-log-mode + :style toggle :selected org-agenda-show-log + :active (org-agenda-check-type nil 'agenda 'timeline)] + ["Include archived trees" org-agenda-archives-mode + :style toggle :selected org-agenda-archives-mode :active t] + ["Include archive files" (org-agenda-archives-mode t) + :style toggle :selected (eq org-agenda-archives-mode t) :active t + :keys "C-u v"]) ["Write view to file" org-write-agenda t] ["Rebuild buffer" org-agenda-redo t] ["Save all Org-mode Buffers" org-save-all-org-buffers t] @@ -1475,7 +1493,7 @@ (insert (eval-when-compile (let ((header " -Press key for an agenda command: < Buffer,subtree/region restriction +Press key for an agenda command: < Buffer, subtree/region restriction -------------------------------- > Remove restriction a Agenda for current week or day e Export agenda views t List of all TODO entries T Entries with special TODO kwd @@ -1790,7 +1808,7 @@ (let ((cmds (org-agenda-normalize-custom-commands org-agenda-custom-commands)) (pop-up-frames nil) (dir default-directory) - pars cmd thiscmdkey files opts) + pars cmd thiscmdkey files opts cmd-or-set) (while parameters (push (list (pop parameters) (if parameters (pop parameters))) pars)) (setq pars (reverse pars)) @@ -1798,8 +1816,9 @@ (while cmds (setq cmd (pop cmds) thiscmdkey (car cmd) - opts (nth 4 cmd) - files (nth 5 cmd)) + cmd-or-set (nth 2 cmd) + opts (nth (if (listp cmd-or-set) 3 4) cmd) + files (nth (if (listp cmd-or-set) 4 5) cmd)) (if (stringp files) (setq files (list files))) (when files (eval (list 'let (append org-agenda-exporter-settings opts pars) @@ -1855,7 +1874,8 @@ (org-agenda-collect-markers))) (org-icalendar-verify-function 'org-check-agenda-marker-table) (org-combined-agenda-icalendar-file file)) - (apply 'org-export-icalendar 'combine (org-agenda-files)))) + (apply 'org-export-icalendar 'combine + (org-agenda-files nil 'ifmode)))) (t (let ((bs (buffer-string))) (find-file file) @@ -1937,7 +1957,7 @@ (org-agenda-reset-markers) (setq org-agenda-contributing-files nil) (setq org-agenda-columns-active nil) - (org-prepare-agenda-buffers (org-agenda-files)) + (org-prepare-agenda-buffers (org-agenda-files nil 'ifmode)) (setq org-todo-keywords-for-agenda (org-uniquify org-todo-keywords-for-agenda)) (setq org-done-keywords-for-agenda @@ -2032,7 +2052,7 @@ Also moves point to the end of the skipped region, so that search can continue from there." (let ((p (point-at-bol)) to fp) - (and org-agenda-skip-archived-trees + (and org-agenda-skip-archived-trees (not org-agenda-archives-mode) (get-text-property p :org-archived) (org-end-of-subtree t) (throw :skip t)) @@ -2255,7 +2275,7 @@ (let* ((org-agenda-start-on-weekday (if (or (equal ndays 7) (and (null ndays) (equal 7 org-agenda-ndays))) org-agenda-start-on-weekday nil)) - (thefiles (org-agenda-files)) + (thefiles (org-agenda-files nil 'ifmode)) (files thefiles) (today (time-to-days (time-subtract (current-time) @@ -2373,7 +2393,7 @@ (put-text-property s (1- (point)) 'day d) (put-text-property s (1- (point)) 'org-day-cnt day-cnt)))) (when (and org-agenda-clockreport-mode clocktable-start) - (let ((org-agenda-files (org-agenda-files)) + (let ((org-agenda-files (org-agenda-files nil 'ifmode)) ;; the above line is to ensure the restricted range! (p org-agenda-clockreport-parameter-plist) tbl) @@ -2502,7 +2522,7 @@ (setq regexp (pop regexps+)) (if hdl-only (setq regexp (concat "^" org-outline-regexp ".*?" regexp)))) - (setq files (org-agenda-files)) + (setq files (org-agenda-files nil 'ifmode)) (when (eq (car org-agenda-text-search-extra-files) 'agenda-archives) (pop org-agenda-text-search-extra-files) (setq files (org-add-archive-files files))) @@ -2633,7 +2653,7 @@ (org-set-local 'org-last-arg arg) (setq org-agenda-redo-command '(org-todo-list (or current-prefix-arg org-last-arg))) - (setq files (org-agenda-files) + (setq files (org-agenda-files nil 'ifmode) rtnall nil) (while (setq file (pop files)) (catch 'nextfile @@ -2690,7 +2710,7 @@ (setq org-agenda-redo-command (list 'org-tags-view (list 'quote todo-only) (list 'if 'current-prefix-arg nil 'org-agenda-query-string))) - (setq files (org-agenda-files) + (setq files (org-agenda-files nil 'ifmode) rtnall nil) (while (setq file (pop files)) (catch 'nextfile @@ -2827,7 +2847,8 @@ (todo (nth 1 org-stuck-projects)) (todo-wds (if (member "*" todo) (progn - (org-prepare-agenda-buffers (org-agenda-files)) + (org-prepare-agenda-buffers (org-agenda-files + nil 'ifmode)) (org-delete-all org-done-keywords-for-agenda (copy-sequence org-todo-keywords-for-agenda))) @@ -4002,7 +4023,8 @@ (if (not (one-window-p)) (delete-window)) (kill-buffer buf) (org-agenda-reset-markers) - (org-columns-remove-overlays)) + (org-columns-remove-overlays) + (setq org-agenda-archives-mode nil)) ;; Maybe restore the pre-agenda window configuration. (and org-agenda-restore-windows-after-quit (not (eq org-agenda-window-setup 'other-frame)) @@ -4340,6 +4362,24 @@ (message "Log mode is %s" (if org-agenda-show-log "on" "off"))) +(defun org-agenda-archives-mode (&optional with-files) + "Toggle log mode in an agenda buffer." + (interactive "P") + (setq org-agenda-archives-mode + (if with-files t (if org-agenda-archives-mode nil 'trees))) + (org-agenda-set-mode-name) + (org-agenda-redo) + (message + "%s" + (cond + ((eq org-agenda-archives-mode nil) + "No archives are included") + ((eq org-agenda-archives-mode 'trees) + (format "Trees with :%s: tag are included" org-archive-tag)) + ((eq org-agenda-archives-mode t) + (format "Trees with :%s: tag and all active archive files are included" + org-archive-tag))))) + (defun org-agenda-toggle-diary () "Toggle diary inclusion in an agenda buffer." (interactive) @@ -4370,6 +4410,11 @@ (if org-agenda-include-diary " Diary" "") (if org-agenda-use-time-grid " Grid" "") (if org-agenda-show-log " Log" "") + (if org-agenda-archives-mode + (if (eq org-agenda-archives-mode t) + " Archives" + (format " :%s:" org-archive-tag)) + "") (if org-agenda-clockreport-mode " Clock" ""))) (force-mode-line-update))