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;