Some small fixes

This commit is contained in:
Carsten Dominik 2009-09-01 16:30:33 +02:00
parent db70cdb13b
commit 24e7c62b84
7 changed files with 99 additions and 13 deletions

View File

@ -3822,7 +3822,8 @@ with detailed subtasks on the tree@footnote{To keep subtasks out of the
global TODO list, see the @code{org-agenda-todo-list-sublevels}.}. To keep
the overview over the fraction of subtasks that are already completed, insert
either @samp{[/]} or @samp{[%]} anywhere in the headline. These cookies will
be updates each time the todo status of a child changes. For example:
be updates each time the todo status of a child changes, or when pressing
@kbd{C-c C-c} on the cookie. For example:
@example
* Organize Party [33%]
@ -3970,12 +3971,13 @@ for better visibility, customize the variable
@code{org-track-ordered-property-with-tag}.
@kindex C-c #
@item C-c #
Update the checkbox statistics in the current outline entry. When
called with a @kbd{C-u} prefix, update the entire file. Checkbox
statistic cookies are updated automatically if you toggle checkboxes
with @kbd{C-c C-c} and make new ones with @kbd{M-S-@key{RET}}. If you
delete boxes or add/change them by hand, use this command to get things
back into sync. Or simply toggle any checkbox twice with @kbd{C-c C-c}.
Update the statistics cookie in the current outline entry. When called with
a @kbd{C-u} prefix, update the entire file. Checkbox statistic cookies are
updated automatically if you toggle checkboxes with @kbd{C-c C-c} and make
new ones with @kbd{M-S-@key{RET}}. TODO statistics cookies update when
changing TODO states. If you delete boxes/entries or add/change them by
hand, use this command to get things back into sync. Or simply toggle any
entry twice (checkboxes with @kbd{C-c C-c}).
@end table
@node Tags, Properties and Columns, TODO Items, Top
@ -10335,6 +10337,8 @@ drawer, offer property commands.
If the cursor is at a footnote reference, go to the corresponding
definition, and vice versa.
@item
If the cursor is on a statistics cookie, update it.
@item
If the cursor is in a plain list item with a checkbox, toggle the status
of the checkbox.
@item

View File

@ -1,3 +1,22 @@
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-quit): When the agenda window is
dedicated, remove other windows before exiting, so that the frame
really will be killed.
* org-exp.el (org-export-handle-include-files): Reset START and
END for each loop cycle.
2009-09-01 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-eval-in-calendar): Use
`org-select-frame-set-input-focus'.
* org-compat.el (org-select-frame-set-input-focus): New function.
* org.el (org-update-statistics-cookies): New function.
(org-mode-map): Bind `C-c #' to `org-update-statistics-cookies'.
2009-08-31 Carsten Dominik <carsten.dominik@gmail.com>
* org-src.el (org-edit-fixed-width-region): Set org-src-mode only

View File

@ -4800,6 +4800,7 @@ If ERROR is non-nil, throw an error, otherwise just return nil."
(interactive)
(if org-agenda-columns-active
(org-columns-quit)
(if (window-dedicated-p) (delete-other-windows))
(let ((buf (current-buffer)))
(and (not (eq org-agenda-window-setup 'current-window))
(not (one-window-p))

View File

@ -332,6 +332,28 @@ that can be added."
string)
(apply 'kill-new string args))
(defun org-select-frame-set-input-focus (frame)
"Select FRAME, raise it, and set input focus, if possible."
(cond ((featurep 'xemacs)
(if (fboundp 'select-frame-set-input-focus)
(select-frame-set-input-focus frame)
(raise-frame frame)
(select-frame frame)
(focus-frame frame)))
;; `select-frame-set-input-focus' defined in Emacs 21 will not
;; set the input focus.
((>= emacs-major-version 22)
(select-frame-set-input-focus frame))
(t
(raise-frame frame)
(select-frame frame)
(cond ((memq window-system '(x ns mac))
(x-focus-frame frame))
((eq window-system 'w32)
(w32-focus-frame frame)))
(when focus-follows-mouse
(set-mouse-position frame (1- (frame-width frame)) 0)))))
(provide 'org-compat)
;; arch-tag: a0a0579f-e68c-4bdf-9e55-93768b846bbe

View File

@ -2131,7 +2131,8 @@ TYPE must be a string, any of:
markup (org-symname-or-string (pop params))
lang (and (member markup '("src" "SRC"))
(org-symname-or-string (pop params)))
switches (mapconcat '(lambda (x) (format "%s" x)) params " "))
switches (mapconcat '(lambda (x) (format "%s" x)) params " ")
start nil end nil)
(delete-region (match-beginning 0) (match-end 0))
(if (or (not file)
(not (file-exists-p file))
@ -2146,7 +2147,8 @@ TYPE must be a string, any of:
(setq start (format "#+begin_%s %s\n" markup switches)
end (format "#+end_%s" markup))))
(insert (or start ""))
(insert (org-get-file-contents (expand-file-name file) prefix prefix1 markup))
(insert (org-get-file-contents (expand-file-name file)
prefix prefix1 markup))
(or (bolp) (newline))
(insert (or end ""))))))

View File

@ -1642,7 +1642,7 @@ lang=\"%s\" xml:lang=\"%s\">
(push (mapconcat
(lambda (x)
(setq gr (pop org-table-colgroup-info))
(format "%s<col align=\"%s\"></col>%s"
(format "%s<col align=\"%s\" />%s"
(if (memq gr '(:start :startend))
(prog1
(if colgropen "</colgroup>\n<colgroup>" "<colgroup>")

View File

@ -9655,6 +9655,39 @@ changes because there are uncheckd boxes in this entry."
(throw 'dont-block nil)))))
t)) ; do not block
(defun org-update-statistics-cookies (all)
"Update the statistics cookie, either from TODO or from checkboxes.
This should be called with the cursor in a line with a statistics cookie."
(interactive "P")
(if all
(progn
(org-update-checkbox-count 'all)
(org-map-entries 'org-update-parent-todo-statistics))
(if (not (org-on-heading-p))
(org-update-checkbox-count)
(let ((pos (move-marker (make-marker) (point)))
end l1 l2)
(ignore-errors (org-back-to-heading t))
(if (not (org-on-heading-p))
(org-update-checkbox-count)
(setq l1 (org-outline-level))
(setq end (save-excursion
(outline-next-heading)
(if (org-on-heading-p) (setq l2 (org-outline-level)))
(point)))
(if (and (save-excursion (re-search-forward
"^[ \t]*[-+*] \\[[- X]\\]" end t))
(not (save-excursion (re-search-forward
":COOKIE_DATA:.*\\<todo\\>" end t))))
(org-update-checkbox-count)
(if (and l2 (> l2 l1))
(progn
(goto-char end)
(org-update-parent-todo-statistics))
(error "No data for statistics cookie"))))
(goto-char pos)
(move-marker pos nil)))))
(defvar org-entry-property-inherited-from) ;; defined below
(defun org-update-parent-todo-statistics ()
"Update any statistics cookie in the parent of the current headline.
@ -12766,7 +12799,7 @@ Also, store the cursor date in variable org-ans2."
(setq org-ans2 (format-time-string "%Y-%m-%d" time))))
(org-move-overlay org-date-ovl (1- (point)) (1+ (point)) (current-buffer))
(select-window sw)
(select-frame-set-input-focus sf)))
(org-select-frame-set-input-focus sf)))
(defun org-calendar-select ()
"Return to `org-read-date' with the date currently selected.
@ -14287,7 +14320,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
(org-defkey org-mode-map "\C-c^" 'org-sort)
(org-defkey org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c)
(org-defkey org-mode-map "\C-c\C-k" 'org-kill-note-or-show-branches)
(org-defkey org-mode-map "\C-c#" 'org-update-checkbox-count)
(org-defkey org-mode-map "\C-c#" 'org-update-statistics-cookies)
(org-defkey org-mode-map "\C-m" 'org-return)
(org-defkey org-mode-map "\C-j" 'org-return-indent)
(org-defkey org-mode-map "\C-c?" 'org-table-field-info)
@ -14897,6 +14930,8 @@ This command does many different things, depending on context:
- If a function in `org-ctrl-c-ctrl-c-hook' recognizes this location,
this is what we do.
- If the cursor is on a statistics cookie, update it.
- If the cursor is in a headline, prompt for tags and insert them
into the current line, aligned to `org-tags-column'. When called
with prefix arg, realign all tags in the current buffer.
@ -14948,6 +14983,9 @@ This command does many different things, depending on context:
((org-at-property-p)
(call-interactively 'org-property-action))
((org-on-target-p) (call-interactively 'org-update-radio-target-regexp))
((and (org-in-regexp "\\[\\([0-9]*%\\|[0-9]*/[0-9]*\\)\\]")
(or (org-on-heading-p) (org-at-item-p)))
(call-interactively 'org-update-statistics-cookies))
((org-on-heading-p) (call-interactively 'org-set-tags))
((org-at-table.el-p)
(require 'table)
@ -15493,7 +15531,7 @@ such private information before sending the email.")
list))
nil nil
"Remember to cover the basics, that is, what you expected to happen and
what in fact did happen. You don't know hoe to make a good report? See
what in fact did happen. You don't know how to make a good report? See
http://orgmode.org/manual/Feedback.html#Feedback