1
0
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2025-01-01 11:15:00 +00:00

Add clock resuming.

If the option `org-clock-resume' is t, and the first clock line in an entry is is
open, clocking into that task resumes the clock from that time.
This commit is contained in:
James TD Smith 2008-10-23 02:31:37 +01:00
parent 2eb3594c5f
commit a70426f115
2 changed files with 29 additions and 7 deletions

View File

@ -24,6 +24,14 @@
* org.el (org-insert-todo-heading): Fix bug with force-heading
argument.
2008-10-23 James TD Smith <ahktenzero@mohorovi.cc>
* org-clock.el (org-clock-in-resume): Add a custom option to
toggle starting the clock from an open clock line.
(org-clock-in): When clocking in to an entry, if
`org-clock-in-resume' is set, check if the first clock line is
open and if so, start the clock from the time in the clock line.
2008-10-22 Carsten Dominik <dominik@science.uva.nl>
* org-exp.el (org-export-as-ascii): Handle the case that we are

View File

@ -95,6 +95,12 @@ The function is called with point at the beginning of the headline."
:group 'org-clock
:type 'integer)
(defcustom org-clock-in-resume nil
"If non-nil, when clocking into a task with a clock entry which
has not been closed, resume the clock from that point"
:group 'org-clock
:type 'boolean)
;;; The clock for measuring work time.
(defvar org-mode-line-string "")
@ -291,12 +297,21 @@ the clocking selection, associated with the letter `d'."
(t "???")))
(setq org-clock-heading (org-propertize org-clock-heading 'face nil))
(org-clock-find-position)
(insert "\n") (backward-char 1)
(org-indent-line-function)
(insert org-clock-string " ")
(setq org-clock-start-time (current-time))
(setq ts (org-insert-time-stamp (current-time) 'with-hm 'inactive))
(if (and org-clock-in-resume
(looking-at (concat "^[ \\t]* " org-clock-string
" \\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}"
" +\\sw+ +[012][0-9]:[0-5][0-9]\\)\\]$")))
(progn (message "Matched %s" (match-string 1))
(setq ts (concat "[" (match-string 1) "]"))
(goto-char (match-end 1))
(setq org-clock-start-time
(apply 'encode-time (org-parse-time-string (match-string 1)))))
(progn
(insert "\n") (backward-char 1)
(org-indent-line-function)
(insert org-clock-string " ")
(setq org-clock-start-time (current-time))
(setq ts (org-insert-time-stamp org-clock-start-time 'with-hm 'inactive))))
(move-marker org-clock-marker (point) (buffer-base-buffer))
(or global-mode-string (setq global-mode-string '("")))
(or (memq 'org-mode-line-string global-mode-string)
@ -962,7 +977,6 @@ the currently selected interval size."
(re-search-forward "#\\+END:")
(end-of-line 0))))
(defun org-clocktable-add-file (file table)
(if table
(let ((lines (org-split-string table "\n"))