aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorCristián Maureira-Fredes <cristian.maureira-fredes@qt.io>2020-02-06 18:32:53 +0100
committerCristian Maureira-Fredes <cristian.maureira-fredes@qt.io>2020-03-13 08:15:21 +0100
commit4106f1420119f77b41246836f1829431a1c58395 (patch)
treec0769fbe0416421ec6d4512e57d421766ffd1c47 /sources
parent4df39cb75da522e5daff583e6fc11ca897969628 (diff)
Adjust the allow-thread behavior
This adds and remove the usage of: allow-thread="yes" in some typesystem entries. This also adapt the usage of the Py_BEGIN/END_ALLOW_THREAD macro inside the snippets used by other typesystem entries. The main reason is that in some cases not the whole snippet requires to be inside such state, but only when calling the C++ equivalent function. Task-number: PYSIDE-803 Change-Id: Ifa9c8cee2713c453e4d5c624aaa862e75559180c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources')
-rw-r--r--sources/pyside2/PySide2/QtCore/typesystem_core_common.xml51
-rw-r--r--sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml23
-rw-r--r--sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml63
-rw-r--r--sources/pyside2/PySide2/glue/qtcore.cpp39
-rw-r--r--sources/pyside2/PySide2/glue/qtgui.cpp4
-rw-r--r--sources/pyside2/PySide2/glue/qtwidgets.cpp6
-rw-r--r--sources/pyside2/PySide2/templates/core_common.xml44
-rw-r--r--sources/pyside2/PySide2/templates/gui_common.xml8
-rw-r--r--sources/pyside2/PySide2/templates/openglfunctions_common.xml2
9 files changed, 122 insertions, 118 deletions
diff --git a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
index 695fd670f..f64a8fd73 100644
--- a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
+++ b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
@@ -1415,6 +1415,11 @@
</value-type>
<object-type name="QLockFile">
<enum-type name="LockError"/>
+ <modify-function signature="isLocked()const" allow-thread="yes"/>
+ <modify-function signature="lock()" allow-thread="yes"/>
+ <modify-function signature="removeStaleLockFile()" allow-thread="yes"/>
+ <modify-function signature="tryLock(int)" allow-thread="yes"/>
+ <modify-function signature="unlock()" allow-thread="yes"/>
</object-type>
<object-type name="QMessageAuthenticationCode"/>
<object-type name="QSignalBlocker"/>
@@ -1457,12 +1462,13 @@
<object-type name="QThread">
<enum-type name="Priority"/>
<modify-function signature="currentThreadId()" remove="all"/>
- <modify-function signature="run()" thread="yes"/>
+ <modify-function signature="run()" allow-thread="yes"/>
<modify-function signature="exec()" rename="exec_" allow-thread="yes"/>
<modify-function signature="msleep(unsigned long)" allow-thread="yes"/>
<modify-function signature="sleep(unsigned long)" allow-thread="yes"/>
<modify-function signature="usleep(unsigned long)" allow-thread="yes"/>
<modify-function signature="wait(unsigned long)" allow-thread="yes"/>
+ <modify-function signature="yieldCurrentThread()" allow-thread="yes"/>
<modify-function signature="start(QThread::Priority)" allow-thread="yes">
<modify-argument index="1">
<rename to="priority"/>
@@ -1518,6 +1524,11 @@
<define-ownership class="native" owner="c++"/>
</modify-argument>
</modify-function>
+ <modify-function signature="dataChanged(const QModelIndex&amp;,const QModelIndex&amp;,const QVector&lt;int&gt;&amp;)" allow-thread="yes"/>
+ <modify-function signature="layoutAboutToBeChanged(const QList&lt;QPersistentModelIndex&gt;&amp;,QAbstractItemModel::LayoutChangeHint)" allow-thread="yes"/>
+ <modify-function signature="layoutChanged(const QList&lt;QPersistentModelIndex&gt;&amp;,QAbstractItemModel::LayoutChangeHint)" allow-thread="yes"/>
+ <modify-function signature="beginResetModel()" allow-thread="yes"/>
+ <modify-function signature="endResetModel()" allow-thread="yes"/>
</object-type>
<value-type name="QItemSelection">
<include file-name="QList" location="global"/>
@@ -1718,13 +1729,13 @@
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-receivers"/>
</modify-function>
- <modify-function signature="destroyed(QObject*)">
+ <modify-function signature="destroyed(QObject*)" allow-thread="yes">
<modify-argument index="1">
<rename to="object"/>
</modify-argument>
</modify-function>
- <modify-function signature="sender()const">
+ <modify-function signature="sender()const" allow-thread="yes">
<modify-argument index="return">
<define-ownership owner="default"/>
</modify-argument>
@@ -2202,6 +2213,8 @@
<modify-function signature="flush()" allow-thread="yes"/>
</object-type>
<object-type name="QFile">
+ <modify-function signature="open(QFlags&lt;QIODevice::OpenModeFlag&gt;)" allow-thread="yes"/>
+ <modify-function signature="open(int,QFlags&lt;QIODevice::OpenModeFlag&gt;,QFlags&lt;QFileDevice::FileHandleFlag&gt;)" allow-thread="yes"/>
<modify-function signature="copy(const QString&amp;)" allow-thread="yes"/>
<modify-function signature="copy(const QString&amp;,const QString&amp;)" allow-thread="yes"/>
<modify-function signature="link(const QString&amp;)" allow-thread="yes"/>
@@ -2279,7 +2292,7 @@
<enum-type name="LibraryLocation"/>
</object-type>
<object-type name="QMutexLocker" copyable="no">
- <modify-function signature="QMutexLocker(QBasicMutex*)" allow-thread="yes">
+ <modify-function signature="QMutexLocker(QBasicMutex*)">
<modify-argument index="1">
<reference-count action="set" variable-name="mutex()const0"/>
</modify-argument>
@@ -2298,23 +2311,24 @@
<!-- Qt5 addition -->
<object-type name="QBasicMutex">
- <modify-function signature="lock()" allow-thread="yes"/>
- <modify-function signature="tryLock()" allow-thread="yes"/>
+ <modify-function signature="lock()"/>
+ <modify-function signature="tryLock()"/>
</object-type>
<object-type name="QMutex">
<enum-type name="RecursionMode"/>
<modify-function signature="lock()" allow-thread="yes"/>
+ <modify-function signature="unlock()" allow-thread="yes"/>
<modify-function signature="tryLock(int)" allow-thread="yes"/>
</object-type>
<object-type name="QRecursiveMutex" since="5.14"/>
<object-type name="QRandomGenerator" since="5.10">
- <modify-function signature="global()" rename="global_" allow-thread="yes"/>
+ <modify-function signature="global()" rename="global_"/>
<modify-function signature="operator()()" remove="all"/>
<modify-function signature="generate(quint32*,quint32*)" remove="all"/>
</object-type>
<object-type name="QRandomGenerator64" since="5.10">
- <modify-function signature="global()" rename="global_" allow-thread="yes"/>
+ <modify-function signature="global()" rename="global_"/>
<modify-function signature="operator()()" remove="all"/>
</object-type>
<object-type name="QSemaphore">
@@ -2338,7 +2352,9 @@
<extra-includes>
<!-- Qt5: private <include file-name="QAbstractFileEngine" location="global"/> -->
</extra-includes>
- <modify-function signature="createLocalFile(const QString&amp;)" allow-thread="yes"/>
+ <modify-function signature="createNativeFile(QFile&amp;)" allow-thread="yes"/>
+ <modify-function signature="createNativeFile(const QString&amp;)" allow-thread="yes"/>
+ <modify-function signature="open()" allow-thread="yes"/>
</object-type>
<object-type name="QTemporaryDir"/>
<object-type name="QMimeData">
@@ -2385,7 +2401,7 @@
<enum-type name="State"/>
</object-type>
<object-type name="QTranslator">
- <modify-function signature="load(const uchar*,int,QString)">
+ <modify-function signature="load(const uchar*,int,QString)" allow-thread="yes">
<modify-argument index="1">
<replace-type modified-type="PyBuffer"/>
</modify-argument>
@@ -2778,16 +2794,23 @@
</object-type>
<object-type name="QThreadPool">
- <modify-function signature="start(QRunnable*,int)">
+ <modify-function signature="clear()" allow-thread="yes"/>
+ <modify-function signature="activeThreadCount()const" allow-thread="yes"/>
+ <modify-function signature="releaseThread()" allow-thread="yes"/>
+ <modify-function signature="reserveThread()" allow-thread="yes"/>
+ <modify-function signature="setMaxThreadCount(int)" allow-thread="yes"/>
+ <modify-function signature="waitForDone(int)" allow-thread="yes"/>
+ <modify-function signature="start(QRunnable*,int)" allow-thread="yes">
<modify-argument index="1">
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
- <modify-function signature="tryStart(QRunnable*)">
+ <modify-function signature="tryStart(QRunnable*)" allow-thread="yes">
<modify-argument index="1">
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <modify-function signature="tryTake(QRunnable*)" allow-thread="yes"/>
<modify-function signature="globalInstance()" >
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="releaseownership"/>
@@ -2873,7 +2896,7 @@
</value-type>
<value-type name="QMetaEnum">
- <modify-function signature="keyToValue(const char*,bool*)const" allow-thread="yes">
+ <modify-function signature="keyToValue(const char*,bool*)const">
<modify-argument index="2">
<remove-argument />
</modify-argument>
@@ -2884,7 +2907,7 @@
<insert-template name="fix_args,bool*"/>
</inject-code>
</modify-function>
- <modify-function signature="keysToValue(const char*,bool*)const" allow-thread="yes">
+ <modify-function signature="keysToValue(const char*,bool*)const">
<modify-argument index="2">
<remove-argument />
</modify-argument>
diff --git a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml
index e1a170e61..13f8f3cbf 100644
--- a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml
+++ b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml
@@ -757,6 +757,11 @@
<include file-name="QMatrix" location="global"/>
</extra-includes>
+ <modify-function signature="load(const QString&amp;, const char*)" allow-thread="yes"/>
+ <modify-function signature="load(QIODevice*,const char*)" allow-thread="yes"/>
+ <modify-function signature="save(const QString&amp;,const char*,int)const" allow-thread="yes"/>
+ <modify-function signature="save(QIODevice*,const char*,int)const" allow-thread="yes"/>
+
<modify-function signature="QImage(uchar*,int,int,int,QImage::Format,QImageCleanupFunction,void*)">
<modify-argument index="1">
<replace-type modified-type="PyBuffer"/>
@@ -1214,10 +1219,13 @@
<modify-function signature="drawInlineObject(QPainter*,QRectF,QTextInlineObject,int,QTextFormat)">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
+ <modify-function signature="update(const QRectF &amp;)" allow-thread="yes"/>
</object-type>
<object-type name="QPyTextObject"/>
- <object-type name="QDesktopServices" since="4.2"/>
+ <object-type name="QDesktopServices" since="4.2">
+ <modify-function signature="openUrl(const QUrl&amp;)" allow-thread="yes"/>
+ </object-type>
<object-type name="QDoubleValidator">
<enum-type name="Notation"/>
</object-type>
@@ -1254,6 +1262,8 @@
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <modify-function signature="read()" allow-thread="yes"/>
+ <modify-function signature="write()" allow-thread="yes"/>
</object-type>
<object-type name="QPixmapCache">
<value-type name="Key"/>
@@ -1523,6 +1533,7 @@
<!-- ### This method does not make sense in Python.
Update: perhaps it does, but no one is missing it. -->
<modify-function signature="read(QImage*)" remove="all"/>
+ <modify-function signature="read()" allow-thread="yes"/>
<modify-function signature="setDevice(QIODevice*)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -1720,7 +1731,7 @@
<include file-name="QPixmap" location="global"/>
</extra-includes>
<enum-type name="Mode"/>
- <modify-function signature="setMimeData(QMimeData*,QClipboard::Mode)">
+ <modify-function signature="setMimeData(QMimeData*,QClipboard::Mode)" allow-thread="yes">
<modify-argument index="1">
<!-- TODO: maybe this is not the best solution -->
<parent index="this" action="add"/>
@@ -2536,6 +2547,11 @@
</modify-argument>
<inject-code file="../glue/qtgui.cpp" snippet="qwindow-fromWinId"/>
</modify-function>
+ <modify-function signature="show()" allow-thread="yes"/>
+ <modify-function signature="showFullScreen()" allow-thread="yes"/>
+ <modify-function signature="showMaximized()" allow-thread="yes"/>
+ <modify-function signature="showMinimized()" allow-thread="yes"/>
+ <modify-function signature="showNormal()" allow-thread="yes"/>
</object-type>
<object-type name="QGuiApplication">
@@ -2555,6 +2571,7 @@
<inject-code file="../glue/qtgui.cpp" snippet="qguiapplication-2"/>
</add-function>
<inject-code class="native" position="beginning" file="../glue/qtgui.cpp" snippet="qguiapplication-init"/>
+ <modify-function signature="exec()" rename="exec_" allow-thread="yes"/>
</object-type>
@@ -3017,6 +3034,8 @@
<modify-function signature="advancesForGlyphIndexes(const quint32*,QPointF*,int)const" remove="all"/>
<modify-function signature="advancesForGlyphIndexes(const quint32*,QPointF*,int,QFlags&lt;QRawFont::LayoutFlag&gt;)const" remove="all"/>
<modify-function signature="glyphIndexesForChars(const QChar*,int,quint32*,int*)const" remove="all"/>
+ <modify-function signature="loadFromData(const QByteArray&amp;,qreal, QFont::HintingPreference)" allow-thread="yes"/>
+ <modify-function signature="loadFromFile(const QString&amp;,qreal, QFont::HintingPreference)" allow-thread="yes"/>
</value-type>
<object-type name="QRasterWindow"/>
<object-type name="QScreen">
diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml
index d9e328f06..2d3761d34 100644
--- a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml
+++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml
@@ -444,7 +444,7 @@
<define-ownership class="target" owner="default"/>
</modify-argument>
</modify-function>
- <modify-function signature="setIndexWidget(const QModelIndex &amp;,QWidget*)">
+ <modify-function signature="setIndexWidget(const QModelIndex &amp;,QWidget*)" allow-thread="yes">
<modify-argument index="2">
<parent index="this" action="add"/>
</modify-argument>
@@ -559,6 +559,7 @@
<parent index="return" action="add"/>
</modify-argument>
</modify-function>
+ <modify-function signature="registerField(const QString&amp;,QWidget*,const char*,const char*)" allow-thread="yes"/>
</object-type>
<object-type name="QFocusFrame">
<modify-function signature="setWidget(QWidget*)">
@@ -583,7 +584,7 @@
<insert-template name="bool*_fix,arg"/>
</inject-code>
</modify-function>
- <modify-function signature="getFont(bool*,QFont,QWidget*,QString,QFlags&lt;QFontDialog::FontDialogOption&gt;)">
+ <modify-function signature="getFont(bool*,QFont,QWidget*,QString,QFlags&lt;QFontDialog::FontDialogOption&gt;)" allow-thread="yes">
<modify-argument index="1">
<remove-argument />
</modify-argument>
@@ -792,15 +793,16 @@
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <modify-function signature="removeSubWindow(QWidget*)" allow-thread="yes"/>
</object-type>
<object-type name="QMdiSubWindow">
<enum-type name="SubWindowOption" flags="SubWindowOptions"/>
- <modify-function signature="setWidget(QWidget*)" >
+ <modify-function signature="setWidget(QWidget*)" allow-thread="yes">
<modify-argument index="1">
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
- <modify-function signature="setSystemMenu(QMenu*)" >
+ <modify-function signature="setSystemMenu(QMenu*)" allow-thread="yes">
<modify-argument index="1">
<parent index="this" action="add"/>
</modify-argument>
@@ -1291,16 +1293,16 @@
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
</modify-function>
- <modify-function signature="addWidget(QWidget*)">
+ <modify-function signature="addWidget(QWidget*)" allow-thread="yes">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
</modify-function>
- <modify-function signature="addChildWidget(QWidget*)">
+ <modify-function signature="addChildWidget(QWidget*)" allow-thread="yes">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
</modify-function>
<modify-function signature="addChildLayout(QLayout*)">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
</modify-function>
- <modify-function signature="setMenuBar(QWidget*)">
+ <modify-function signature="setMenuBar(QWidget*)" allow-thread="yes">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
</modify-function>
@@ -1341,9 +1343,12 @@
<object-type name="QStackedLayout">
<inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qlayout-help-functions"/>
<enum-type name="StackingMode"/>
- <modify-function signature="insertWidget(int,QWidget*)">
+ <modify-function signature="insertWidget(int,QWidget*)" allow-thread="yes">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-2"/>
</modify-function>
+ <modify-function signature="addWidget(QWidget*)" allow-thread="yes">
+ <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
+ </modify-function>
</object-type>
<object-type name="QBoxLayout">
@@ -1351,7 +1356,7 @@
<enum-type name="Direction"/>
- <modify-function signature="addWidget(QWidget*,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
+ <modify-function signature="addWidget(QWidget*,int,QFlags&lt;Qt::AlignmentFlag&gt;)" allow-thread="yes">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
</modify-function>
@@ -1359,7 +1364,7 @@
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-1"/>
</modify-function>
- <modify-function signature="insertWidget(int,QWidget*,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
+ <modify-function signature="insertWidget(int,QWidget*,int,QFlags&lt;Qt::AlignmentFlag&gt;)" allow-thread="yes">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="addownership-2"/>
</modify-function>
<modify-function signature="insertLayout(int,QLayout*,int)">
@@ -1759,7 +1764,7 @@
<define-ownership class="target" owner="default"/>
</modify-argument>
</modify-function>
- <modify-function signature="setItemWidget(QTreeWidgetItem*,int,QWidget*)">
+ <modify-function signature="setItemWidget(QTreeWidgetItem*,int,QWidget*)" allow-thread="yes">
<modify-argument index="3">
<parent index="this" action="add"/>
</modify-argument>
@@ -1806,6 +1811,7 @@
<modify-function signature="clear()">
<inject-code file="../glue/qtwidgets.cpp" snippet="qtreewidget-clear"/>
</modify-function>
+ <modify-function signature="removeItemWidget(QTreeWidgetItem*,int)" allow-thread="yes"/>
</object-type>
<object-type name="QAbstractItemDelegate">
<enum-type name="EndEditHint"/>
@@ -1823,13 +1829,14 @@
<define-ownership class="native" owner="c++"/>
</modify-argument>
</modify-function>
+ <modify-function signature="closeEditor(QWidget*,QAbstractItemDelegate::EndEditHint)" allow-thread="yes"/>
</object-type>
<object-type name="QTableWidgetItem" >
<enum-type name="ItemType"/>
- <modify-function signature="read(QDataStream&amp;)">
+ <modify-function signature="read(QDataStream&amp;)" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
- <modify-function signature="write(QDataStream&amp;)const">
+ <modify-function signature="write(QDataStream&amp;)const" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
</object-type>
@@ -1855,10 +1862,10 @@
<define-ownership owner="target"/>
</modify-argument>
</modify-function>
- <modify-function signature="read(QDataStream&amp;)">
+ <modify-function signature="read(QDataStream&amp;)" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
- <modify-function signature="write(QDataStream&amp;)const">
+ <modify-function signature="write(QDataStream&amp;)const" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
</object-type>
@@ -1895,10 +1902,10 @@
<object-type name="QTreeWidgetItem" hash-function="qHash">
<enum-type name="ChildIndicatorPolicy"/>
<enum-type name="ItemType"/>
- <modify-function signature="read(QDataStream&amp;)">
+ <modify-function signature="read(QDataStream&amp;)" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
- <modify-function signature="write(QDataStream&amp;)const">
+ <modify-function signature="write(QDataStream&amp;)const" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
<modify-function signature="QTreeWidgetItem(QTreeWidget*,int)">
@@ -1987,7 +1994,7 @@
<define-ownership class="target" owner="default"/>
</modify-argument>
</modify-function>
- <modify-function signature="setItemWidget(QListWidgetItem*,QWidget*)">
+ <modify-function signature="setItemWidget(QListWidgetItem*,QWidget*)" allow-thread="yes">
<modify-argument index="2">
<parent index="1" action="add"/>
</modify-argument>
@@ -2011,6 +2018,7 @@
<modify-function signature="clear()">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qlistwidget-clear"/>
</modify-function>
+ <modify-function signature="removeItemWidget(QListWidgetItem*)" allow-thread="yes"/>
</object-type>
<object-type name="QWidget" delete-in-main-thread="true">
@@ -2249,7 +2257,7 @@
</modify-argument>
</modify-function>
- <modify-function signature="setLayout(QLayout*)">
+ <modify-function signature="setLayout(QLayout*)" allow-thread="yes">
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-setlayout"/>
</modify-function>
<modify-function signature="raise()" rename="raise_"/>
@@ -2292,7 +2300,8 @@
<modify-function signature="question(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,int,int)" remove="all"/>
<modify-function signature="warning(QWidget*,const QString&amp;,const QString&amp;,int,int,int)" remove="all"/>
<modify-function signature="warning(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,int,int)" remove="all"/>
-
+ <modify-function signature="about(QWidget*,const QString&amp;,const QString&amp;)" allow-thread="yes"/>
+ <modify-function signature="aboutQt(QWidget*,const QString&amp;)" allow-thread="yes"/>
</object-type>
<object-type name="QAbstractSpinBox">
<enum-type name="ButtonSymbols"/>
@@ -2436,7 +2445,7 @@
</modify-function>
<modify-function signature="getExistingDirectory(QWidget*,const QString&amp;,const QString&amp;,QFlags&lt;QFileDialog::Option>)" allow-thread="yes"/>
- <modify-function signature="getExistingDirectoryUrl(QWidget*,const QString&amp;,const QUrl&amp;,QFlags&lt;QFileDialog::Option>,const QStringList&amp;)"/>
+ <modify-function signature="getExistingDirectoryUrl(QWidget*,const QString&amp;,const QUrl&amp;,QFlags&lt;QFileDialog::Option>,const QStringList&amp;)" allow-thread="yes"/>
<modify-function signature="getOpenFileName(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;)" allow-thread="yes">
<modify-argument index="return">
<replace-type modified-type="(fileName, selectedFilter)"/>
@@ -2609,11 +2618,12 @@
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
- <modify-function signature="setCellWidget(int,int,QWidget*)">
+ <modify-function signature="setCellWidget(int,int,QWidget*)" allow-thread="yes">
<modify-argument index="3">
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <modify-function signature="removeCellWidget(int,int)" allow-thread="yes"/>
<modify-function signature="setCurrentItem(QTableWidgetItem*)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -2653,7 +2663,9 @@
</modify-argument>
</modify-function>
</object-type>
- <object-type name="QGroupBox"/>
+ <object-type name="QGroupBox">
+ <modify-function signature="clicked(bool)" allow-thread="yes"/>
+ </object-type>
<object-type name="QStackedWidget">
<modify-function signature="addWidget(QWidget*)">
<modify-argument index="1">
@@ -2939,6 +2951,7 @@
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <modify-function signature="triggered(bool)" allow-thread="yes"/>
</object-type>
<object-type name="QApplication">
@@ -2963,6 +2976,8 @@
<inject-code class="target" position="end" file="../glue/qtwidgets.cpp" snippet="qapplication-setStyle"/>
</modify-function>
<modify-function signature="exec()" rename="exec_" allow-thread="yes"/>
+ <modify-function signature="notify(QObject*,QEvent*)" allow-thread="yes"/>
+ <modify-function signature="alert(QWidget*,int)" allow-thread="yes"/>
<inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qapplication-init"/>
</object-type>
@@ -3235,7 +3250,7 @@
<parent index="1" action="add"/>
</modify-argument>
</modify-function>
- <modify-function signature="setWidget(QWidget*)">
+ <modify-function signature="setWidget(QWidget*)" allow-thread="yes">
<inject-code file="../glue/qtwidgets.cpp" snippet="qgraphicsproxywidget-setwidget"/>
</modify-function>
</object-type>
diff --git a/sources/pyside2/PySide2/glue/qtcore.cpp b/sources/pyside2/PySide2/glue/qtcore.cpp
index e54fa1846..b870afa55 100644
--- a/sources/pyside2/PySide2/glue/qtcore.cpp
+++ b/sources/pyside2/PySide2/glue/qtcore.cpp
@@ -63,10 +63,15 @@ bool py2kStrCheck(PyObject *obj)
// defaultValue can also be passed as positional argument,
// not only as keyword.
QVariant out;
-if (kwds || numArgs > 1)
+if (kwds || numArgs > 1) {
+ Py_BEGIN_ALLOW_THREADS
out = %CPPSELF.value(%1, %2);
-else
+ Py_END_ALLOW_THREADS
+} else {
+ Py_BEGIN_ALLOW_THREADS
out = %CPPSELF.value(%1);
+ Py_END_ALLOW_THREADS
+}
PyTypeObject *typeObj = reinterpret_cast<PyTypeObject*>(%PYARG_3);
@@ -393,9 +398,7 @@ static bool qobjectConnect(QObject *source, const char *signal, QObject *receive
slot++;
PySide::SignalManager::registerMetaMethod(receiver, slot, isSignal ? QMetaMethod::Signal : QMetaMethod::Slot);
bool connection;
- Py_BEGIN_ALLOW_THREADS
connection = QObject::connect(source, signal - 1, receiver, slot - 1, type);
- Py_END_ALLOW_THREADS
return connection;
}
@@ -451,9 +454,7 @@ static bool qobjectConnectCallback(QObject *source, const char *signal, PyObject
}
}
bool connection;
- Py_BEGIN_ALLOW_THREADS
connection = QMetaObject::connect(source, signalIndex, receiver, slotIndex, type);
- Py_END_ALLOW_THREADS
if (connection) {
if (usingGlobalReceiver)
signalManager.notifyGlobalReceiver(receiver);
@@ -499,9 +500,7 @@ static bool qobjectDisconnectCallback(QObject *source, const char *signal, PyObj
slotMethod = metaObject->method(slotIndex);
bool disconnected;
- Py_BEGIN_ALLOW_THREADS
disconnected = QMetaObject::disconnectOne(source, signalIndex, receiver, slotIndex);
- Py_END_ALLOW_THREADS
if (disconnected) {
if (usingGlobalReceiver)
@@ -577,8 +576,10 @@ bool %0 = qobjectConnect(%1, %2, %3, %4, %5);
// qFatal doesn't have a stream version, so we do a
// qWarning call followed by a qFatal() call using a
// literal.
+Py_BEGIN_ALLOW_THREADS
qWarning() << %1;
qFatal("[A qFatal() call was made from Python code]");
+Py_END_ALLOW_THREADS
// @snippet qfatal
// @snippet moduleshutdown
@@ -669,9 +670,7 @@ if (!PyDateTimeAPI)
// @snippet qdate-getdate
int year, month, day;
-%BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(&year, &month, &day);
-%END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(3);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](year));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](month));
@@ -680,9 +679,7 @@ PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[int](day));
// @snippet qdate-weeknumber
int yearNumber;
-%BEGIN_ALLOW_THREADS
int week = %CPPSELF.%FUNCTION_NAME(&yearNumber);
-%END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](week));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](yearNumber));
@@ -1439,7 +1436,10 @@ Py_XINCREF(%PYARG_0);
// @snippet qdatastream-readrawdata
QByteArray data;
data.resize(%2);
-int result = %CPPSELF.%FUNCTION_NAME(data.data(), data.size());
+int result = 0;
+Py_BEGIN_ALLOW_THREADS
+result = %CPPSELF.%FUNCTION_NAME(data.data(), data.size());
+Py_END_ALLOW_THREADS
if (result == -1) {
Py_INCREF(Py_None);
%PYARG_0 = Py_None;
@@ -1449,7 +1449,10 @@ if (result == -1) {
// @snippet qdatastream-readrawdata
// @snippet qdatastream-writerawdata
-int r = %CPPSELF.%FUNCTION_NAME(%1, Shiboken::String::len(%PYARG_1));
+int r = 0;
+Py_BEGIN_ALLOW_THREADS
+r = %CPPSELF.%FUNCTION_NAME(%1, Shiboken::String::len(%PYARG_1));
+Py_END_ALLOW_THREADS
%PYARG_0 = %CONVERTTOPYTHON[int](r);
// @snippet qdatastream-writerawdata
@@ -1580,7 +1583,9 @@ QT_END_NAMESPACE
// @snippet use-stream-for-format-security
// Uses the stream version for security reasons
// see gcc man page at -Wformat-security
+Py_BEGIN_ALLOW_THREADS
%FUNCTION_NAME() << %1;
+Py_END_ALLOW_THREADS
// @snippet use-stream-for-format-security
// @snippet qresource-registerResource
@@ -1594,12 +1599,16 @@ QT_END_NAMESPACE
// @snippet qstring-return
// @snippet stream-write-method
+Py_BEGIN_ALLOW_THREADS
(*%CPPSELF) << %1;
+Py_END_ALLOW_THREADS
// @snippet stream-write-method
// @snippet stream-read-method
%RETURN_TYPE _cpp_result;
+Py_BEGIN_ALLOW_THREADS
(*%CPPSELF) >> _cpp_result;
+Py_END_ALLOW_THREADS
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](_cpp_result);
// @snippet stream-read-method
@@ -1621,7 +1630,9 @@ if (PyBytes_Check(%PYARG_0)) {
// @snippet qiodevice-readData
QByteArray ba(1 + int(%2), char(0));
+Py_BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(ba.data(), int(%2));
+Py_END_ALLOW_THREADS
%PYARG_0 = Shiboken::String::fromCString(ba.constData());
// @snippet qiodevice-readData
diff --git a/sources/pyside2/PySide2/glue/qtgui.cpp b/sources/pyside2/PySide2/glue/qtgui.cpp
index d2480e99e..a6b45b7c0 100644
--- a/sources/pyside2/PySide2/glue/qtgui.cpp
+++ b/sources/pyside2/PySide2/glue/qtgui.cpp
@@ -78,9 +78,7 @@ QBitmap %0 = QBitmap::fromData(%1, buffer, %3);
// @snippet qbitmap-fromdata
// @snippet qtextline-cursortox
-%BEGIN_ALLOW_THREADS
%RETURN_TYPE %0 = %CPPSELF->::%TYPE::%FUNCTION_NAME(&%1, %2);
-%END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](%0));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1));
@@ -444,9 +442,7 @@ PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1));
// @snippet qclipboard-text
// @snippet qpainter-drawpolygon
-%BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(%1.data(), %1.size(), %2);
-%END_ALLOW_THREADS
// @snippet qpainter-drawpolygon
// @snippet qmatrix-map-point
diff --git a/sources/pyside2/PySide2/glue/qtwidgets.cpp b/sources/pyside2/PySide2/glue/qtwidgets.cpp
index 0e0b025a6..1c663364c 100644
--- a/sources/pyside2/PySide2/glue/qtwidgets.cpp
+++ b/sources/pyside2/PySide2/glue/qtwidgets.cpp
@@ -93,18 +93,14 @@ _defaultValue = %PYARG_1;
// @snippet qformlayout-fix-args
int _row;
QFormLayout::ItemRole _role;
-%BEGIN_ALLOW_THREADS
%CPPSELF->%FUNCTION_NAME(%ARGUMENT_NAMES, &_row, &_role);
-%END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](_row));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QFormLayout::ItemRole](_role));
// @snippet qformlayout-fix-args
// @snippet qfiledialog-return
-%BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, &%5, %6);
-%END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG5_TYPE](%5));
@@ -389,9 +385,7 @@ Shiboken::AutoDecRef parent(%CONVERTTOPYTHON[QGraphicsItem *](parentItem));
const auto &childItems = %1->childItems();
for (auto *item : childItems)
Shiboken::Object::setParent(parent, %CONVERTTOPYTHON[QGraphicsItem *](item));
-%BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(%1);
-%END_ALLOW_THREADS
// the arg was destroyed by Qt.
Shiboken::Object::invalidate(%PYARG_1);
// @snippet qgraphicsscene-destroyitemgroup
diff --git a/sources/pyside2/PySide2/templates/core_common.xml b/sources/pyside2/PySide2/templates/core_common.xml
index 8147b39e8..6d02428ad 100644
--- a/sources/pyside2/PySide2/templates/core_common.xml
+++ b/sources/pyside2/PySide2/templates/core_common.xml
@@ -49,17 +49,13 @@
<template name="bool*_fix,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %2);
- %END_ALLOW_THREADS
<insert-template name="tuple_ok_retval"/>
</template>
<template name="bool*_fix,arg,arg,arg,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %2, %3, %4, %5);
- %END_ALLOW_THREADS
<insert-template name="tuple_ok_retval"/>
</template>
@@ -72,113 +68,85 @@
<template name="fix_bool*">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_args,bool*">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;ok_);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_args,arg,bool*">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, &amp;ok_);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_arg,bool*,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, &amp;ok_, %3);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_bool*,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %2);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_bool*,arg,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %2, %3);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_bool*,arg,arg,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %2, %3, %4);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_bool*,arg,arg,arg,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %2, %3, %4, %5);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_arg,arg,arg,arg,arg,arg,arg,bool*,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, %5, %6, %7, &amp;ok_, %9);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_arg,arg,arg,arg,arg,arg,arg,bool*,arg,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, %5, %6, %7, &amp;ok_, %9, %10);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_arg,arg,arg,arg,arg,arg,bool*,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, %5, %6, &amp;ok_, %8);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_arg,arg,arg,arg,arg,bool*,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, %5, &amp;ok_, %7);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_arg,arg,arg,arg,bool*,arg,arg">
bool ok_;
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, &amp;ok_, %6, %7);
- %END_ALLOW_THREADS
<insert-template name="tuple_retval_ok"/>
</template>
<template name="fix_char*">
char val_{};
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;val_);
- %END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[char](val_));
@@ -194,17 +162,13 @@
<template name="fix_number*,number*,number*,number*">
$TYPE a, b, c, d;
- %BEGIN_ALLOW_THREADS
%CPPSELF->::%TYPE::%FUNCTION_NAME(&amp;a, &amp;b, &amp;c, &amp;d);
- %END_ALLOW_THREADS
<insert-template name="tuple_abcd_same_type"/>
</template>
<template name="fix_number*,number*,number*,number*,args">
$TYPE a, b, c, d;
- %BEGIN_ALLOW_THREADS
%CPPSELF->::%TYPE::%FUNCTION_NAME(&amp;a, &amp;b, &amp;c, &amp;d, %ARGUMENT_NAMES);
- %END_ALLOW_THREADS
<insert-template name="tuple_abcd_same_type"/>
</template>
@@ -227,9 +191,7 @@
<template name="fix_number*,number*,number*,number*,number*">
$TYPE a, b, c, d, e;
- %BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(&amp;a, &amp;b, &amp;c, &amp;d, &amp;e);
- %END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(5);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[$TYPE](a));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[$TYPE](b));
@@ -240,9 +202,7 @@
<template name="fix_args,number*,number*">
$TYPE a, b;
- %BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;a, &amp;b);
- %END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[$TYPE](a));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[$TYPE](b));
@@ -251,9 +211,7 @@
<template name="fix_arg,int*,int*">
%RETURN_TYPE _ret;
int a, b;
- %BEGIN_ALLOW_THREADS
_ret = %CPPSELF.%FUNCTION_NAME(%1, &amp;a, &amp;b);
- %END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(3);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](_ret));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](a));
@@ -261,9 +219,7 @@
</template>
<template name="return_tuple_QValidator_QString_int">
- %BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %RETURN_TYPE(%CPPSELF.%FUNCTION_NAME(%1, %2));
- %END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(3);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1));
diff --git a/sources/pyside2/PySide2/templates/gui_common.xml b/sources/pyside2/PySide2/templates/gui_common.xml
index 96b4906ef..a139a5fe9 100644
--- a/sources/pyside2/PySide2/templates/gui_common.xml
+++ b/sources/pyside2/PySide2/templates/gui_common.xml
@@ -66,9 +66,7 @@
for (int line = 0; line &lt; lineCount; ++line)
xpm[line] = Shiboken::String::toCString(PySequence_Fast_GET_ITEM(strList.object(), line));
- %BEGIN_ALLOW_THREADS
%0 = new %TYPE(xpm);
- %END_ALLOW_THREADS
free(xpm);
</template>
@@ -164,9 +162,7 @@
</template>
<template name="qpainter_drawlist">
- %BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(%1.data(), %1.size());
- %END_ALLOW_THREADS
</template>
<template name="inplace_add">
@@ -255,17 +251,13 @@
<template name="fix_args,QRectF*">
QRectF rect_;
- %BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;rect_);
- %END_ALLOW_THREADS
%PYARG_0 = %CONVERTTOPYTHON[QRectF](rect_);
</template>
<template name="fix_args,QRect*">
QRect rect_;
- %BEGIN_ALLOW_THREADS
%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;rect_);
- %END_ALLOW_THREADS
%PYARG_0 = %CONVERTTOPYTHON[QRect](rect_);
</template>
diff --git a/sources/pyside2/PySide2/templates/openglfunctions_common.xml b/sources/pyside2/PySide2/templates/openglfunctions_common.xml
index e01094004..117229a29 100644
--- a/sources/pyside2/PySide2/templates/openglfunctions_common.xml
+++ b/sources/pyside2/PySide2/templates/openglfunctions_common.xml
@@ -41,10 +41,8 @@
-->
<typesystem>
<template name="glGetString_return_QString">
- %BEGIN_ALLOW_THREADS
const GLubyte *us = %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES);
const QString s = QString::fromLocal8Bit(reinterpret_cast&lt;const char *&gt;(us));
- %END_ALLOW_THREADS
%PYARG_0 = %CONVERTTOPYTHON[QString](s);
</template>
</typesystem>