66 lines
1.8 KiB
Common Lisp
66 lines
1.8 KiB
Common Lisp
(uiop:define-package :cockpit
|
|
(:use :cl :eql :qml-lisp :sextant :config :options)
|
|
(:export
|
|
#:show-welcome-screen-p
|
|
#:data-path))
|
|
(in-package :cockpit)
|
|
|
|
(qrequire :quick)
|
|
|
|
(defconstant +cockpit-version+ 0)
|
|
|
|
(defun initialize ()
|
|
(ext:catch-signal ext:+SIGTERM+ :catch)
|
|
(ext:set-signal-handler ext:+SIGTERM+ #'terminate)
|
|
(load-config-file "harbour-sextant" "config.lisp")
|
|
(when (and (not (slynkp)) (get-slynk-at-startup-p))
|
|
(start-slynk))
|
|
;; (when (< (get-last-seen-version) +cockpit-version+)
|
|
;; (qjs |showWelcomeScreen| "filesPage"
|
|
;; (qlet ((root-url "QUrl(QString)" qml:*root*))
|
|
;; (|path| root-url))
|
|
;; "welcome.org"))
|
|
)
|
|
|
|
(defun finalize ()
|
|
(save-config-file "harbour-sextant" "config.lisp")
|
|
(when (slynkp)
|
|
(stop-slynk)))
|
|
|
|
;; (defun start ()
|
|
;; (qconnect qml:*quick-view* "statusChanged(QQuickView::Status)"
|
|
;; (lambda (status)
|
|
;; (case status
|
|
;; (#.|QQuickView.Ready| (qml-reloaded)))))
|
|
;; (qconnect qml:*quick-view* "closing(QQuickCloseEvent*)"
|
|
;; (lambda (close)
|
|
;; (declare (ignore close))
|
|
;; (finalize))))
|
|
|
|
(defun terminate ()
|
|
(finalize)
|
|
(qrun #'qquit))
|
|
|
|
(defun reload-qml (&optional url)
|
|
"Reload QML file from an url, directly on the device."
|
|
(qrun*
|
|
(if url
|
|
(|setSource| qml:*quick-view* (qnew "QUrl(QString)" url))
|
|
(qml:reload))
|
|
(|toString| (|source| qml:*quick-view*))))
|
|
|
|
(defun set-qml (url)
|
|
(|setSource| qml:*quick-view* (qnew "QUrl(QString)" url))
|
|
(|toString| (|source| qml:*quick-view*)))
|
|
|
|
(defun qml-reloaded ())
|
|
|
|
(defun show-welcome-screen-p () (< (get-last-seen-version) +cockpit-version+))
|
|
|
|
(defun data-path ()
|
|
(qlet ((root-url "QUrl(QString)" qml:*root*))
|
|
(|path| root-url)))
|
|
|
|
(initialize)
|
|
|
|
;; (qlater #'start)
|