mirror of https://codeberg.org/cage/tinmop/
- [GUI] added scheduler arguments function to set busy the UI during the scheduled process running.
This commit is contained in:
parent
9009e943d3
commit
f98e02a8e2
|
@ -28,17 +28,30 @@
|
||||||
0))
|
0))
|
||||||
|
|
||||||
(defmacro define-scheduled-procedure ((name frequency) &body body)
|
(defmacro define-scheduled-procedure ((name frequency) &body body)
|
||||||
(a:with-gensyms (event-fn)
|
(a:with-gensyms (event-fn process-fn)
|
||||||
(let ((fn-name (misc:format-fn-symbol t "~a" name)))
|
(let ((fn-name (misc:format-fn-symbol t "~a" name)))
|
||||||
`(defun ,fn-name (&key (start-on-boot nil))
|
`(defun ,fn-name (&key (start-on-boot nil) (set-busy nil) (set-busy-on-boot nil))
|
||||||
(labels ((,event-fn ()
|
(macrolet ((enqueue (&body local-body)
|
||||||
(ev:with-enqueued-process-and-unblock
|
`(ev:with-enqueued-process-and-unblock
|
||||||
(program-events:+minimum-event-priority+)
|
(program-events:+minimum-event-priority+)
|
||||||
,@body
|
,@local-body)))
|
||||||
(,fn-name))))
|
(labels ((,process-fn ()
|
||||||
|
(progn
|
||||||
|
,@body
|
||||||
|
(,fn-name)))
|
||||||
|
(,event-fn ()
|
||||||
|
(enqueue
|
||||||
|
(if set-busy
|
||||||
|
(gui-goodies:with-busy* (gui-goodies:*main-frame*)
|
||||||
|
(,process-fn))
|
||||||
|
(,process-fn)))))
|
||||||
(when start-on-boot
|
(when start-on-boot
|
||||||
(funcall (function ,event-fn)))
|
(if set-busy-on-boot
|
||||||
(gui:after ,frequency (function ,event-fn)))))))
|
(enqueue
|
||||||
|
(gui-goodies:with-busy* (gui-goodies:*main-frame*)
|
||||||
|
(,process-fn)))
|
||||||
|
(enqueue (,event-fn))))
|
||||||
|
(gui:after ,frequency (function ,event-fn))))))))
|
||||||
|
|
||||||
(defun notify (message)
|
(defun notify (message)
|
||||||
(when gui-goodies:*main-frame*
|
(when gui-goodies:*main-frame*
|
||||||
|
@ -46,7 +59,6 @@
|
||||||
|
|
||||||
(define-scheduled-procedure (refresh-gemlog-subscriptions
|
(define-scheduled-procedure (refresh-gemlog-subscriptions
|
||||||
+refresh-gemlog-subscriptions-frequency+)
|
+refresh-gemlog-subscriptions-frequency+)
|
||||||
|
|
||||||
(notify (_ "Gemlogs subscriptions updating in progress…"))
|
(notify (_ "Gemlogs subscriptions updating in progress…"))
|
||||||
(comm:make-request :gemini-gemlog-refresh-all-subscriptions 1)
|
(comm:make-request :gemini-gemlog-refresh-all-subscriptions 1)
|
||||||
(notify (_ "Gemlogs subscriptions updated")))
|
(notify (_ "Gemlogs subscriptions updated")))
|
||||||
|
@ -60,6 +72,6 @@
|
||||||
(notify (_ "Old history entries removed")))
|
(notify (_ "Old history entries removed")))
|
||||||
|
|
||||||
(defun start ()
|
(defun start ()
|
||||||
(refresh-gemlog-subscriptions :start-on-boot t)
|
(refresh-gemlog-subscriptions :start-on-boot t :set-busy-on-boot t)
|
||||||
(purge-gemlogs)
|
(purge-gemlogs)
|
||||||
(purge-history))
|
(purge-history))
|
||||||
|
|
Loading…
Reference in New Issue