diff --git a/examples/M-modules/quick/Tic-Tac-Toe/README.txt b/examples/M-modules/quick/Tic-Tac-Toe/README.txt index e00858b..c8baf50 100644 --- a/examples/M-modules/quick/Tic-Tac-Toe/README.txt +++ b/examples/M-modules/quick/Tic-Tac-Toe/README.txt @@ -1,4 +1,8 @@ +INFO +==== + This is a port of a QtQuick1/Qt4 example. +Please note that this is _old_ QML code (QtQuick 1). The JS game logic has (obviously) been ported to Lisp, see "game-logic.lisp". diff --git a/examples/M-modules/quick/Tic-Tac-Toe/properties.lisp b/examples/M-modules/quick/Tic-Tac-Toe/properties.lisp new file mode 100644 index 0000000..b5eeaa3 --- /dev/null +++ b/examples/M-modules/quick/Tic-Tac-Toe/properties.lisp @@ -0,0 +1,11 @@ +;;; properties dialog + +(defun sym (name package) + (find-symbol (symbol-name name) package)) + +(defun show-properties-dialog (&optional item) + (unless (find-package :properties) + (load (in-home "gui/properties"))) + (funcall (sym :show :properties) + (or item qml:*caller*) + t)) ; all instance properties (for QML) diff --git a/examples/M-modules/quick/Tic-Tac-Toe/tic-tac-toe.lisp b/examples/M-modules/quick/Tic-Tac-Toe/tic-tac-toe.lisp index a7c7fef..5a9b754 100644 --- a/examples/M-modules/quick/Tic-Tac-Toe/tic-tac-toe.lisp +++ b/examples/M-modules/quick/Tic-Tac-Toe/tic-tac-toe.lisp @@ -14,6 +14,7 @@ (require :qml-lisp "qml-lisp") (require :game-logic "game-logic") +(require :properties "properties") (defun run () ;; *quick-view* can be either a QQuickView or a QQuickWidget diff --git a/examples/M-modules/quick/item-model/abstract-model.lisp b/examples/M-modules/quick/item-model/abstract-model.lisp index 7d62c4e..9f72a1a 100644 --- a/examples/M-modules/quick/item-model/abstract-model.lisp +++ b/examples/M-modules/quick/item-model/abstract-model.lisp @@ -5,7 +5,8 @@ (qrequire :quick) -(require :qml-lisp "qml-lisp") +(require :qml-lisp "qml-lisp") +(require :properties "properties") (use-package :qml) diff --git a/examples/M-modules/quick/item-model/list-model.lisp b/examples/M-modules/quick/item-model/list-model.lisp index 05aecad..e97a73c 100644 --- a/examples/M-modules/quick/item-model/list-model.lisp +++ b/examples/M-modules/quick/item-model/list-model.lisp @@ -5,7 +5,8 @@ (qrequire :quick) -(require :qml-lisp "qml-lisp") +(require :qml-lisp "qml-lisp") +(require :properties "properties") (use-package :qml) diff --git a/examples/M-modules/quick/item-model/properties.lisp b/examples/M-modules/quick/item-model/properties.lisp new file mode 100644 index 0000000..b5eeaa3 --- /dev/null +++ b/examples/M-modules/quick/item-model/properties.lisp @@ -0,0 +1,11 @@ +;;; properties dialog + +(defun sym (name package) + (find-symbol (symbol-name name) package)) + +(defun show-properties-dialog (&optional item) + (unless (find-package :properties) + (load (in-home "gui/properties"))) + (funcall (sym :show :properties) + (or item qml:*caller*) + t)) ; all instance properties (for QML) diff --git a/examples/M-modules/quick/painted-item/painted-item.lisp b/examples/M-modules/quick/painted-item/painted-item.lisp index 7b43de5..d31608c 100644 --- a/examples/M-modules/quick/painted-item/painted-item.lisp +++ b/examples/M-modules/quick/painted-item/painted-item.lisp @@ -10,21 +10,12 @@ (qrequire :quick) -(require :qml-lisp "qml-lisp") -(require :clock "clock") +(require :qml-lisp "qml-lisp") +(require :clock "clock") +(require :properties "properties") (use-package :qml) -;; properties - -(defun sym (name package) - (find-symbol (symbol-name name) package)) - -(defun show-properties-dialog (item) - (unless (find-package :properties) - (load (in-home "gui/properties"))) - (funcall (sym :show :properties) item t)) - ;; clock (defun clock () diff --git a/examples/M-modules/quick/painted-item/properties.lisp b/examples/M-modules/quick/painted-item/properties.lisp new file mode 100644 index 0000000..b5eeaa3 --- /dev/null +++ b/examples/M-modules/quick/painted-item/properties.lisp @@ -0,0 +1,11 @@ +;;; properties dialog + +(defun sym (name package) + (find-symbol (symbol-name name) package)) + +(defun show-properties-dialog (&optional item) + (unless (find-package :properties) + (load (in-home "gui/properties"))) + (funcall (sym :show :properties) + (or item qml:*caller*) + t)) ; all instance properties (for QML) diff --git a/examples/M-modules/quick/qml-lisp/example.lisp b/examples/M-modules/quick/qml-lisp/example.lisp index 06ef643..d6506be 100644 --- a/examples/M-modules/quick/qml-lisp/example.lisp +++ b/examples/M-modules/quick/qml-lisp/example.lisp @@ -5,22 +5,11 @@ (qrequire :quick) -(require :qml-lisp "qml-lisp") +(require :qml-lisp "qml-lisp") +(require :properties "properties") (use-package :qml) -;; for example (5) in "qml/example.qml" - -(defun sym (name package) - (find-symbol (symbol-name name) package)) - -(defun show-properties-dialog () - (unless (find-package :properties) - (load (in-home "gui/properties"))) - (funcall (sym :show :properties) qml:*caller* t)) - -;; ini - (defun run () ;; *quick-view* can be either a QQuickView or a QQuickWidget (setf qml:*quick-view* (qnew "QQuickView")) diff --git a/examples/M-modules/quick/qml-lisp/properties.lisp b/examples/M-modules/quick/qml-lisp/properties.lisp new file mode 100644 index 0000000..b5eeaa3 --- /dev/null +++ b/examples/M-modules/quick/qml-lisp/properties.lisp @@ -0,0 +1,11 @@ +;;; properties dialog + +(defun sym (name package) + (find-symbol (symbol-name name) package)) + +(defun show-properties-dialog (&optional item) + (unless (find-package :properties) + (load (in-home "gui/properties"))) + (funcall (sym :show :properties) + (or item qml:*caller*) + t)) ; all instance properties (for QML) diff --git a/gui/properties.lisp b/gui/properties.lisp index 745a1fb..7bb3b78 100644 --- a/gui/properties.lisp +++ b/gui/properties.lisp @@ -11,6 +11,7 @@ (defvar *main* (qload-ui (in-home "gui/properties"))) (defvar-ui *main* + *class-name* *view* *depth* *label* @@ -24,6 +25,9 @@ (defvar *object* nil) (defun ini () + (let ((font (|font.QApplication|))) + (! "setBold" font t) + (! "setFont" *class-name* font)) (! "setReadOnly" *view* t) (! "setMinimum" *depth* 1) (! "resize" *main* '(650 500)) @@ -53,9 +57,11 @@ (when object (setf *object* object) (let ((depth 1) - (name (qt-object-name object))) + (name (qt-object-name *object*))) (! "setText" *label* name) (! "setWindowTitle" *main* name) + (let ((name (! "className" (! "metaObject" *object*)))) + (! "setText" *class-name* (subseq name 0 (position #\_ name)))) (x:while (setf name (qsuper-class-name name)) (incf depth)) (! "setMaximum" *depth* depth) diff --git a/gui/properties.ui b/gui/properties.ui index 5d2286d..c69ceef 100644 --- a/gui/properties.ui +++ b/gui/properties.ui @@ -14,6 +14,9 @@ Properties + + + diff --git a/src/ecl_fun.cpp b/src/ecl_fun.cpp index a11b3f5..50eb9ef 100644 --- a/src/ecl_fun.cpp +++ b/src/ecl_fun.cpp @@ -1647,7 +1647,7 @@ cl_object qapropos2(cl_object l_search, cl_object l_class, cl_object l_type, cl_ search = toCString(l_search); } bool all = (Cnil == l_type); bool q = all ? false : (Ct == cl_eql(q_keyword(), l_type)); - bool no_offset = (Ct == l_no_offset); + bool no_offset = (l_no_offset != Cnil); StrList classes; bool qt_eql = false; const QMetaObject* mo = 0;