summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2013-09-06 13:03:40 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-06 16:18:37 +0200
commit15a17323ed2f2d19816ce3acc928b7bbb6b86eab (patch)
tree34080849133807e69371b1ef0fcf60352c6eedca /tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
parent2ff15ff065ef5f189ba8727ec6424c0e79285864 (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.cpp25
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: