diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2012-01-12 20:46:15 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-06 09:18:54 +0100 |
commit | cf1eb700702aec473db0a4794b1a6549ee10bb62 (patch) | |
tree | 6a36023c279475756e965f05abd8be41e2a8b0f6 /tests/auto | |
parent | 6eb0ef546a43ed721b59703e3b8646c9a41f20d0 (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.cpp | 13 |
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 } |