diff options
Diffstat (limited to 'sources/pyside6/PySide6/templates/datavisualization_common.xml')
-rw-r--r-- | sources/pyside6/PySide6/templates/datavisualization_common.xml | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/sources/pyside6/PySide6/templates/datavisualization_common.xml b/sources/pyside6/PySide6/templates/datavisualization_common.xml new file mode 100644 index 000000000..6d5861322 --- /dev/null +++ b/sources/pyside6/PySide6/templates/datavisualization_common.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +--> +<typesystem> + <template name="cppqlistofptrtoqlists_to_py_conversion"> + const Py_ssize_t rowCount = %in.size(); + PyObject* %out = PyList_New(rowCount); + for (Py_ssize_t r = 0; r < rowCount; ++r) { + const QList<%INTYPE_0> *row = %in.at(r); + const Py_ssize_t columnCount = row->size(); + PyObject *pyRow = PyList_New(columnCount); + for (Py_ssize_t c = 0; c < columnCount; ++c) { + const %INTYPE_0 &cppItem = row->at(c); + PyList_SET_ITEM(pyRow, c, %CONVERTTOPYTHON[%INTYPE_0](cppItem)); + } + PyList_SET_ITEM(%out, r, pyRow); + } + return %out; + </template> + + <template name="py_to_cppqlistofptrtoqlists_conversion"> + const Py_ssize_t rowCount = PySequence_Size(%in); + %OUTTYPE &result = %out; + result.reserve(rowCount); + for (Py_ssize_t r = 0; r < rowCount; ++r) { + Shiboken::AutoDecRef rowItem(PySequence_GetItem(%in, r)); + const Py_ssize_t columnCount = PySequence_Size(rowItem); + auto *row = new QList<%OUTTYPE_0>; + row->reserve(columnCount); + for (Py_ssize_t c = 0; c < columnCount; ++c) { + Shiboken::AutoDecRef pyItem(PySequence_GetItem(rowItem, c)); + %OUTTYPE_0 v = %CONVERTTOCPP[%OUTTYPE_0](pyItem); + row->append(v); + } + result.append(row); + } + </template> +</typesystem> |