diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-04-28 14:28:41 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-04-28 19:46:59 +0200 |
commit | 6e26532b6b8430ba4d8a56aebeea5adf73501faf (patch) | |
tree | a46bb0ec2f18fe94a90555bb175be18474d5a096 /sources/pyside6/libpyside/pyside.cpp | |
parent | 882cc75ad73de727fe185d8355b6b450989d0fba (diff) |
libpyside: Add function to convert a PyTypeObject to a QMetaType
Move the snippet into the library for further use.
Task-number: PYSIDE-1898
Change-Id: If04da23cb0a4890474810ca762cc2ee29de480f6
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/libpyside/pyside.cpp')
-rw-r--r-- | sources/pyside6/libpyside/pyside.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp index 39b20120d..4abb2da98 100644 --- a/sources/pyside6/libpyside/pyside.cpp +++ b/sources/pyside6/libpyside/pyside.cpp @@ -40,6 +40,7 @@ #include "pyside.h" #include "pysideinit.h" #include "pysidecleanup.h" +#include "pysidemetatype.h" #include "pysideqapp.h" #include "pysideqobject.h" #include "pysideutils.h" @@ -932,5 +933,18 @@ QObject *convertToQObject(PyObject *object, bool raiseError) return reinterpret_cast<QObject*>(ptr); } +QMetaType qMetaTypeFromPyType(PyTypeObject *pyType) +{ + if (Shiboken::String::checkType(pyType)) + return QMetaType(QMetaType::QString); + if (pyType == &PyFloat_Type) + return QMetaType(QMetaType::Double); + if (pyType == &PyLong_Type) + return QMetaType(QMetaType::Int); + if (pyType == SbkObjectType_TypeF()) + return QMetaType::fromName(Shiboken::ObjectType::getOriginalName(pyType)); + return QMetaType::fromName(pyType->tp_name); +} + } //namespace PySide |