diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2013-09-06 13:03:40 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-06 16:18:37 +0200 |
commit | 15a17323ed2f2d19816ce3acc928b7bbb6b86eab (patch) | |
tree | 34080849133807e69371b1ef0fcf60352c6eedca /tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | |
parent | 2ff15ff065ef5f189ba8727ec6424c0e79285864 (diff) |
Make the automatic 1arg and 2arg metatype macros work with namespaced Qt.
Change-Id: I64aa3cacd0cf57235ad43f089716765b384ef412
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp')
-rw-r--r-- | tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index 0b50bc7576..eab2ba4f36 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -2275,10 +2275,26 @@ public: T* operator->() const { return pointer; } }; +template<typename T> +struct SequentialContainer +{ + T t; +}; + +template<typename T, typename U> +struct AssociativeContainer +{ + T t; + U u; +}; + } Q_DECLARE_SMART_POINTER_METATYPE(MyNS::SmartPointer) +Q_DECLARE_METATYPE_TEMPLATE_1ARG(MyNS::SequentialContainer) +Q_DECLARE_METATYPE_TEMPLATE_2ARG(MyNS::AssociativeContainer) + Q_DECLARE_METATYPE(MyNS::SmartPointer<int>) void tst_QVariant::qvariant_cast_QObject_wrapper() @@ -2292,6 +2308,15 @@ void tst_QVariant::qvariant_cast_QObject_wrapper() v.convert(qMetaTypeId<QObject*>()); QCOMPARE(v.value<QObject*>(), object); + MyNS::SequentialContainer<int> sc; + sc.t = 47; + MyNS::AssociativeContainer<int, short> ac; + ac.t = 42; + ac.u = 5; + + QVariant::fromValue(sc); + QVariant::fromValue(ac); + // Compile tests: qRegisterMetaType<MyNS::SmartPointer<int> >(); // Not declared as a metatype: |