aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6/glue
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix usages of QLatin1String (deprecation candidate)Friedemann Kleint2023-11-291-2/+2
| | | | | | | | | Use QLatin1StringView or literals. Task-number: PYSIDE-2537 Change-Id: I03cb9ae80dacd84da9e53648dd179ad79e9189b1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* QTimer: Implement singleShot signatures w/ contextAdrian Herrmann2023-11-241-0/+37
| | | | | | | | | | | | On C++, it is possible to call singleShot timers with a context object as an argument. This allows posting events to the event loop of the given context object's thread, instead of the thread of the current thread. Implement corresponding signatures to add this capability to Qt for Python. Pick-to: 6.6 Change-Id: I0c4e3ef4b859cdfaac07415ff64c440821e7f442 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add QRhi and related classesFriedemann Kleint2023-11-021-0/+11
| | | | | | | | | | | | CMake logic borrowed from the native interface patch. [ChangeLog][PySide6] QRhi and related classes have been added. Pick-to: 6.6 Task-number: QTBUG-113331 Change-Id: I9dd8b0b92f71027fc9f2c170af2993a5b09a4cfd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add QMetaMethod::invoke()Friedemann Kleint2023-11-011-0/+51
| | | | | | | | | | [ChangeLog][PySide6] QMetaMethod.invoke() has been added. Pick-to: 6.6 Fixes: PYSIDE-2500 Change-Id: I270489ec9372ddfee19e9342c1312d8c446ee5d9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix QMetaObject method invocation to accept all of the 10 argumentsFriedemann Kleint2023-11-011-65/+41
| | | | | | | | | | | | | Refactor the helper injected into the QMetaObject wrapper code into helper functions in the QtCore glue code that handle all arguments of the QMetaObject::invokeMethod() overloads. Extract a std::function for the actuall call that helps to implement QMetaMethod::invoke() in a follow-up change. Pick-to: 6.6 Task-number: PYSIDE-2500 Change-Id: I4f2b509a13d252dad92e388e1dfd607ae3eafcd1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide: Fix QLocale crash on macOSShyamnath Premnadh2023-10-181-3/+10
| | | | | | | | | | | | | | | | | | | | | - Reproducible in macOS terminal/QtCreator because the environment does not explicitly set the locale unless the locale is changed. - If the locale of the system has not been changed, then the Python locale module's getLocale() returns 'None' as the language code. In this case, use the POSIX locale or 'C' locale as the default as stated in the Python locale module's documentation: `` According to POSIX, a program which has not called setlocale(LC_ALL, '') runs using the portable 'C' locale. `` - This issue does not exist in VSCode because VSCode set the locale in its terminal. Pick-to: 6.6 6.5 Fixes: PYSIDE-2485 Change-Id: I23ccfa0ef59912ad950143d4a1080c5a201a4865 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Output the runtime version in QLibraryInfo::build()Friedemann Kleint2023-10-131-5/+9
| | | | | | | Pick-to: 6.6 Task-number: PYSIDE-2230 Change-Id: Id365e1dac6a4486dd1ff995dde9b834cf6bf95b4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix a warning resulting from bumping Python to 3.8Friedemann Kleint2023-10-121-2/+2
| | | | | | | | | | | | Remove PepIndex_Check, fixing: Python is at version 3.8 now. The file pep384_issue33738.cpp should be removed ASAP! Amends bcfd0a1ad2f1c333b53db071fe40b2ee3569bd6b. Task-number: PYSIDE-1797 Pick-to: 6.6 Change-Id: Id195395fc81899c3881b2f9c6767e25d5bf8fb3d Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken: Get rid of tp_dict in general, amendedChristian Tismer2023-10-111-1/+2
| | | | | | | | | | | | | | | | | | A few more cases of cppgenerator were added. This are now really all cases, because tp_dict is no longer exported. As a very positive side effect, there is no longer direct tp_dict access in the "init_<type>" functions. Usage of PepType_GetDict would have created a permanent extra-reference. NOTE: It was necessary to set SKIP_UNITY_BUILD_INCLUSION on pep384impl.cpp in order to let this work with unity. Change-Id: I021dbc978b51265db96d5d3d438e06aa96230cc1 Pick-to: 6.2 6.5 6.6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Fix some static code analysis warnings in the generated codeFriedemann Kleint2023-10-101-2/+2
| | | | | | | | | | | | | Remove left-over reinterpret_cast<> from SbkType to PyType (SbkType was removed). Fix warnings about implicit cast to bool (pointer/int). Fix some auto * definitions of pointers. Generate wrapper destructors as override when applicable. Pick-to: 6.6 6.5 Change-Id: I961a1c64821bbf0f2648f5e897029f1aa7d61a43 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* libshiboken: Deprecate cast operators of AutoDecRefFriedemann Kleint2023-10-051-1/+1
| | | | | | | | | | | | | | | For the non-limited API case, there was a cast to PyTupleObject * required for argument tuples due to the PyTuple_GET_ITEM() macro definition. Replace it by calling object(). Also deprecate the universal cast function. [ChangeLog][shiboken6] Cast operators of the helper class AutoDecRef have been deprecated. Pick-to: 6.6 Task-number: PYSIDE-2479 Change-Id: Iff660fbc791b1a74ecbd247e71edc896767f308d Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix a debug mode assert in QDataStream.writeRawData() in ↵Friedemann Kleint2023-09-181-1/+1
| | | | | | | | | | | | | | | QtCore/qdatastream_test.py Shiboken::Buffer::getPointer() asserts with in Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS since some nested function cannot retrieve the thread state. Amends 940cad174f891a4b04af9bcc61aed1c8e8c6d4ae. Pick-to: 6.6 Task-number: PYSIDE-2442 Change-Id: I27ca9fc485cf81fb47747db7cc40623a9f7fffec Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PySide: Add requestPermission()Shyamnath Premnadh2023-09-081-0/+63
| | | | | | | | | | | | | | | | - Only relevant for platforms like Android, where QT_FEATURE_permissions is turned ON. - Used a callback from the wrapper code to establish a call back to the passed Python functor. - The passed functor can either have no parameters, or have a QPermission object as parameter. In the latter case, the QPermission object will store the result of requestPermission(). This is similar to the Qt API. Pick-to: 6.5 Task-number: PYSIDE-1612 Change-Id: I0de8d1c67e69590d2a63ee51c61dfb3a8b76a43f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QIODevice: Implement buffered readsAdrian Herrmann2023-08-311-0/+7
| | | | | | | | | | | | Some users of QIODevice read functions (read, readLine and peek) might want to use fixed buffers to avoid reallocation, e.g., asyncio's buffered protocols. This adds overloads of said read functions that take an input buffer (as a bytearray) and return the number of read bytes. Pick-to: 6.5 Change-Id: I0c3678d3a87811029278c5ae8f829eef0432099a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PySide6: Fix up QDataStream.readRawData/writeRawData()Friedemann Kleint2023-08-291-0/+10
| | | | | | | | | | | writeRawData() was historically implemented to take a string. Fix the signature. Add an overload for PyBuffer/bytes. Fix the return type of readRawData() to be bytes. Fixes: PYSIDE-2442 Change-Id: I1684afd5aae2f8d118fa2fac87d916c23bd4a59e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PySide: Fix QLocale::system() in macOSShyamnath Premnadh2023-08-251-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - QSystemLocale for macOS relies on CFBundleAllowMixedLocalizations/ CFBundleLocalizations in the Info.plist file for the C++ Application bundle, as seen from 1d3ae5f0e98f252214d20ce8561533891311a71f. Python being an interpreted language, there is no application bundle unless the application is deployed. As such a Python application in macOS relies on the Info.plist file of the Python interepreter. This Info.plist file is a read-only file and hence it is not possible/recommended to patch the Info.plist file of the Python interpreter at runtime. The issue has been raised upstream in CPython and can be tracked here: https://github.com/python/cpython/issues/108269 - A possible solution/hack is therefore to use to POSIX environment variables for macOS, for Qt for Python. This is also what the Python locale module does. See: https://github.com/python/cpython/blob/3.11/Lib/locale.py#L534 For other Unix systems, QLocale::system() uses the POSIX environment variables, just like Python's locale module. - For Windows and Linux, QSystem::locale() remains unchanged. - The idea here is to obtain the system locale from the Python locale module, and use the result to initialize and return a QLocale object. - As an extra, for qrunnable_create fix the typo - snipped to snippet. Fixes: PYSIDE-2419 Pick-to: 6.5 6.2 Change-Id: I12b16e824ddba21d1ebcd0695262c1dc0cc61eb2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* layouts: error instead of segfault for invalid itemCristián Maureira-Fredes2023-08-241-0/+6
| | | | | | | Pick-to: 6.5 Fixes: PYSIDE-2422 Change-Id: Id07b891083e11577e21c2ac2a429ef453328830e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix warning about unused allow-thread attribute on add-functionFriedemann Kleint2023-07-261-0/+2
| | | | | | | | | | | | | Allow-thread must be done in code for add-function. Fixes: typesystem_widgets_common.xml:537:164: Warning: 1 attributes(s) unused on <add-function>: allow-thread="yes" Amends 65e48138e166c3575dfe23dfec259e112302fd28. Task-number: PYSIDE-2384 Change-Id: Idf906c27fb3caa2361cff71ccca5f5385881ae40 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Add QWizardPage::registerField() with a signal instancFriedemann Kleint2023-07-261-0/+12
| | | | | | Fixes: PYSIDE-2384 Change-Id: Iad7a26385b40267308c287b8f6a4915972468574 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Add a convenience function for retrieving signal emittersFriedemann Kleint2023-07-261-6/+4
| | | | | | Task-number: PYSIDE-2384 Change-Id: I38cd611439a882e65f9f3bc6ca47dedd0a4fc66c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix stub and signature for QClipboard setPixmap and setImageCristián Maureira-Fredes2023-07-251-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Incorrectly, the pyi file described that it was possible to pass a: Union[PySide6.QtGui.QPixmap, PySide6.QtGui.QImage, str] for setPixmap, and: Union[PySide6.QtGui.QImage, str] for setImage. This uses the typesystem entry to restrict the setPixmap to accept a QPixmap and only a QImage for setImage. Additionally, this enable a PyPathLike signature, so users can pass 'str', 'bytes', 'pathlib.Path' as well, so the accepted arguments are: setImage(...) - PySide6.QtGui.QImage - Union[str, bytes, os.PathLike] setPixmap(...): - PySide6.QtGui.QPixmap - Union[str, bytes, os.PathLike] Pick-to: 6.5 Fixes: PYSIDE-2395 Change-Id: I521980dbc781a72e54f49fc84af5349733385133 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Add QtGraphsFriedemann Kleint2023-07-071-0/+8
| | | | | | Task-number: QTBUG-111305 Change-Id: I7ac79f59cfd0b85645d30485e86b6ff74bba20bb Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix 3 strange cases in QSettings.value() round trips of a listFriedemann Kleint2023-07-071-1/+39
| | | | | | | | | | | | | | | | | | | - The "default value" parameter had an int 0 default value, which lead to strange behavior ['0'] being returned for string lists with missing keys. - QStringList was not converted when forcing the type to be list due to the QByteArray split mechanism. - String values could not be coerced to a list Fix the default value to have a default {}. Add a helper function checking whether a custom type conversion is actually needed or the default QVariant converter can handle it. Pick-to: 6.5 Task-number: PYSIDE-2381 Change-Id: I91b22c05f851c2dc8c3792bd9f1446cfc8ceba51 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Factor helper functions for QSettings.value() type coercionFriedemann Kleint2023-07-071-51/+78
| | | | | | | Pick-to: 6.5 Task-number: PYSIDE-2381 Change-Id: Iac0922ad8eb67f6f19f43d9e796600ed11da2322 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PyEnum: Shortcut old Enum code and generate Python enums directlyChristian Tismer2023-06-302-10/+3
| | | | | | | | | | | | | | | | | The amalgamation of old and new enums is slowly unraveling from the inside. This meanwhile actually removes the old code. Included a change by Friedemann to improve enum value handling. After the signed/unsigned problem was fixed, there was only one case left where Qt and Clang parser disagreed which could be fixed. The final solution uses overloaded functions to generate all necessary cases with minimal footprint in the executable. Task-number: PYSIDE-1735 Change-Id: I3741ce8621e783a750f3c05241c916008f78f39b Done-with: Friedemann.Kleint@qt.io (+2 squashed commits) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Enum: Enable toInt for QVariant(PyEnum/SbkEnum)Shyamnath Premnadh2023-06-131-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | - For Python/Shiboken types not known to Qt that requires wrapping around a QVariant, we use the PyObjectWrapper type. This patch registers a toInt() QMetaType converter for PyObjectWrapper, which enables automatic conversion to int for a QVariant(PyObjectWrapper) within C++ i.e. QVariant(PyObjectWrapper).toInt() will work - This means that cases like QAbstractItemModel::data() that calls QtPrivate::legacyEnumValueFromModelData(const QVariant &data) would work without explicit conversion from QVariant(PyObjectWrapper) to QVariant(int). But for cases like QMetaProperty::write() explcit handling is still required. - This would also work for cases where the QVariant(PyObjectWrapper) is simply channeled from Python to C++, and from C++ back to Python without performing any operations on it. - Incase, the wrapped object is not a PyEnum/ShibokenEnum object, then toInt() would return a -1. Pick-to: 6.5 Task-number: PYSIDE-1930 Task-number: PYSIDE-2339 Change-Id: I983351f2ff88c79c29399c257e38421116efc7a3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* cppgenerator: get rid of all goto constructsChristian Tismer2023-03-201-1/+2
| | | | | | | | [ChangeLog][shiboken6] The generated code no longer contains `goto`. Change-Id: I3b90abafd8dbe2c19b4fffb7880322451d1ed068 Fixes: PYSIDE-2256 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide6: Implement QOpenGLContext.getProcAddress()Friedemann Kleint2023-03-181-0/+8
| | | | | | | | Declare QFunctionPointer as a PyLong type. Fixes: PYSIDE-971 Change-Id: I617216b169f1e161b2f80eab311f1f979d35f370 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Handle returning primitive types by pointerFriedemann Kleint2023-03-141-1/+1
| | | | | | | | | | | | | | | This manifests in QtDataVisualization's const QBarDataArray *QBarDataProxy::array() const where QBarDataArray is handled as a primitive type. This required adapting a code snippet which was relying on the argument QString* being treated as QString. Task-number: PYSIDE-2206 Change-Id: Ib05f01d7b54e103cf5bb71be86ffa9b5067ca3fb Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix QScatterDataProxy::resetArray() crashFriedemann Kleint2023-03-031-0/+4
| | | | | | | | | | | | | | Pass an allocated array to the function, similar to 00228b7605f63c58ab979362ecaa2bef96c7dc67 for QSurfaceDataProxy. A specific code snippet is used since it needs to operate on a pointer (QList* instead of the custom type for the 2-dimensional types of surface/bar). Task-number: PYSIDE-1438 Task-number: PYSIDE-2206 Pick-to: 6.4 6.2 Change-Id: I20b0f67ace4090e21c13995f94e22e37fb5fa940 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix QBarDataProxy::resetArray() crashFriedemann Kleint2023-03-011-1/+6
| | | | | | | | | | | Pass an allocated array to the functions, similar to 00228b7605f63c58ab979362ecaa2bef96c7dc67 for QSurfaceDataProxy. Task-number: PYSIDE-1438 Task-number: PYSIDE-2206 Pick-to: 6.4 6.2 Change-Id: Ic3dd05b014b04425846889feb5e4df6cbe9d7675 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PySide: Add QRunnable create()Shyamnath Premnadh2023-02-271-0/+17
| | | | | | Fixes: PYSIDE-2234 Change-Id: I3fc1c669c3985a8aad57785927fb4e48e69431a4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add QMetaMethod.fromSignal()Friedemann Kleint2023-02-271-0/+11
| | | | | | Fixes: PYSIDE-2236 Change-Id: Ibf516529799b35982c8c210f657983d511b622a0 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Adapt to Qt 6.5Friedemann Kleint2023-02-091-3/+8
| | | | | | | | | | | | | | | | | | | | - Add new enums - Hide field QMetaMethod::mobj made protected by qtbase/0b701ec0cd86afbf6bb0d0abb361cfb6500c2e1b - Adapt to PDF qtwebengine/6769bd1544c56a514fe35bf16d05614605a49bea - Adapt to qhttpserver/55d10201dc7a47b239825548e053c1fb0de61115, adding a virtual method with rvalue reference to QAbstractHttpServer - create_wheels.py: Adapt to changed location of the metatypes directory in Qt after qtbase/4234ce12dc819b9ca76c8dc4c251f5bd4fe0bc9c. - Adapt error column in QDomDocument test - Fix QMetaObject::invoke() to work after qtbase/fe92b080658f0d8609e2a2a69e5ec2b51dd7bf9d by making the cast of the helper types to Q(Generic)ReturnArgument explicit in the snippets Change-Id: Ifb514878e999ad4c9ef00ff83172626eff112a3d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* nogil: Apply the first necessary fixesChristian Tismer2023-02-081-1/+1
| | | | | | | | | | | | | In a few old patches, we had not updated ob_refcnt to Py_REFCNT. This will now be necessary when we try the nogil branch. Thanks to Jim Kring for providing this initial patch. Task-number: PYSIDE-2221 Change-Id: I2085407e44d93faf4929aac24facef167f09ac52 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* PySide6: Add vertexDataAsPoint2D()/setVertexDataAsPoint2D()Cristian Maureira-Fredes2022-12-201-0/+21
| | | | | | | | | | | | | | vertexDataAsPoint2D returns a pointer (const/non-const for modification) to a series of Point2D within a geometry, but since in Python we don't have access to it, this change replaces that signature for one that returns a list of Point2D elements. For Pythonicity, also add a setter setVertexDataAsPoint2D() to enable modification. Fixes: PYSIDE-1345 Change-Id: I6aba2a097022637c398ad94c17f342f13b4da449 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Clean up include statementsFriedemann Kleint2022-12-191-1/+0
| | | | | | | | | | | - Remove some unused include statements - Replace C-headers (string.h) by the C++ versions (cstring) - Use WIN32_LEAN_AND_MEAN for windows.h Task-number: PYSIDE-2155 Change-Id: I8085e36f336d227218abb6c06cdd52d24c0761f4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* PySide6: Remove include module-local include "core_snippets_p.h" from headersFriedemann Kleint2022-12-161-0/+4
| | | | | | | | Remove it from the extra includes and Include it in source code only. Task-number: PYSIDE-2155 Change-Id: I22930060a05bdac2f4642ddc9418a5371d073316 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Fix CMake UNITY_BUILD (jumbo) builds for modulesFriedemann Kleint2022-12-161-0/+7
| | | | | | | | Use a header-guard like technique to prevent clashes. Task-number: PYSIDE-2155 Change-Id: I942f65ef326ede3e29d7afca301da5a14fe5b0a2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix QObject::sender() for non-C++ slotsFriedemann Kleint2022-12-121-0/+12
| | | | | | | | | | | | | | | For non-C++ slots routed via GlobalReceiverV2, sender() of the receiving QObject returns 0. To fix this, store the sender obtained in GlobalReceiverV2::qt_metacall() temporarily in a special dynamic property of the receiver and inject code checking it into QObject::sender(). This fixes at least the synchronous calls. Fixes: PYSIDE-2144 Fixes: PYSIDE-1295 Change-Id: Ia111162eb1404914ecfb7f19fadb8a1b63ae8b4a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix a crash when deleting QObject instances with connections in threadsFriedemann Kleint2022-12-081-9/+0
| | | | | | | | | | | | | | | | | | | GlobalReceiverV2 connected to the destroyed() signal of the senders to keep track of its lifetime, which caused issues with delayed emission of signals when using threads. To fix this, change GlobalReceiverV2's sender list to use QPointer, which automatically tracks the lifetime of the pointees. Move the deletion of the GlobalReceiverV2 instances into SignalManager, completely, removing the "delete this" pattern used. This allows for removing some hacks for the QObject::receivers() function. Fixes: PYSIDE-2141 Change-Id: I361256f919dab13bfcf20800624b2454308bbc4b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* PySide6: Fix warning in code snippetsFriedemann Kleint2022-11-161-2/+2
| | | | | | | | | | | Remove superfluous reference, fixing warning: PySide6/QtCore/qmetatype_wrapper.cpp: In function ‘void PyTypeObject_PythonToCpp_QMetaType(PyObject*, void*)’: PySide6/QtCore/qmetatype_wrapper.cpp:2764:54: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] Pick-to: 6.4 6.2 Change-Id: I746597bc54613a49c19842d65813de4e510f2fec Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix a deadlock when using QMetaObject.invokeMethod(BlockingQueuedConnection)Friedemann Kleint2022-11-161-0/+6
| | | | | | | | | | | Add allow-thread to the newly introduced functions. Amends aae2f599e8215e49747c9b5dce698d35b913c6c7. Pick-to: 6.4 Fixes: PYSIDE-2121 Task-number: PYSIDE-1898 Change-Id: I2243c2809b275e23ececae0cdd9225db2aaf7225 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Fix QCanBus functions with errorString returnsFriedemann Kleint2022-10-151-0/+30
| | | | | | | Complements f251f658c135e87ab82f58ba162867935caed21a. Change-Id: I6493ff25b8c27ec64101d77145b7aac1cc458555 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add a context manager for QOpenGLVertexArrayObject.BinderFriedemann Kleint2022-10-141-0/+9
| | | | | | | | | | [ChangeLog][PySide6] A context manager for QOpenGLVertexArrayObject.Binder has been added. Pick-to: 6.4 Change-Id: Ic839ed87f17f99c33b88d7fc5a0dd4842a4c7560 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Port from qAsConst() to std::as_const()Friedemann Kleint2022-10-131-1/+1
| | | | | | | | qAsConst() will be deprecated in Qt 6.5. Task-number: QTBUG-99313 Change-Id: Ibc7c2e26b0e52cec905a406ef081e0b99bcce50f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Fix enum to QVariant conversion for the new enumsChristian Tismer2022-10-101-10/+6
| | | | | | | | | | | | | | | | | Use the existing library function to handle new enums correctly. Amends 20eb4f94c637d20461f1fef16942841803ada909, 66e9e9e0674dff4ac0715faf17bf039eeb287df7 . Change-Id: I93b4ffe60d0386cbeb4a7e84782755e77584dc32 Task-number: PYSIDE-1930 Task-number: PYSIDE-1870 Task-number: PYSIDE-1735 Pick-to: 6.3 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Fix warnings about unused parameters in generated codeFriedemann Kleint2022-09-261-0/+1
| | | | | Change-Id: I00fb5202fb136192b74ab598bbab9837b205a62a Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix compiling with OpenGL ESFriedemann Kleint2022-09-201-0/+2
| | | | | | | | | | | | Add some #ifdefs for GL only constants. Amends 39821c9265ca15373725e408b5ede19794b9e419. Task-number: PYSIDE-2013 Fixes: PYSIDE-2060 Change-Id: I8cd5e0d297db18de094ade3acbb61dfa39aa0f4c Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Add QtGui function qt_set_sequence_auto_mnemonic()Friedemann Kleint2022-09-161-0/+4
| | | | | | | | | | | The function is exported, but not declared in Qt; requiring some declarations. Fixes: PYSIDE-2059 Change-Id: I682483553ea1a46b978f57e991cabe4b303607f3 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>