Test receiving C++ argument signals
Wed Apr 8 17:10:42 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Test receiving C++ argument signals
diff -rN -u old-qt.tests/src/click.lisp new-qt.tests/src/click.lisp
--- old-qt.tests/src/click.lisp 2014-10-30 07:03:34.000000000 +0100
+++ new-qt.tests/src/click.lisp 2014-10-30 07:03:34.000000000 +0100
@@ -13,6 +13,7 @@
(click-count 0))
(qt:connect (qt:get-signal widget "clicked()")
#'(lambda ()
+ (5am:is (eq widget (qt:sender)))
(incf click-count)))
(cxx:set-text widget "Hello World")
@@ -31,7 +32,7 @@
(click-count 0))
(qt:connect (qt:get-signal widget "clicked(bool)")
#'(lambda (checked)
- (5am:is (eql t checked))
+ (5am:is (eql nil checked))
(incf click-count)))
(5am:is (= 0 click-count))
(qt.test:test.mouse-click widget qt:+left-button+)
@@ -39,3 +40,5 @@
(qt.test:test.mouse-click widget qt:+left-button+)
(5am:is (= 2 click-count)))))
+
+
diff -rN -u old-qt.tests/src/signal-slot.lisp new-qt.tests/src/signal-slot.lisp
--- old-qt.tests/src/signal-slot.lisp 2014-10-30 07:03:34.000000000 +0100
+++ new-qt.tests/src/signal-slot.lisp 2014-10-30 07:03:34.000000000 +0100
@@ -119,3 +119,41 @@
(test-destroyed-signal)
(tg:gc :full t)
(5am:is (eql t *destroyed*)))
+
+(5am:test int-signal
+ "Receive a int signal."
+ (qt:with-app
+ (let ((spin-box (make-instance 'qt:spin-box))
+ (current-value)
+ (current-string-value))
+ (qt:connect (qt:get-signal spin-box "valueChanged(int)")
+ #'(lambda (value)
+ (setf current-value value)))
+ (qt:connect (qt:get-signal spin-box "valueChanged(const QString&)")
+ #'(lambda (value)
+ (setf current-string-value value)))
+ (5am:for-all ((value (5am:gen-integer
+ :min (cxx:minimum spin-box)
+ :max (cxx:maximum spin-box))))
+ (cxx:set-value spin-box value)
+ (5am:is (= value current-value))
+ (5am:is (= value (read-from-string current-string-value)))))))
+
+(5am:test object-signal
+ "Receive a qt:object signal."
+ (qt:with-app
+ (let ((button (make-instance 'qt:push-button))
+ (click-count 0)
+ (signal-mapper (make-instance 'qt:signal-mapper)))
+ (qt:connect (qt:get-signal button "clicked()")
+ (qt:get-slot signal-mapper "map()"))
+ (cxx:set-mapping signal-mapper button button)
+
+ (qt:connect (qt:get-signal signal-mapper "mapped(QObject*)")
+ #'(lambda (object)
+ (5am:is (eq object button))
+ (incf click-count)))
+ (5am:is (= 0 click-count))
+ (qt.test:test.mouse-click button qt:+left-button+)
+ (5am:is (= 1 click-count)))))
+