aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-07-27 14:51:09 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-27 22:40:48 +0000
commit25cc8018e5c4be3a85b9ef8c9257abb3d47f968c (patch)
tree09aa6a53632572f8153b14cfec8abb740aa8f59e
parenta623a5755c9cf7b8bf6411bd773671cd57a616d7 (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.xml12
-rw-r--r--sources/pyside6/PySide6/glue/qtwidgets.cpp27
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)