diff options
Diffstat (limited to 'PySide/QtCore/qvariant_conversions.h')
-rw-r--r-- | PySide/QtCore/qvariant_conversions.h | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/PySide/QtCore/qvariant_conversions.h b/PySide/QtCore/qvariant_conversions.h index cd2ab8da0..f0f78a077 100644 --- a/PySide/QtCore/qvariant_conversions.h +++ b/PySide/QtCore/qvariant_conversions.h @@ -1,33 +1,14 @@ // We use this thin wrapper instead of the plain PyObject pointer to avoid conflicts with specializations of T* // in QVariant. -struct PyObjectHolder +struct PyQt_PyObject { PyObject* m_me; - PyObjectHolder(PyObject* me) : m_me(me) {} - PyObjectHolder() : m_me(Py_None) {} + PyQt_PyObject(PyObject* me) : m_me(me) {} + PyQt_PyObject() : m_me(Py_None) {} operator PyObject*() { return m_me; } }; -/** - * Q_DECLARE_METATYPE(PyObjectHolder); - * Use the expanded version of Q_DECLARE_METATYPE macro to define a typename - * compatible with PyQt4 - **/ -QT_BEGIN_NAMESPACE -template <> -struct QMetaTypeId< PyObjectHolder > -{ - enum { Defined = 1 }; - static int qt_metatype_id() - { - static QBasicAtomicInt metatype_id = Q_BASIC_ATOMIC_INITIALIZER(0); - if (!metatype_id) - metatype_id = - qRegisterMetaType<PyObjectHolder>("PyQt_PyObject"); - return metatype_id; - } -}; -QT_END_NAMESPACE +Q_DECLARE_METATYPE(PyQt_PyObject) namespace Shiboken { @@ -64,7 +45,7 @@ inline QVariant Converter<QVariant>::toCpp(PyObject* pyObj) } else if (!Shiboken::isShibokenType(pyObj) || Shiboken::isUserType(pyObj)) { // QVariant(User class) Py_INCREF(pyObj); - return QVariant::fromValue<PyObjectHolder>(pyObj); + return QVariant::fromValue<PyQt_PyObject>(pyObj); } else { // a class supported by QVariant? const char* typeName = pyObj->ob_type->tp_name; @@ -88,7 +69,7 @@ inline QVariant Converter<QVariant>::toCpp(PyObject* pyObj) } // Is a shiboken type not known by Qt Py_INCREF(pyObj); - return QVariant::fromValue<PyObjectHolder>(pyObj); + return QVariant::fromValue<PyQt_PyObject>(pyObj); } } |