summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2012-01-12 20:46:15 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-06 09:18:54 +0100
commitcf1eb700702aec473db0a4794b1a6549ee10bb62 (patch)
tree6a36023c279475756e965f05abd8be41e2a8b0f6 /tests/auto
parent6eb0ef546a43ed721b59703e3b8646c9a41f20d0 (diff)
Fix connection to const slots (or from const signals)
Pointer to const member function have a different signature, and hence need their own traits code. Change-Id: Ie4b2434a412f412444fb07ef1388a37cab105ecd Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
index 0cabc46390..f48f86cceb 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
@@ -4737,6 +4737,9 @@ class LotsOfSignalsAndSlots: public QObject
#endif*/
void slot_vPFvvE(fptr) {}
+ void const_slot_v() const {};
+ void const_slot_vi(int) const {};
+
static void static_slot_v() {}
static void static_slot_vi(int) {}
static void static_slot_vii(int, int) {}
@@ -4768,6 +4771,9 @@ class LotsOfSignalsAndSlots: public QObject
#endif*/
void signal_vPFvvE(fptr);
+ void const_signal_v() const;
+ void const_signal_vi(int) const;
+
void signal(short&, short, long long, short);
void otherSignal(const char *);
};
@@ -4879,6 +4885,13 @@ void tst_QObject::connectCxx0xTypeMatching()
QObject::connect(&obj, &Foo::signal_vPFvvE, &Foo::static_slot_v);
QObject::connect(&obj, &Foo::signal_vPFvvE, &Foo::static_slot_i);
QObject::connect(&obj, &Foo::signal_vPFvvE, &Foo::static_slot_vPFvvE);
+
+ QVERIFY(QObject::connect(&obj, &Foo::const_signal_v, &obj, &Foo::const_slot_v));
+ QVERIFY(QObject::connect(&obj, &Foo::const_signal_vi, &obj, &Foo::const_slot_v));
+ QVERIFY(QObject::connect(&obj, &Foo::const_signal_vi, &obj, &Foo::slot_vi));
+ QVERIFY(QObject::connect(&obj, &Foo::signal_vi, &obj, &Foo::const_slot_vi));
+ QVERIFY(QObject::connect(&obj, &Foo::signal_vi, &obj, &Foo::const_slot_v));
+
QVERIFY(true); //compilation only test
}