mirror of
https://gitlab.com/eql/lqml.git
synced 2025-12-06 02:30:38 -08:00
add new snippet 'snippets/toast' (like android 'Toast')
This commit is contained in:
parent
61831ba362
commit
a58948b9d0
6 changed files with 99 additions and 20 deletions
|
|
@ -1,19 +0,0 @@
|
||||||
(in-package :qml-user)
|
|
||||||
|
|
||||||
(defun request ()
|
|
||||||
"Runs request in a thread, returns after thread finished."
|
|
||||||
(q> |playing| "busy" t) ; start animation
|
|
||||||
(let (response)
|
|
||||||
;; worker thread
|
|
||||||
(mp:process-run-function
|
|
||||||
:request
|
|
||||||
(lambda ()
|
|
||||||
(sleep 3) ; working hard...
|
|
||||||
(setf response :ok)
|
|
||||||
(qexit)))
|
|
||||||
;; main thread
|
|
||||||
(qexec (* 60 1000)) ; timeout (ms)
|
|
||||||
(q> |playing| "busy" nil) ; stop animation
|
|
||||||
response))
|
|
||||||
|
|
||||||
(qsingle-shot 1000 'request)
|
|
||||||
|
|
@ -1 +1,19 @@
|
||||||
(load "lisp/main.lisp")
|
(in-package :qml-user)
|
||||||
|
|
||||||
|
(defun request ()
|
||||||
|
"Runs request in a thread, returns after thread finished."
|
||||||
|
(q> |playing| "busy" t) ; start animation
|
||||||
|
(let (response)
|
||||||
|
;; worker thread
|
||||||
|
(mp:process-run-function
|
||||||
|
:request
|
||||||
|
(lambda ()
|
||||||
|
(sleep 3) ; working hard...
|
||||||
|
(setf response :ok)
|
||||||
|
(qexit)))
|
||||||
|
;; main thread
|
||||||
|
(qexec (* 60 1000)) ; timeout (ms)
|
||||||
|
(q> |playing| "busy" nil) ; stop animation
|
||||||
|
response))
|
||||||
|
|
||||||
|
(qsingle-shot 1000 'request)
|
||||||
|
|
|
||||||
60
snippets/toast/qml/ext/Toast.qml
Normal file
60
snippets/toast/qml/ext/Toast.qml
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
import QtQuick 2.15
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: toast
|
||||||
|
objectName: "toast"
|
||||||
|
x: (parent.width - width) / 2
|
||||||
|
y: (parent.height - height) / 2
|
||||||
|
z: 99
|
||||||
|
width: msg.contentWidth + 70
|
||||||
|
height: msg.contentHeight + 30
|
||||||
|
color: "#303030"
|
||||||
|
border.width: 2
|
||||||
|
border.color: "white"
|
||||||
|
radius: height / 2
|
||||||
|
opacity: 0
|
||||||
|
visible: false
|
||||||
|
|
||||||
|
function message(text) { // called from Lisp
|
||||||
|
toast.visible = true
|
||||||
|
msg.text = text
|
||||||
|
anim.start()
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: msg
|
||||||
|
font.pixelSize: 16
|
||||||
|
font.bold: true
|
||||||
|
anchors.centerIn: parent
|
||||||
|
color: "white"
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
width: toast.parent.width - 2 * toast.radius - 10
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
SequentialAnimation {
|
||||||
|
id: anim
|
||||||
|
onFinished: { toast.visible = false }
|
||||||
|
|
||||||
|
OpacityAnimator {
|
||||||
|
from: 0
|
||||||
|
to: 0.8
|
||||||
|
target: toast
|
||||||
|
easing.type: Easing.InOutQuart
|
||||||
|
duration: 500
|
||||||
|
}
|
||||||
|
|
||||||
|
PauseAnimation {
|
||||||
|
duration: 3000
|
||||||
|
}
|
||||||
|
|
||||||
|
OpacityAnimator {
|
||||||
|
from: 0.8
|
||||||
|
to: 0
|
||||||
|
target: toast
|
||||||
|
easing.type: Easing.InOutQuart
|
||||||
|
duration: 1500
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
snippets/toast/qml/main.qml
Normal file
9
snippets/toast/qml/main.qml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
import QtQuick 2.15
|
||||||
|
import 'ext/' as Ext
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 300
|
||||||
|
height: 500
|
||||||
|
|
||||||
|
Ext.Toast {}
|
||||||
|
}
|
||||||
4
snippets/toast/readme.md
Normal file
4
snippets/toast/readme.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
An info message similar to a `Toast` on android.
|
||||||
7
snippets/toast/run.lisp
Normal file
7
snippets/toast/run.lisp
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
(in-package :qml-user)
|
||||||
|
|
||||||
|
(defun toast (message)
|
||||||
|
(qjs |message| "toast" message))
|
||||||
|
|
||||||
|
(qsingle-shot 1000 (lambda () (toast "You look tired, go get some coffee.")))
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue