diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-05-04 14:44:40 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-05-05 12:37:04 +0200 |
| commit | 499832abfdf13eac5aa35f84a62166fb5aa2e034 (patch) | |
| tree | 973b0d9fa43255f4534cc5831e7df0e494276ba9 /sources/pyside6/libpyside/pyside_numpy.cpp | |
| parent | 7ed292b19ee6a4cd59b8c8f644abba56a8f13f39 (diff) | |
Numpy support: Handle short/long/long long integer types
The default type of numpy is int64 on Linux and long in Windows
these days. As numpy is still based on the old long/long long
scheme for the types, add some mapping.
[ChangeLog][shiboken6] numpy support has been extended to handle
short/long long integer types.
Fixes: PYSIDE-2313
Pick-to: 6.5
Change-Id: I75d9277ae0867401c2c188efb3a50f4c53c4fc24
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'sources/pyside6/libpyside/pyside_numpy.cpp')
| -rw-r--r-- | sources/pyside6/libpyside/pyside_numpy.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sources/pyside6/libpyside/pyside_numpy.cpp b/sources/pyside6/libpyside/pyside_numpy.cpp index a6634fc56..5f43cc5ce 100644 --- a/sources/pyside6/libpyside/pyside_numpy.cpp +++ b/sources/pyside6/libpyside/pyside_numpy.cpp @@ -45,10 +45,18 @@ QList<QPointF> xyDataToQPointFList(PyObject *pyXIn, PyObject *pyYIn) if (size == 0) return {}; switch (xv.type) { + case Shiboken::Numpy::View::Int16: + return xyDataToQPointHelper<int16_t, QPointF>(xv.data, yv.data, size); + case Shiboken::Numpy::View::Unsigned16: + return xyDataToQPointHelper<uint16_t, QPointF>(xv.data, yv.data, size); case Shiboken::Numpy::View::Int: return xyDataToQPointHelper<int, QPointF>(xv.data, yv.data, size); case Shiboken::Numpy::View::Unsigned: return xyDataToQPointHelper<unsigned, QPointF>(xv.data, yv.data, size); + case Shiboken::Numpy::View::Int64: + return xyDataToQPointHelper<int64_t, QPointF>(xv.data, yv.data, size); + case Shiboken::Numpy::View::Unsigned64: + return xyDataToQPointHelper<uint64_t, QPointF>(xv.data, yv.data, size); case Shiboken::Numpy::View::Float: return xyDataToQPointHelper<float, QPointF>(xv.data, yv.data, size); case Shiboken::Numpy::View::Double: @@ -67,10 +75,18 @@ QList<QPoint> xyDataToQPointList(PyObject *pyXIn, PyObject *pyYIn) if (size == 0) return {}; switch (xv.type) { + case Shiboken::Numpy::View::Int16: + return xyDataToQPointHelper<int16_t, QPoint>(xv.data, yv.data, size); + case Shiboken::Numpy::View::Unsigned16: + return xyDataToQPointHelper<uint16_t, QPoint>(xv.data, yv.data, size); case Shiboken::Numpy::View::Int: return xyDataToQPointHelper<int, QPoint>(xv.data, yv.data, size); case Shiboken::Numpy::View::Unsigned: return xyDataToQPointHelper<unsigned, QPoint>(xv.data, yv.data, size); + case Shiboken::Numpy::View::Int64: + return xyDataToQPointHelper<int64_t, QPoint>(xv.data, yv.data, size); + case Shiboken::Numpy::View::Unsigned64: + return xyDataToQPointHelper<uint64_t, QPoint>(xv.data, yv.data, size); case Shiboken::Numpy::View::Float: return xyFloatDataToQPointHelper<float>(xv.data, yv.data, size); case Shiboken::Numpy::View::Double: |
