Explorar o código

org-timer.el: Use the number of minutes in the Effort property

* org-timer.el (org-timer-cancel-timer, org-timer-stop):
Enhance message.
(org-timer-set-timer): Use the number of minutes in the Effort
property as the default timer value.  Three prefix arguments
will ignore the Effort value property.
Bastien Guerry %!s(int64=11) %!d(string=hai) anos
pai
achega
d49957ef02
Modificáronse 1 ficheiros con 24 adicións e 13 borrados
  1. 24 13
      lisp/org-timer.el

+ 24 - 13
lisp/org-timer.el

@@ -159,12 +159,14 @@ With prefix arg STOP, stop it entirely."
 (defun org-timer-stop ()
   "Stop the relative timer."
   (interactive)
-  (run-hooks 'org-timer-stop-hook)
-  (setq org-timer-start-time nil
-	org-timer-pause-time nil
-	org-timer-current-timer nil)
-  (org-timer-set-mode-line 'off)
-  (message "Timer stopped"))
+  (if (not org-timer-current-timer)
+      (message "No running timer")
+    (run-hooks 'org-timer-stop-hook)
+    (setq org-timer-start-time nil
+	  org-timer-pause-time nil
+	  org-timer-current-timer nil)
+    (org-timer-set-mode-line 'off)
+    (message "Timer stopped")))
 
 ;;;###autoload
 (defun org-timer (&optional restart no-insert-p)
@@ -349,13 +351,14 @@ VALUE can be `on', `off', or `pause'."
 (defun org-timer-cancel-timer ()
   "Cancel the current timer."
   (interactive)
-  (when (eval org-timer-current-timer)
+  (if (not org-timer-current-timer)
+      (message "No timer to cancel")
     (run-hooks 'org-timer-cancel-hook)
     (cancel-timer org-timer-current-timer)
-    (setq org-timer-current-timer nil)
-    (setq org-timer-timer-is-countdown nil)
-    (org-timer-set-mode-line 'off))
-  (message "Last timer canceled"))
+    (setq org-timer-current-timer nil
+	  org-timer-timer-is-countdown nil)
+    (org-timer-set-mode-line 'off)
+    (message "Last timer canceled")))
 
 (defun org-timer-show-remaining-time ()
   "Display the remaining time before the timer ends."
@@ -389,9 +392,17 @@ without prompting the user for a duration.
 
 With two `C-u' prefix arguments, use `org-timer-default-timer'
 without prompting the user for a duration and automatically
-replace any running timer."
+replace any running timer.
+
+By default, the timer duration will be set to the number of
+minutes in the Effort property, if any.  You can ignore this by
+using three `C-u' prefix arguments."
   (interactive "P")
-  (let ((minutes (or (and (numberp opt) (number-to-string opt))
+  (let ((minutes (or (and (not (equal opt '(64)))
+			  (number-to-string
+			   (org-hh:mm-string-to-minutes
+			    (org-entry-get (point) "effort"))))
+		     (and (numberp opt) (number-to-string opt))
 		     (and (listp opt) (not (null opt))
 			  (number-to-string org-timer-default-timer))
 		     (read-from-minibuffer