diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-03-02 13:48:40 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-03-10 11:19:16 +0100 |
commit | 077b30d72614f8d2176335f03e3a8568ccbcedc6 (patch) | |
tree | 787cb5eaa7ef976879eb2002e435376d34842135 /sources/pyside6 | |
parent | 6b2637544902cf9a11384b167f03bf2b4b7d7417 (diff) |
PySide6: Brush up the injected code snippets and templates
- Use qsizetype (or equivalent Py_ssize_t) for containers
- Introduce some auto
- Use constData() for QByteArray
- Use Qt 5 connection syntax
- Use nullptr
Change-Id: Ie9134a4f756219d6e5c5710ab64c09a236febd4d
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6')
-rw-r--r-- | sources/pyside6/PySide6/glue/qtcore.cpp | 50 | ||||
-rw-r--r-- | sources/pyside6/PySide6/glue/qtgui.cpp | 15 | ||||
-rw-r--r-- | sources/pyside6/PySide6/glue/qtuitools.cpp | 7 | ||||
-rw-r--r-- | sources/pyside6/PySide6/glue/qtwidgets.cpp | 34 | ||||
-rw-r--r-- | sources/pyside6/PySide6/templates/datavisualization_common.xml | 20 | ||||
-rw-r--r-- | sources/pyside6/PySide6/templates/gui_common.xml | 14 | ||||
-rw-r--r-- | sources/pyside6/PySide6/templates/widgets_common.xml | 10 |
7 files changed, 77 insertions, 73 deletions
diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index dcf08c4be..27ad9797c 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -70,11 +70,11 @@ if (typeObj) { QByteArray out_ba = out.toByteArray(); if (!out_ba.isEmpty()) { QByteArrayList valuesList = out_ba.split(','); - const int valuesSize = valuesList.size(); + const Py_ssize_t valuesSize = valuesList.size(); if (valuesSize > 0) { PyObject *list = PyList_New(valuesSize); - for (int i = 0; i < valuesSize; i++) { - PyObject *item = PyUnicode_FromString(valuesList[i].data()); + for (Py_ssize_t i = 0; i < valuesSize; ++i) { + PyObject *item = PyUnicode_FromString(valuesList.at(i).constData()); PyList_SET_ITEM(list, i, item); } %PYARG_0 = list; @@ -87,10 +87,10 @@ if (typeObj) { } } else if (typeObj == &PyBytes_Type) { QByteArray asByteArray = out.toByteArray(); - %PYARG_0 = PyBytes_FromString(asByteArray.data()); + %PYARG_0 = PyBytes_FromString(asByteArray.constData()); } else if (typeObj == &PyUnicode_Type) { QByteArray asByteArray = out.toByteArray(); - %PYARG_0 = PyUnicode_FromString(asByteArray.data()); + %PYARG_0 = PyUnicode_FromString(asByteArray.constData()); } else if (typeObj == &PyLong_Type) { float asFloat = out.toFloat(); pyResult = PyLong_FromDouble(asFloat); @@ -1020,8 +1020,8 @@ static int SbkQByteArray_getbufferproc(PyObject *obj, Py_buffer *view, int flags view->ndim = 1; view->shape = (flags & PyBUF_ND) == PyBUF_ND ? &(view->len) : nullptr; view->strides = &view->itemsize; - view->suboffsets = NULL; - view->internal = NULL; + view->suboffsets = nullptr; + view->internal = nullptr; Py_XINCREF(obj); return 0; @@ -1186,8 +1186,8 @@ uchar *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1)); // @snippet qfiledevice-map // @snippet qiodevice-readdata -QByteArray ba(1 + int(%2), char(0)); -%CPPSELF.%FUNCTION_NAME(ba.data(), int(%2)); +QByteArray ba(1 + qsizetype(%2), char(0)); +%CPPSELF.%FUNCTION_NAME(ba.data(), qint64(%2)); %PYARG_0 = Shiboken::String::fromCString(ba.constData()); // @snippet qiodevice-readdata @@ -1222,7 +1222,7 @@ if (socket != nullptr) { // @snippet qtranslator-load Py_ssize_t size; -uchar *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1, &size)); +auto *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1, &size)); %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(const_cast<const uchar *>(ptr), size); %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); // @snippet qtranslator-load @@ -1231,8 +1231,9 @@ uchar *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1, &s // %FUNCTION_NAME() - disable generation of c++ function call (void) %2; // remove warning about unused variable Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); -PyObject *pyTimer = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); -reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_init(pyTimer, emptyTuple, 0); +auto *timerType = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>()); +auto *pyTimer = timerType->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr); +timerType->tp_init(pyTimer, emptyTuple, nullptr); auto timer = %CONVERTTOCPP[QTimer *](pyTimer); //XXX /|\ omitting this space crashes shiboken! @@ -1245,18 +1246,19 @@ Shiboken::AutoDecRef result( %PYARG_2, %3) ); -Shiboken::Object::releaseOwnership((SbkObject *)pyTimer); +Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(pyTimer)); Py_XDECREF(pyTimer); timer->setSingleShot(true); -timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater())); +timer->connect(timer, &QTimer::timeout, timer, &QObject::deleteLater); timer->start(%1); // @snippet qtimer-singleshot-1 // @snippet qtimer-singleshot-2 // %FUNCTION_NAME() - disable generation of c++ function call Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); -PyObject *pyTimer = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); -reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_init(pyTimer, emptyTuple, 0); +auto *timerType = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>()); +auto *pyTimer = timerType->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr); +timerType->tp_init(pyTimer, emptyTuple, nullptr); QTimer * timer = %CONVERTTOCPP[QTimer *](pyTimer); timer->setSingleShot(true); @@ -1283,7 +1285,7 @@ if (PyObject_TypeCheck(%2, PySideSignalInstanceTypeF())) { ); } -timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()), Qt::DirectConnection); +timer->connect(timer, &QTimer::timeout, timer, &QObject::deleteLater, Qt::DirectConnection); Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(pyTimer)); Py_XDECREF(pyTimer); timer->start(%1); @@ -1406,8 +1408,10 @@ if (PyObject_TypeCheck(%1, PySideSignalInstanceTypeF())) { // @snippet qsignaltransition // @snippet qstate-addtransition-1 -QString signalName(%2); -if (PySide::SignalManager::registerMetaMethod(%1, signalName.mid(1).toLatin1().data(), QMetaMethod::Signal)) { +QByteArray signalName(%2); +signalName.remove(0, 1); +if (PySide::SignalManager::registerMetaMethod(%1, signalName.constData(), + QMetaMethod::Signal)) { QSignalTransition *%0 = %CPPSELF->addTransition(%1, %2, %3); %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition *](%0); } else { @@ -1534,9 +1538,9 @@ if (PyBytes_Check(%PYARG_0)) { // @snippet return-readData // @snippet qiodevice-readData -QByteArray ba(1 + int(%2), char(0)); +QByteArray ba(1 + qsizetype(%2), char(0)); Py_BEGIN_ALLOW_THREADS -%CPPSELF.%FUNCTION_NAME(ba.data(), int(%2)); +%CPPSELF.%FUNCTION_NAME(ba.data(), qint64(%2)); Py_END_ALLOW_THREADS %PYARG_0 = Shiboken::String::fromCString(ba.constData()); // @snippet qiodevice-readData @@ -1604,7 +1608,7 @@ Py_UNICODE *unicode = PyUnicode_AS_UNICODE(%in); # endif // Qt 6 # endif #else -wchar_t *temp = PyUnicode_AsWideCharString(%in, NULL); +wchar_t *temp = PyUnicode_AsWideCharString(%in, nullptr); %out = QString::fromWCharArray(temp); PyMem_Free(temp); #endif @@ -1755,7 +1759,7 @@ return PyUnicode_FromStringAndSize(ba.constData(), ba.size()); // @snippet return-pyunicode // @snippet return-pyunicode-qchar -wchar_t c = (wchar_t)%in.unicode(); +auto c = wchar_t(%in.unicode()); return PyUnicode_FromWideChar(&c, 1); // @snippet return-pyunicode-qchar diff --git a/sources/pyside6/PySide6/glue/qtgui.cpp b/sources/pyside6/PySide6/glue/qtgui.cpp index 914c5d904..cc0f23cba 100644 --- a/sources/pyside6/PySide6/glue/qtgui.cpp +++ b/sources/pyside6/PySide6/glue/qtgui.cpp @@ -98,7 +98,7 @@ if (QTransform::squareToQuad(%1, _result)) { // @snippet qtransform-squaretoquad // @snippet qbitmap-fromdata -uchar *buffer = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_2)); +auto *buffer = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_2)); QBitmap %0 = QBitmap::fromData(%1, buffer, %3); %PYARG_0 = %CONVERTTOPYTHON[QBitmap](%0); // @snippet qbitmap-fromdata @@ -150,11 +150,12 @@ int value = %2; // @snippet qopenglshaderprogram_setuniformvalue_int // @snippet qpolygon-reduce -PyObject *points = PyList_New(%CPPSELF.count()); -for (int i = 0, i_max = %CPPSELF.count(); i < i_max; ++i){ +const Py_ssize_t count = %CPPSELF.count(); +PyObject *points = PyList_New(count); +for (Py_ssize_t i = 0; i < count; ++i){ int x, y; %CPPSELF.point(i, &x, &y); - QPoint pt = QPoint(x, y); + QPoint pt{x, y}; PyList_SET_ITEM(points, i, %CONVERTTOPYTHON[QPoint](pt)); } // @snippet qpolygon-reduce @@ -189,7 +190,7 @@ for (int i = 0, i_max = %CPPSELF.count(); i < i_max; ++i){ // @snippet qcolor-setstate Shiboken::AutoDecRef func(PyObject_GetAttr(%PYSELF, PyTuple_GET_ITEM(%1, 0))); PyObject *args = PyTuple_GET_ITEM(%1, 1); -%PYARG_0 = PyObject_Call(func, args, NULL); +%PYARG_0 = PyObject_Call(func, args, nullptr); // @snippet qcolor-setstate // @snippet qcolor-reduce @@ -476,7 +477,7 @@ PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1)); Shiboken::AutoDecRef seq(PySequence_Fast(%PYARG_1, "Can't turn into sequence")); if (PySequence_Size(seq) == 16) { float values[16]; - for (int i=0; i < 16; ++i) { + for (Py_ssize_t i = 0; i < 16; ++i) { PyObject *pv = PySequence_Fast_GET_ITEM(seq.object(), i); values[i] = PyFloat_AsDouble(pv); } @@ -492,7 +493,7 @@ if (PySequence_Size(seq) == 16) { float values[16]; %CPPSELF.%FUNCTION_NAME(values); %PYARG_0 = PyTuple_New(16); -for (int i = 0; i < 16; ++i) { +for (Py_ssize_t i = 0; i < 16; ++i) { PyObject *v = PyFloat_FromDouble(values[i]); PyTuple_SET_ITEM(%PYARG_0, i, v); } diff --git a/sources/pyside6/PySide6/glue/qtuitools.cpp b/sources/pyside6/PySide6/glue/qtuitools.cpp index 40646e74b..ea45aeeb5 100644 --- a/sources/pyside6/PySide6/glue/qtuitools.cpp +++ b/sources/pyside6/PySide6/glue/qtuitools.cpp @@ -44,9 +44,10 @@ */ #include <shiboken.h> -#include <QUiLoader> -#include <QFile> -#include <QWidget> + +#include <QtUiTools/QUiLoader> +#include <QtWidgets/QWidget> +#include <QtCore/QFile> static void createChildrenNameAttributes(PyObject *root, QObject *object) { diff --git a/sources/pyside6/PySide6/glue/qtwidgets.cpp b/sources/pyside6/PySide6/glue/qtwidgets.cpp index 4f9baadf1..d3e95e3cb 100644 --- a/sources/pyside6/PySide6/glue/qtwidgets.cpp +++ b/sources/pyside6/PySide6/glue/qtwidgets.cpp @@ -68,7 +68,7 @@ if (%0) { // @snippet qgraphicsitem-scene-return-parenting // @snippet qgraphicsitem-isblockedbymodalpanel -QGraphicsItem *item_ = NULL; +QGraphicsItem *item_ = nullptr; %RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&item_); %PYARG_0 = PyTuple_New(2); PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_)); @@ -153,7 +153,7 @@ for (auto *act : actions) { if (auto wrapper = bm.retrieveWrapper(act)) { auto pyObj = reinterpret_cast<PyObject *>(wrapper); Py_INCREF(pyObj); - Shiboken::Object::setParent(NULL, pyObj); + Shiboken::Object::setParent(nullptr, pyObj); Shiboken::Object::invalidate(pyObj); Py_DECREF(pyObj); } @@ -190,7 +190,7 @@ addActionWithPyObject(QMenuBar *self, const QString &text, PyObject *callback) const auto &actions = %CPPSELF.actions(); for (auto *act : actions) { Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction *](act)); - Shiboken::Object::setParent(NULL, pyAct); + Shiboken::Object::setParent(nullptr, pyAct); Shiboken::Object::invalidate(pyAct); } // @snippet qmenubar-clear @@ -245,7 +245,7 @@ inline void addLayoutOwnership(QLayout *layout, QWidget *widget) //Transfer parent to layout widget if (pw && lw && pw != lw) - Shiboken::Object::setParent(0, pyChild); + Shiboken::Object::setParent(nullptr, pyChild); if (!lw && !pw) { //keep the reference while the layout is orphan @@ -272,7 +272,7 @@ inline void addLayoutOwnership(QLayout *layout, QLayout *other) return; } - for (int i=0, i_max=other->count(); i < i_max; i++) { + for (int i = 0, i_max = other->count(); i < i_max; ++i) { QLayoutItem *item = other->itemAt(i); if (PyErr_Occurred() || !item) return; @@ -303,19 +303,17 @@ inline void addLayoutOwnership(QLayout *layout, QLayoutItem *item) static void removeWidgetFromLayout(QLayout *layout, QWidget *widget) { - QWidget *parent = widget->parentWidget(); - - if (!parent) { + if (QWidget *parent = widget->parentWidget()) { + //give the ownership to parent + Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent)); + Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget)); + Shiboken::Object::setParent(pyParent, pyChild); + } else { //remove reference on layout Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](layout)); Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget)); Shiboken::Object::removeReference(reinterpret_cast<SbkObject *>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild); - } else { - //give the ownership to parent - Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent)); - Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget)); - Shiboken::Object::setParent(pyParent, pyChild); } } @@ -339,7 +337,7 @@ inline void removeLayoutOwnership(QLayout *layout, QWidget *widget) if (!widget) return; - for (int i=0, i_max=layout->count(); i < i_max; i++) { + for (int i = 0, i_max = layout->count(); i < i_max; ++i) { QLayoutItem *item = layout->itemAt(i); if (PyErr_Occurred() || !item) return; @@ -442,7 +440,7 @@ for (int i = 0, count = %CPPSELF.count(); i < count; ++i) { if (auto wrapper = bm.retrieveWrapper(item)) { auto pyObj = reinterpret_cast<PyObject *>(wrapper); Py_INCREF(pyObj); - Shiboken::Object::setParent(NULL, pyObj); + Shiboken::Object::setParent(nullptr, pyObj); Shiboken::Object::invalidate(pyObj); Py_DECREF(pyObj); } @@ -616,7 +614,7 @@ const auto &toolButtonChildren = %CPPSELF.findChildren<QToolButton *>(); for (auto *child : toolButtonChildren) { if (bm.hasWrapper(child)) { PyObject *pyChild = %CONVERTTOPYTHON[QToolButton *](child); - Shiboken::Object::setParent(0, pyChild); + Shiboken::Object::setParent(nullptr, pyChild); lst << pyChild; } } @@ -625,12 +623,12 @@ for (auto *child : toolButtonChildren) { const auto &actions = %CPPSELF.actions(); for (auto *act : actions) { Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction *](act)); - Shiboken::Object::setParent(NULL, pyAct); + Shiboken::Object::setParent(nullptr, pyAct); Shiboken::Object::invalidate(pyAct); } %CPPSELF.clear(); -for (auto *obj : lst) { +for (auto *obj : qAsConst(lst)) { Shiboken::Object::invalidate(reinterpret_cast<SbkObject *>(obj)); Py_XDECREF(obj); } diff --git a/sources/pyside6/PySide6/templates/datavisualization_common.xml b/sources/pyside6/PySide6/templates/datavisualization_common.xml index 9b2b7eadd..49682e06b 100644 --- a/sources/pyside6/PySide6/templates/datavisualization_common.xml +++ b/sources/pyside6/PySide6/templates/datavisualization_common.xml @@ -41,13 +41,13 @@ --> <typesystem> <template name="cppqlistofptrtoqlists_to_py_conversion"> - const int rowCount = %in.size(); + const Py_ssize_t rowCount = %in.size(); PyObject* %out = PyList_New(rowCount); - for (int r = 0; r < rowCount; ++r) { - const QVector<%INTYPE_0> *row = %in.at(r); - const int columnCount = row->size(); + 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 (int c = 0; c < columnCount; ++c) { + 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)); } @@ -57,15 +57,15 @@ </template> <template name="py_to_cppqlistofptrtoqlists_conversion"> - const int rowCount = int(PySequence_Size(%in)); + const Py_ssize_t rowCount = PySequence_Size(%in); %OUTTYPE &result = %out; result.reserve(rowCount); - for (int r = 0; r < rowCount; ++r) { + for (Py_ssize_t r = 0; r < rowCount; ++r) { Shiboken::AutoDecRef rowItem(PySequence_GetItem(%in, r)); - const int columnCount = int(PySequence_Size(rowItem)); - QVector<%OUTTYPE_0> *row = new QVector<%OUTTYPE_0>; + const Py_ssize_t columnCount = PySequence_Size(rowItem); + auto *row = new QList<%OUTTYPE_0>; row->reserve(columnCount); - for (int c = 0; c < columnCount; ++c) { + 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); diff --git a/sources/pyside6/PySide6/templates/gui_common.xml b/sources/pyside6/PySide6/templates/gui_common.xml index 1869af8bb..4cc6358b4 100644 --- a/sources/pyside6/PySide6/templates/gui_common.xml +++ b/sources/pyside6/PySide6/templates/gui_common.xml @@ -54,21 +54,21 @@ <template name="load_xpm"> Shiboken::AutoDecRef strList(PySequence_Fast(%PYARG_1, "Invalid sequence.")); - int lineCount = PySequence_Fast_GET_SIZE(strList.object()); - for (int line = 0; line < lineCount; ++line) { + Py_ssize_t lineCount = PySequence_Fast_GET_SIZE(strList.object()); + for (Py_ssize_t line = 0; line < lineCount; ++line) { if (!Shiboken::String::check(PySequence_Fast_GET_ITEM(strList.object(), line))) { PyErr_SetString(PyExc_TypeError, "The argument must be a sequence of strings."); break; } } - const char **xpm = reinterpret_cast<const char**>(malloc(lineCount * sizeof(const char**))); - for (int line = 0; line < lineCount; ++line) + auto xpm = new const char*[lineCount]; + for (Py_ssize_t line = 0; line < lineCount; ++line) xpm[line] = Shiboken::String::toCString(PySequence_Fast_GET_ITEM(strList.object(), line)); %0 = new %TYPE(xpm); - free(xpm); + delete [] xpm; </template> <template name="qmatrix_map"> @@ -139,7 +139,7 @@ if (PySequence_Check(%PYARG_0)) { Shiboken::AutoDecRef seq(PySequence_Fast(%PYARG_0, 0)); - int size = PySequence_Fast_GET_SIZE(seq.object()); + const Py_ssize_t size = PySequence_Fast_GET_SIZE(seq.object()); if (size > 1) { if (%ISCONVERTIBLE[QString](PySequence_Fast_GET_ITEM(seq.object(), 1))) @@ -203,7 +203,7 @@ <template name="repr_code_matrix"> QByteArray format(Py_TYPE(%PYSELF)->tp_name); - format += QByteArray("(("); + format += QByteArrayLiteral("(("); QList< %MATRIX_TYPE > cppArgs; %MATRIX_TYPE data[%MATRIX_SIZE]; diff --git a/sources/pyside6/PySide6/templates/widgets_common.xml b/sources/pyside6/PySide6/templates/widgets_common.xml index 9ce01e79a..1399ef9b1 100644 --- a/sources/pyside6/PySide6/templates/widgets_common.xml +++ b/sources/pyside6/PySide6/templates/widgets_common.xml @@ -45,16 +45,16 @@ $CHILD_TYPE* oldChild = %CPPSELF.$FUNCTION_GET_OLD(); if (oldChild && (oldChild != $CPPARG)) { Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[$CHILD_TYPE*](oldChild)); - Shiboken::Object::setParent(0, pyChild); + Shiboken::Object::setParent(nullptr, pyChild); Shiboken::Object::releaseOwnership(pyChild); } Shiboken::Object::setParent(%PYSELF, $PYARG); </template> <template name="qgraphicsitem_pysequence"> - int numItems = PySequence_Size(%PYARG_1); + const Py_ssize_t numItems = PySequence_Size(%PYARG_1); Shiboken::AutoArrayPointer<QGraphicsItem*> %out(numItems); - for (int i=0; i < numItems; i++) { + for (Py_ssize_t i = 0; i < numItems; ++i) { %out[i] = %CONVERTTOCPP[QGraphicsItem*](PySequence_Fast_GET_ITEM(%PYARG_1, i)); } </template> @@ -77,9 +77,9 @@ </template> <template name="pysequence_qstyleoptiongraphicsitem"> - int numOptions = PySequence_Size(%PYARG_2); + const Py_ssize_t numOptions = PySequence_Size(%PYARG_2); Shiboken::AutoArrayPointer<QStyleOptionGraphicsItem> %out(numOptions); - for (int i=0; i < numOptions; i++) { + for (Py_ssize_t i=0; i < numOptions; ++i) { %out[i] = %CONVERTTOCPP[QStyleOptionGraphicsItem](PySequence_Fast_GET_ITEM(%PYARG_1, i)); } </template> |