aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtCore
diff options
context:
space:
mode:
Diffstat (limited to 'PySide/QtCore')
-rw-r--r--PySide/QtCore/qvariant_conversions.h31
-rw-r--r--PySide/QtCore/typesystem_core.xml12
2 files changed, 12 insertions, 31 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);
}
}
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml
index 186be106a..e64006c0e 100644
--- a/PySide/QtCore/typesystem_core.xml
+++ b/PySide/QtCore/typesystem_core.xml
@@ -1519,8 +1519,8 @@
<add-function signature="toPyObject()" return-type="PyObject*">
<inject-code class="target" position="beginning">
uint typeId = %CPPSELF.userType();
- if (typeId == qMetaTypeId&lt;PyObjectHolder>()) {
- %PYARG_0 = %CPPSELF.value&lt;PyObjectHolder>();
+ if (typeId == qMetaTypeId&lt;PyQt_PyObject>()) {
+ %PYARG_0 = %CPPSELF.value&lt;PyQt_PyObject>();
} else if (typeId == QVariant::String) {
%PYARG_0 = %CONVERTTOPYTHON[QString](%CPPSELF.toString());
} else {
@@ -1534,9 +1534,9 @@
if (%CPPSELF.isNull()) {
%PYARG_0 = Py_None;
Py_INCREF(Py_None);
- } else if (%CPPSELF.userType() == qMetaTypeId&lt;PyObjectHolder>()) {
+ } else if (%CPPSELF.userType() == qMetaTypeId&lt;PyQt_PyObject>()) {
// emulate PyQt4 behaviour
- PyObject* obj = %CPPSELF.value&lt;PyObjectHolder>();
+ PyObject* obj = %CPPSELF.value&lt;PyQt_PyObject>();
if (PySequence_Check(obj))
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE]("QVariantList");
}
@@ -1546,8 +1546,8 @@
</modify-function>
<modify-function signature="toList()const">
<inject-code class="target" position="beginning">
- if (%CPPSELF.userType() == qMetaTypeId&lt;PyObjectHolder>()) {
- PyObject* val = %CPPSELF.value&lt;PyObjectHolder>();
+ if (%CPPSELF.userType() == qMetaTypeId&lt;PyQt_PyObject>()) {
+ PyObject* val = %CPPSELF.value&lt;PyQt_PyObject>();
if (PySequence_Check(val)) {
%PYARG_0 = val;
Py_INCREF(val);