diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-07-27 14:51:09 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-07-27 22:40:48 +0000 |
commit | 25cc8018e5c4be3a85b9ef8c9257abb3d47f968c (patch) | |
tree | 09aa6a53632572f8153b14cfec8abb740aa8f59e | |
parent | a623a5755c9cf7b8bf6411bd773671cd57a616d7 (diff) |
PySide6: Refactor snippet helper retrieveObjectName()
There were 2 versions of the helper, one returning QString and the
other QByteArray. Use the QByteArray version to save conversions.
Change-Id: Ibd0038f016c13535018dd4624db29cc4c0ddc824
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
(cherry picked from commit 0949e3f35590783867a87e4e340ce4c44c79546f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml | 12 | ||||
-rw-r--r-- | sources/pyside6/PySide6/glue/qtwidgets.cpp | 27 |
2 files changed, 26 insertions, 13 deletions
diff --git a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml index f6930986e..eb22a27b2 100644 --- a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml +++ b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml @@ -1216,6 +1216,8 @@ </object-type> <object-type name="QLayout"> + <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" + snippet="qwidget-retrieveobjectname"/> <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qlayout-help-functions"/> <enum-type name="SizeConstraint"/> @@ -1305,6 +1307,8 @@ </object-type> <object-type name="QStackedLayout"> + <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" + snippet="qwidget-retrieveobjectname"/> <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qlayout-help-functions"/> <enum-type name="StackingMode"/> <modify-function signature="insertWidget(int,QWidget*)" allow-thread="yes"> @@ -1316,6 +1320,8 @@ </object-type> <object-type name="QBoxLayout"> + <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" + snippet="qwidget-retrieveobjectname"/> <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qlayout-help-functions"/> <enum-type name="Direction"/> @@ -1346,6 +1352,8 @@ </object-type> <object-type name="QGridLayout"> + <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" + snippet="qwidget-retrieveobjectname"/> <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qlayout-help-functions"/> <modify-function signature="itemAtPosition (int,int)const"> <modify-argument index="return"> @@ -2000,6 +2008,8 @@ <include file-name="QMessageBox" location="global"/> </extra-includes> + <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" + snippet="qwidget-retrieveobjectname"/> <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-glue"/> <enum-type name="RenderFlag" flags="RenderFlags"/> @@ -2857,6 +2867,8 @@ </modify-function> </object-type> <object-type name="QFormLayout"> + <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" + snippet="qwidget-retrieveobjectname"/> <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qlayout-help-functions"/> <enum-type name="FieldGrowthPolicy"/> diff --git a/sources/pyside6/PySide6/glue/qtwidgets.cpp b/sources/pyside6/PySide6/glue/qtwidgets.cpp index ca9acb349..0a934710b 100644 --- a/sources/pyside6/PySide6/glue/qtwidgets.cpp +++ b/sources/pyside6/PySide6/glue/qtwidgets.cpp @@ -211,12 +211,6 @@ if (_widget) { void addLayoutOwnership(QLayout *layout, QLayoutItem *item); void removeLayoutOwnership(QLayout *layout, QWidget *widget); -inline QByteArray retrieveObjectName(PyObject *obj) -{ - Shiboken::AutoDecRef objName(PyObject_Str(obj)); - return Shiboken::String::toCString(objName); -} - inline void addLayoutOwnership(QLayout *layout, QWidget *widget) { //transfer ownership to parent widget @@ -232,7 +226,9 @@ inline void addLayoutOwnership(QLayout *layout, QWidget *widget) if (!lw && !pw) { //keep the reference while the layout is orphan Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](layout)); - Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true); + Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyParent.object()), + retrieveObjectName(pyParent).constData(), + pyChild, true); } else { if (!lw) lw = pw; @@ -250,7 +246,8 @@ inline void addLayoutOwnership(QLayout *layout, QLayout *other) Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QLayout *](layout)); Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayout *](other)); Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyParent.object()), - retrieveObjectName(pyParent).data(), pyChild, true); + retrieveObjectName(pyParent).constData(), + pyChild, true); return; } @@ -295,7 +292,8 @@ static void removeWidgetFromLayout(QLayout *layout, QWidget *widget) Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](layout)); Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget)); Shiboken::Object::removeReference(reinterpret_cast<SbkObject *>(pyParent.object()), - retrieveObjectName(pyParent).data(), pyChild); + retrieveObjectName(pyParent).constData(), + pyChild); } } @@ -430,13 +428,15 @@ for (int i = 0, count = %CPPSELF.count(); i < count; ++i) { %CPPSELF.%FUNCTION_NAME(); // @snippet qlistwidget-clear -// @snippet qwidget-glue -static QString retrieveObjectName(PyObject *obj) +// @snippet qwidget-retrieveobjectname +static QByteArray retrieveObjectName(PyObject *obj) { Shiboken::AutoDecRef objName(PyObject_Str(obj)); - return QString(Shiboken::String::toCString(objName)); + return Shiboken::String::toCString(objName); } +// @snippet qwidget-retrieveobjectname +// @snippet qwidget-glue // Transfer objects ownership from layout to widget static inline void qwidgetReparentLayout(QWidget *parent, QLayout *layout) @@ -464,7 +464,8 @@ static inline void qwidgetReparentLayout(QWidget *parent, QLayout *layout) Shiboken::Object::setParent(pyParent, pyChild); //remove previous references Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyChild.object()), - qPrintable(retrieveObjectName(pyChild)), Py_None); + retrieveObjectName(pyChild).constData(), + Py_None); } static inline void qwidgetSetLayout(QWidget *self, QLayout *layout) |