From 5a7008af1aa4947ca679afcc76bafe9ab8aab9da Mon Sep 17 00:00:00 2001 From: polos Date: Fri, 3 Mar 2017 11:41:43 +0100 Subject: [PATCH] small revisions (QML) --- .../quick/palindrome-2/generate-qml.lisp | 11 +- .../quick/palindrome-2/qml/palindrome.qml | 175 +++--------------- examples/M-modules/quick/sokoban/sokoban.lisp | 11 +- 3 files changed, 33 insertions(+), 164 deletions(-) diff --git a/examples/M-modules/quick/palindrome-2/generate-qml.lisp b/examples/M-modules/quick/palindrome-2/generate-qml.lisp index faf2afd..438789f 100644 --- a/examples/M-modules/quick/palindrome-2/generate-qml.lisp +++ b/examples/M-modules/quick/palindrome-2/generate-qml.lisp @@ -14,10 +14,9 @@ (let ((num 0)) (mapc (lambda (char xy) (incf num) - (qml "PalindromeImage" - (format s "objectName: 'img~A'~% source: 'img/~A.png'~% x: ~D; y: ~D~%" - num - (image-of-char char) - (* 31 (first xy)) - (* 31 (second xy))))) + (qml "PalindromeImage { objectName: 'img~A'; source: 'img/~A.png'; x: ~D; y: ~D }~%" + num + (image-of-char char) + (* 31 (first xy)) + (* 31 (second xy)))) *chars* (first *move-to-positions*))))) diff --git a/examples/M-modules/quick/palindrome-2/qml/palindrome.qml b/examples/M-modules/quick/palindrome-2/qml/palindrome.qml index e767c3c..7435e8e 100644 --- a/examples/M-modules/quick/palindrome-2/qml/palindrome.qml +++ b/examples/M-modules/quick/palindrome-2/qml/palindrome.qml @@ -6,154 +6,29 @@ import 'ext/' Rectangle { width: 527; height: 527 color: 'black' - - PalindromeImage { - objectName: 'img1' - source: 'img/R.png' - x: 186; y: 186 - } - - PalindromeImage { - objectName: 'img2' - source: 'img/O.png' - x: 217; y: 186 - } - - PalindromeImage { - objectName: 'img3' - source: 'img/T.png' - x: 248; y: 186 - } - - PalindromeImage { - objectName: 'img4' - source: 'img/A.png' - x: 279; y: 186 - } - - PalindromeImage { - objectName: 'img5' - source: 'img/S.png' - x: 310; y: 186 - } - - PalindromeImage { - objectName: 'img6' - source: 'img/O.png' - x: 186; y: 217 - } - - PalindromeImage { - objectName: 'img7' - source: 'img/P.png' - x: 217; y: 217 - } - - PalindromeImage { - objectName: 'img8' - source: 'img/E.png' - x: 248; y: 217 - } - - PalindromeImage { - objectName: 'img9' - source: 'img/R.png' - x: 279; y: 217 - } - - PalindromeImage { - objectName: 'img10' - source: 'img/A.png' - x: 310; y: 217 - } - - PalindromeImage { - objectName: 'img11' - source: 'img/T.png' - x: 186; y: 248 - } - - PalindromeImage { - objectName: 'img12' - source: 'img/E.png' - x: 217; y: 248 - } - - PalindromeImage { - objectName: 'img13' - source: 'img/N.png' - x: 248; y: 248 - } - - PalindromeImage { - objectName: 'img14' - source: 'img/E.png' - x: 279; y: 248 - } - - PalindromeImage { - objectName: 'img15' - source: 'img/T.png' - x: 310; y: 248 - } - - PalindromeImage { - objectName: 'img16' - source: 'img/A.png' - x: 186; y: 279 - } - - PalindromeImage { - objectName: 'img17' - source: 'img/R.png' - x: 217; y: 279 - } - - PalindromeImage { - objectName: 'img18' - source: 'img/E.png' - x: 248; y: 279 - } - - PalindromeImage { - objectName: 'img19' - source: 'img/P.png' - x: 279; y: 279 - } - - PalindromeImage { - objectName: 'img20' - source: 'img/O.png' - x: 310; y: 279 - } - - PalindromeImage { - objectName: 'img21' - source: 'img/S.png' - x: 186; y: 310 - } - - PalindromeImage { - objectName: 'img22' - source: 'img/A.png' - x: 217; y: 310 - } - - PalindromeImage { - objectName: 'img23' - source: 'img/T.png' - x: 248; y: 310 - } - - PalindromeImage { - objectName: 'img24' - source: 'img/O.png' - x: 279; y: 310 - } - - PalindromeImage { - objectName: 'img25' - source: 'img/R.png' - x: 310; y: 310 - } + PalindromeImage { objectName: 'img1'; source: 'img/R.png'; x: 186; y: 186 } + PalindromeImage { objectName: 'img2'; source: 'img/O.png'; x: 217; y: 186 } + PalindromeImage { objectName: 'img3'; source: 'img/T.png'; x: 248; y: 186 } + PalindromeImage { objectName: 'img4'; source: 'img/A.png'; x: 279; y: 186 } + PalindromeImage { objectName: 'img5'; source: 'img/S.png'; x: 310; y: 186 } + PalindromeImage { objectName: 'img6'; source: 'img/O.png'; x: 186; y: 217 } + PalindromeImage { objectName: 'img7'; source: 'img/P.png'; x: 217; y: 217 } + PalindromeImage { objectName: 'img8'; source: 'img/E.png'; x: 248; y: 217 } + PalindromeImage { objectName: 'img9'; source: 'img/R.png'; x: 279; y: 217 } + PalindromeImage { objectName: 'img10'; source: 'img/A.png'; x: 310; y: 217 } + PalindromeImage { objectName: 'img11'; source: 'img/T.png'; x: 186; y: 248 } + PalindromeImage { objectName: 'img12'; source: 'img/E.png'; x: 217; y: 248 } + PalindromeImage { objectName: 'img13'; source: 'img/N.png'; x: 248; y: 248 } + PalindromeImage { objectName: 'img14'; source: 'img/E.png'; x: 279; y: 248 } + PalindromeImage { objectName: 'img15'; source: 'img/T.png'; x: 310; y: 248 } + PalindromeImage { objectName: 'img16'; source: 'img/A.png'; x: 186; y: 279 } + PalindromeImage { objectName: 'img17'; source: 'img/R.png'; x: 217; y: 279 } + PalindromeImage { objectName: 'img18'; source: 'img/E.png'; x: 248; y: 279 } + PalindromeImage { objectName: 'img19'; source: 'img/P.png'; x: 279; y: 279 } + PalindromeImage { objectName: 'img20'; source: 'img/O.png'; x: 310; y: 279 } + PalindromeImage { objectName: 'img21'; source: 'img/S.png'; x: 186; y: 310 } + PalindromeImage { objectName: 'img22'; source: 'img/A.png'; x: 217; y: 310 } + PalindromeImage { objectName: 'img23'; source: 'img/T.png'; x: 248; y: 310 } + PalindromeImage { objectName: 'img24'; source: 'img/O.png'; x: 279; y: 310 } + PalindromeImage { objectName: 'img25'; source: 'img/R.png'; x: 310; y: 310 } } diff --git a/examples/M-modules/quick/sokoban/sokoban.lisp b/examples/M-modules/quick/sokoban/sokoban.lisp index 289121f..59c3282 100644 --- a/examples/M-modules/quick/sokoban/sokoban.lisp +++ b/examples/M-modules/quick/sokoban/sokoban.lisp @@ -107,20 +107,15 @@ (defun animation-change (running) ; called from QML (incf *running-animations* (if running 1 -1)) - (run-queued)) + (x:while (and (zerop *running-animations*) + *function-queue*) + (funcall (pop *function-queue*)))) (defun run-or-enqueue (function) (if (zerop *running-animations*) (funcall function) (setf *function-queue* (nconc *function-queue* (list function))))) -(defun run-queued () - "If there is no currently running animation, run all functions in the queue." - (when (and (zerop *running-animations*) - *function-queue*) - (funcall (pop *function-queue*)) - (qlater 'run-queued))) - (defmacro queued (&rest functions) "Run passed functions in order, waiting for currently running (or newly triggered) animations to finish first." `(progn