aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaúl Benencia <id@rbenencia.name>2026-01-05 22:30:07 -0300
committerRaúl Benencia <id@rbenencia.name>2026-01-05 22:30:07 -0300
commit7026c1c423f1a6320c885bb50fce6393e65167f6 (patch)
treea132c76fcd11452e48084b532992af10b1aa9d0b
parentc0d67b0dde3d3acf4df575f482125da3d18b40cc (diff)
Pull up common code
-rw-r--r--org-tempus.el40
1 files changed, 26 insertions, 14 deletions
diff --git a/org-tempus.el b/org-tempus.el
index d528445..94d1733 100644
--- a/org-tempus.el
+++ b/org-tempus.el
@@ -630,6 +630,14 @@ Return non-nil when clock-in succeeds."
(org-clock-clock-in (list marker) nil start-time)
t)))
+(defun org-tempus--auto-clock-in (clock-in-fn start-time msg)
+ "Auto clock in using CLOCK-IN-FN at START-TIME and notify with MSG."
+ (when (funcall clock-in-fn start-time)
+ (org-tempus--reset-auto-clock-state)
+ (org-tempus--update-mode-line)
+ (org-tempus--notify msg)
+ t))
+
(defun org-tempus--maybe-auto-clock-in (&optional start-time)
"Auto clock in to the last task if eligible.
Return non-nil when an auto clock-in occurs."
@@ -640,11 +648,20 @@ Return non-nil when an auto clock-in occurs."
(let ((since (float-time (time-subtract (current-time)
org-tempus--auto-clock-out-time))))
(when (<= since (* 60 org-tempus-auto-clock-in-window-minutes))
- (org-tempus--clock-in-last start-time)
- (org-tempus--reset-auto-clock-state)
- (org-tempus--update-mode-line)
- (org-tempus--notify "Auto clocked in to your last task.")
- t))))
+ (org-tempus--auto-clock-in
+ #'org-tempus--clock-in-last
+ start-time
+ "Auto clocked in to your last task.")))))
+
+(defun org-tempus--clock-in-default (start-time)
+ "Clock in to the default task using START-TIME.
+Return non-nil when clock-in succeeds."
+ (let ((marker (org-id-find org-tempus-auto-clock-default-task-id 'marker)))
+ (when (and marker (marker-buffer marker))
+ (with-current-buffer (marker-buffer marker)
+ (org-with-point-at marker
+ (org-clock-in nil start-time)))
+ t)))
(defun org-tempus--maybe-auto-clock-in-default (&optional start-time)
"Auto clock in to the default task if eligible.
@@ -652,15 +669,10 @@ Return non-nil when an auto clock-in occurs."
(when (and org-tempus-auto-clock-enabled
org-tempus-auto-clock-default-task-id
(not (org-clock-is-active)))
- (let ((marker (org-id-find org-tempus-auto-clock-default-task-id 'marker)))
- (when (and marker (marker-buffer marker))
- (with-current-buffer (marker-buffer marker)
- (org-with-point-at marker
- (org-clock-in nil start-time)))
- (org-tempus--reset-auto-clock-state)
- (org-tempus--update-mode-line)
- (org-tempus--notify "Auto clocked in to your default task.")
- t))))
+ (org-tempus--auto-clock-in
+ #'org-tempus--clock-in-default
+ start-time
+ "Auto clocked in to your default task.")))
(defun org-tempus--maybe-update-dconf (&optional value)
"Update dconf with VALUE when `org-tempus-dconf-path' is set."
nihil fit ex nihilo