namespace Shiboken { template struct Converter_qmap { static bool isConvertible(PyObject* pyobj) { return PyDict_Check(pyobj); } static PyObject* toPython(const qmap& map) { PyObject* result = PyDict_New(); QMapIterator it(map); while (it.hasNext()) { it.next(); PyDict_SetItem(result, Converter::toPython(it.key()), Converter::toPython(it.value())); } return result; } static qmap toCpp(PyObject* pyobj) { qmap result; PyObject* key; PyObject* value; Py_ssize_t pos = 0; Py_INCREF(pyobj); while (PyDict_Next(pyobj, &pos, &key, &value)) { result.insert(Converter::toCpp(key), Converter::toCpp(value)); } Py_DECREF(pyobj); return result; } }; template struct Converter > : Converter_qmap > {}; }