aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtCore/qlist_conversions.h
diff options
context:
space:
mode:
Diffstat (limited to 'PySide/QtCore/qlist_conversions.h')
-rw-r--r--PySide/QtCore/qlist_conversions.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/PySide/QtCore/qlist_conversions.h b/PySide/QtCore/qlist_conversions.h
new file mode 100644
index 000000000..b305d1468
--- /dev/null
+++ b/PySide/QtCore/qlist_conversions.h
@@ -0,0 +1,24 @@
+template <typename StdList>
+struct Converter_qlist
+{
+ static PyObject* toPython(StdList holder)
+ {
+ PyObject* result = PyList_New(holder.size());
+ for (int i = 0; i < holder.size(); i++) {
+ PyList_SET_ITEM(result, i, Converter<typename StdList::value_type>::toPython(holder.at(i)));
+ }
+ return result;
+ }
+ static StdList toCpp(PyObject* pyobj)
+ {
+ StdList result;
+ for (int i = 0; i < PySequence_Size(pyobj); i++) {
+ PyObject* pyItem = PySequence_GetItem(pyobj, i);
+ result.append(Converter<typename StdList::value_type>::toCpp(pyItem));
+ }
+ return result;
+ }
+};
+
+template<typename T>
+struct Converter<QList<T> > : Converter_qlist<QList<T> > {};