From 15a17323ed2f2d19816ce3acc928b7bbb6b86eab Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Fri, 6 Sep 2013 13:03:40 +0200 Subject: Make the automatic 1arg and 2arg metatype macros work with namespaced Qt. Change-Id: I64aa3cacd0cf57235ad43f089716765b384ef412 Reviewed-by: Olivier Goffart --- .../auto/corelib/kernel/qvariant/tst_qvariant.cpp | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'tests/auto/corelib/kernel/qvariant') 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 +struct SequentialContainer +{ + T t; +}; + +template +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) void tst_QVariant::qvariant_cast_QObject_wrapper() @@ -2292,6 +2308,15 @@ void tst_QVariant::qvariant_cast_QObject_wrapper() v.convert(qMetaTypeId()); QCOMPARE(v.value(), object); + MyNS::SequentialContainer sc; + sc.t = 47; + MyNS::AssociativeContainer ac; + ac.t = 42; + ac.u = 5; + + QVariant::fromValue(sc); + QVariant::fromValue(ac); + // Compile tests: qRegisterMetaType >(); // Not declared as a metatype: -- cgit v1.2.3