mirror of
https://gitlab.com/eql/lqml.git
synced 2025-12-06 02:30:38 -08:00
fix possible problem with QML auto-reload on desktop
This commit is contained in:
parent
6bb056f1f0
commit
c8568493ce
3 changed files with 59 additions and 45 deletions
|
|
@ -20,29 +20,33 @@
|
|||
|
||||
(let ((secs 0))
|
||||
(defun watch-files ()
|
||||
(let ((sum 0)
|
||||
(max 0)
|
||||
files)
|
||||
;; don't cache, files might be added/removed during development
|
||||
(dolist (file (directory (merge-pathnames "../../qml/**/*.qml" *dir*)))
|
||||
(unless (search "/." (namestring file))
|
||||
(push file files)))
|
||||
(dolist (file files)
|
||||
(let ((date (file-write-date file)))
|
||||
(when (> date max)
|
||||
(setf max date
|
||||
*edited-file* file))
|
||||
(incf sum date)))
|
||||
(let ((edited (namestring *edited-file*)))
|
||||
(setf *edited-file*
|
||||
(subseq edited (+ 5 (search "/qml/" edited)))))
|
||||
(when (/= secs sum)
|
||||
(unless (zerop secs)
|
||||
(if (reload-main-p)
|
||||
(qml:reload)
|
||||
(qjs |reload| *edited-file*)))
|
||||
(setf secs sum)))
|
||||
(qsingle-shot 250 'watch-files)))
|
||||
(flet ((repeat ()
|
||||
(qsingle-shot 500 'watch-files)))
|
||||
(let ((sum 0)
|
||||
(max 0)
|
||||
files)
|
||||
;; don't cache, files might be added/removed during development
|
||||
(dolist (file (directory (merge-pathnames "../../qml/**/*.qml" *dir*)))
|
||||
(unless (search "/." (namestring file))
|
||||
(push file files)))
|
||||
(dolist (file files)
|
||||
(let ((date (file-write-date file)))
|
||||
(unless date ; might be NIL while saving
|
||||
(return-from watch-files (repeat)))
|
||||
(when (> date max)
|
||||
(setf max date
|
||||
*edited-file* file))
|
||||
(incf sum date)))
|
||||
(let ((edited (namestring *edited-file*)))
|
||||
(setf *edited-file*
|
||||
(subseq edited (+ 5 (search "/qml/" edited)))))
|
||||
(when (/= secs sum)
|
||||
(unless (zerop secs)
|
||||
(if (reload-main-p)
|
||||
(qml:reload)
|
||||
(qjs |reload| *edited-file*)))
|
||||
(setf secs sum)))
|
||||
(repeat))))
|
||||
|
||||
(progn
|
||||
(load "qml/.create-qml-loaders")
|
||||
|
|
|
|||
|
|
@ -13,17 +13,22 @@
|
|||
(let ((secs 0)
|
||||
files)
|
||||
(defun watch-files ()
|
||||
(unless files
|
||||
(dolist (file (directory (merge-pathnames "../../qml/**/*.qml" *dir*)))
|
||||
(push file files)))
|
||||
(let ((curr 0))
|
||||
(dolist (file files)
|
||||
(incf curr (file-write-date file)))
|
||||
(when (/= secs curr)
|
||||
(unless (zerop secs)
|
||||
(qml:reload))
|
||||
(setf secs curr)))
|
||||
(qsingle-shot 250 'watch-files)))
|
||||
(flet ((repeat ()
|
||||
(qsingle-shot 500 'watch-files)))
|
||||
(unless files
|
||||
(dolist (file (directory (merge-pathnames "../../qml/**/*.qml" *dir*)))
|
||||
(push file files)))
|
||||
(let ((curr 0))
|
||||
(dolist (file files)
|
||||
(let ((date (file-write-date file)))
|
||||
(unless date ; might be NIL while saving
|
||||
(return-from watch-files (repeat)))
|
||||
(incf curr date)))
|
||||
(when (/= secs curr)
|
||||
(unless (zerop secs)
|
||||
(qml:reload))
|
||||
(setf secs curr)))
|
||||
(repeat))))
|
||||
|
||||
(watch-files)
|
||||
|
||||
|
|
|
|||
|
|
@ -13,17 +13,22 @@
|
|||
(let ((secs 0)
|
||||
files)
|
||||
(defun watch-files ()
|
||||
(unless files
|
||||
(dolist (file (directory (merge-pathnames "../../qml/**/*.qml" *dir*)))
|
||||
(push file files)))
|
||||
(let ((curr 0))
|
||||
(dolist (file files)
|
||||
(incf curr (file-write-date file)))
|
||||
(when (/= secs curr)
|
||||
(unless (zerop secs)
|
||||
(qml:reload))
|
||||
(setf secs curr)))
|
||||
(qsingle-shot 250 'watch-files)))
|
||||
(flet ((repeat ()
|
||||
(qsingle-shot 500 'watch-files)))
|
||||
(unless files
|
||||
(dolist (file (directory (merge-pathnames "../../qml/**/*.qml" *dir*)))
|
||||
(push file files)))
|
||||
(let ((curr 0))
|
||||
(dolist (file files)
|
||||
(let ((date (file-write-date file)))
|
||||
(unless date ; might be NIL while saving
|
||||
(return-from watch-files (repeat)))
|
||||
(incf curr date)))
|
||||
(when (/= secs curr)
|
||||
(unless (zerop secs)
|
||||
(qml:reload))
|
||||
(setf secs curr)))
|
||||
(repeat))))
|
||||
|
||||
(watch-files)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue