mirror of
https://gitlab.com/eql/lqml.git
synced 2025-12-06 02:30:38 -08:00
35 lines
1 KiB
Common Lisp
35 lines
1 KiB
Common Lisp
(in-package :app)
|
|
|
|
(defun ini ()
|
|
(qt:ini)
|
|
(db:ini)
|
|
(populate-db)
|
|
;; loads image directly from database, see 'cpp/qt.cpp::DatabaseImageProvider'
|
|
(q> |source| ui:*logo* "image://db/logo-128"))
|
|
|
|
(defun in-data-path (&optional (file "") (prefix "data/"))
|
|
#+mobile
|
|
(merge-pathnames (x:cc prefix file))
|
|
#-mobile
|
|
(x:cc (qrun* (qt:data-path qt:*cpp* prefix)) file))
|
|
|
|
(defun file-bytes (file)
|
|
(with-open-file (s file :element-type '(unsigned-byte 8))
|
|
(let ((arr (make-array (file-length s) :element-type '(unsigned-byte 8))))
|
|
(read-sequence arr s)
|
|
arr)))
|
|
|
|
;; put images in database
|
|
|
|
(defun populate-db ()
|
|
(let ((files (sort (directory (merge-pathnames "blob/*.png"))
|
|
'string< :key 'pathname-name)))
|
|
(when (/= (length files) (db:size))
|
|
(if (probe-file (merge-pathnames "blob/"))
|
|
(progn
|
|
(db:delete-all-images)
|
|
(dolist (file files)
|
|
(db:save-image (pathname-name file) (file-bytes file))))
|
|
(x:d "No 'blob/' directory found.")))))
|
|
|
|
(qlater 'ini)
|