Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpyside/pysideqenum.cpp')
-rw-r--r--sources/pyside6/libpyside/pysideqenum.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/sources/pyside6/libpyside/pysideqenum.cpp b/sources/pyside6/libpyside/pysideqenum.cpp
index e922c2d24..8fc33d5db 100644
--- a/sources/pyside6/libpyside/pysideqenum.cpp
+++ b/sources/pyside6/libpyside/pysideqenum.cpp
@@ -10,6 +10,8 @@
#include <map>
+#include <QtCore/qmetatype.h>
+
///////////////////////////////////////////////////////////////
//
// PYSIDE-957: Create QEnum dynamically from Python Enum
@@ -193,6 +195,21 @@ std::vector<PyObject *> resolveDelayedQEnums(PyTypeObject *containerType)
return result;
}
+QByteArray getTypeName(PyTypeObject *type)
+{
+ if (!Shiboken::Enum::checkType(type))
+ return {};
+
+ Shiboken::AutoDecRef qualName(PyObject_GetAttr(reinterpret_cast<PyObject *>(type),
+ Shiboken::PyMagicName::qualname()));
+ QByteArray result = Shiboken::String::toCString(qualName.object());
+ result.replace(".", "::");
+
+ const auto metaType = QMetaType::fromName(result);
+ return metaType.isValid() && metaType.flags().testFlag(QMetaType::IsEnumeration)
+ ? result : QByteArray{};
+}
+
} // namespace Shiboken::Enum
//