aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6/glue
Commit message (Collapse)AuthorAgeFilesLines
* Fix suppressed exceptions for 0-delay singleShotAdrian Herrmann2024-05-271-0/+2
| | | | | | | | | | | Fix an issue where exceptions were not shown when raised inside a slot called from a zero-delay singleshot timer, causing problems further down the line. Pick-to: 6.7 Fixes: PYSIDE-2745 Change-Id: Iab7696663e5dfa00d99d28ee21ac687fde4cf731 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Python 3.12: Avoid issues with reference counting of immortal Python typesFriedemann Kleint2024-05-161-4/+2
| | | | | | | | | | Use the PY_RETURN_* macros for returning them. Pick-to: 6.7 6.5 Task-number: PYSIDE-2747 Change-Id: I48db8b958925e6ae39ce8ae8fb926429d0e4cd02 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Shiboken: Simplify Python Error MessagesChristian Tismer2024-05-104-17/+9
| | | | | | | | | | | | | | | | | | | The function PyErr_SetString is used quite often, which has no return value. The bracketed sequence PyErr_SetString(...); return nullptr; can in most cases be replaced by a single call to return PyErr_Format(...); To simplify matters, PyErr_Format is now used everywhere. Task-number: PYSIDE-2404 Change-Id: I5988fcd2430be700415d14d7a5cc740211e61d08 Pick-to: 6.7 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* shiboken6: Generate Python override code for added virtualsFriedemann Kleint2024-04-221-0/+14
| | | | | | | | | | | | Introduce "Python override" as a special type of user-added function which will cause a function calling a Python override into the native wrapper. This can then be called from a virtual that has a signature which cannot be handled in Python. Fixes: PYSIDE-2602 Pick-to: 6.7 Change-Id: I5fc44ebe3f585078e87d3230d5e6f4faa67a4ee1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Release dialogs when using QDialog.exec()Friedemann Kleint2024-04-121-0/+8
| | | | | | | | | | | | | | | In the typical pattern ported from C++ dialog = QDialog(mainWin) dialog.exec() one would expected the dialog to be deleted. However, due to the constructor heuristics creating a parent-child relationship, the dialog leaks. Add a modification to remove the relationship in case exec() is called. Change-Id: Ibc6f8c150cbd80a4085af4a5b713ee7c2c62abf3 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Multimedia: Adapt to revert of QAudio->QtAudio namespace renamingFriedemann Kleint2024-04-121-1/+2
| | | | | | | | | | | | Partially revert 4d761eaaf852f8d82925e111150f25c0dd5f3e83. Adapt to qtmultimedia/7fcea568c9c64f3bcebda21f0df02aa0107dfd0c, reverting qtmultimedia/edaec2bf714c98d65f12c8ed9a2ffbd1603635a7. Task-number: QTBUG-123997 Pick-to: 6.7 Change-Id: Ibd0ad737293f4b9107909f37554c03f64bce5d1e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix warning about invalid printf()-formatFriedemann Kleint2024-03-201-1/+1
| | | | | | | | | | | | | | Change d8910df3ccea2897f5e228058f17176cb1fe4093 moved the qWarning() out of the function were %FUNCTION_NAME is defined, causing: format '%F' expects a matching 'double' argument [-Wformat=] Replace by function name. Amends d8910df3ccea2897f5e228058f17176cb1fe4093. Change-Id: Ib25cbb20c6ffe9c225cefa1a22fab8b37406fb59 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Fix crash when adding None to a QLayoutFriedemann Kleint2024-03-141-8/+33
| | | | | | | | | | | | | | | This caused a crash in PySide's addLayoutOwnership() code snippet, whereas Qt errors out with a warning. Guard all input parameters of the layout snippets with a check. Rename the snippet "addownership-0" which is used for the itemAt() functions "addownership-item-at" for clarity and add a check there. Pick-to: 6.6 6.5 Fixes: PYSIDE-2638 Change-Id: Ia89532059e7a27cc38d790a0d17e24e19d68887f Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* LazyInit: Move the get arguments into a static structureChristian Tismer2024-03-131-3/+4
| | | | | | | | | | | | | | | | | | | | The central get function is used very often. Since the string constants are repeated many times and there seems to be no constant folding, it is better to re-arrange the structure a bit to avoid code bloat. By moving the get arguments into a struct, we avoid all repetitions of string constants and minimize the runtime overhead. The structure is now fully backward compatible and works with unchanged scriptableapplication. Task-number: PYSIDE-2404 Change-Id: Ie7c788ef75cc3d58366532c5f14ab013ebd792b5 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* LazyInit: Implement Lazy Initialization by Delayed Module EntriesChristian Tismer2024-03-131-0/+2
| | | | | | | | | | | | | | | | | | | | Lazy init is done by module entries which are delayed. Although visible in the module, the classes are only created when actually accessed by getattr. Internally, the access to the global Init_xxx functions is redirected to a Shiboken::Module::get function which resolves the classes if not already present in the global type array. PYSIDE6_OPTION_LAZY 0 - no lazy loading 1 - lazy load all known modules 2 - lazy load all modules Task-number: PYSIDE-2404 Change-Id: I98c01856e293732c166662050d0fbc6f6ec9082b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide6: fix systemLocale goes out of scopeShyamnath Premnadh2024-03-131-1/+1
| | | | | | | | | | - remove the Shiboken:AudoDecRef wrapper for the locale Pick-to: 6.6 Fixes: PYSIDE-2639 Task-number: PYSIDE-2485 Change-Id: I4b56544ae23dfd762e4d711681bceffca05af527 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix a crash when using struct.unpack() on a QByteArray with Limited APIFriedemann Kleint2024-03-071-2/+2
| | | | | | | | | | | Unconditionally setting view->strides on the Py_Buffer causes a crash. Update the code in our copy of PyBuffer_FillInfo() from CPython. Fixes: PYSIDE-2628 Pick-to: 6.6 6.5 Change-Id: I6f244090a65442003cecfce70c6f8164b41ba99a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Long live PyObjectHolderFriedemann Kleint2024-03-054-45/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a class PyObjectHolder for passing around Python objects in C++. It is mainly intended for callables. There are some cases in which callables are invoked several times or not at all. The usual construct of passing a lambda which decrefs the callable after the invocation only works in the case when there is exactly one single shot invocation. Otherwise, the callable leaks if there is no invocation or a crash occurs on multiple invocation due to repeated decref. To fix this, introduce a class PyObjectHolder which holds a PyObject with a reference and implements move/copy semantics as well as destruction with the GIL held. It serves as a base class for functors which implement a call operator for the invocation. For the singleshot case, release() can be called after the invocation as not to unnecessarily delay the release. Port over the known cases where multiple invocation is documented to occur to use it. Change-Id: I2f4c7d497d4be8e48946f77a5a40dc9712dc05dd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Enum: Move special Flag patch into a snippetChristian Tismer2024-03-051-0/+36
| | | | | | | | | | | | | | A patch that corrects Qt.Modifier and Qt.KeyboardModifier causes early loading of QtCore.Qt . Move the patch into snippets, running it only when needed. Task-number: PYSIDE-1735 Task-number: PYSIDE-2404 Change-Id: I26cc7aa767d5474bf54a22fbad24fae62daafa5f Pick-to: 6.6 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix error about deleted C++ object when calling QWidget.style() in embedded ↵Friedemann Kleint2024-03-011-5/+10
| | | | | | | | | | | | application Do not create a parent relationship if the application was not created in Python. Fixes: PYSIDE-2605 Change-Id: I55e96b2f7120d557b1c1c62499843c053bf53945 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add public native interface classesFriedemann Kleint2024-02-281-0/+33
| | | | | | | | | | Some native interface classes were included in public headers. Task-number: PYSIDE-2497 Task-number: PYSIDE-1568 Change-Id: I2e61ed8cd1a8dfc7d5d04d2730d456ec800eb446 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Adapt to renaming of namespace QAudio->QtAudioFriedemann Kleint2024-02-281-0/+5
| | | | | | | | | | | - Adapt the examples. - Create an alias into the module. - Add a hack to the signal manager for signals which maintain the old string-based signature. Task-number: PYSIDE-2497 Change-Id: I9db5e59851a2cb9161fdcecf87e78d980eda2045 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Adapt to Qt 6.7Friedemann Kleint2024-02-281-0/+62
| | | | | | Task-number: PYSIDE-2497 Change-Id: Id506616710ba06851401cf62511e49967acde71e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Adapt to QtGraphs changed APIFriedemann Kleint2024-02-281-1/+1
| | | | | | | | Task-number: QTBUG-114091 Task-number: PYSIDE-2497 Change-Id: I62b6c50ea4cafd240ef75b2814849821f4eb2c3b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix conversion of QVariant<->QMatrix<n>x<m>Friedemann Kleint2024-02-221-11/+42
| | | | | | | | | | | | | | | | QMatrix<n>x<m> is a template specialization of QGenericMatrix<n,m,float> which the type name of the QVariant contains. To find the proper Shiboken converter for this, change the name back. As a drive-by, fix @snippet conversion-sbkobject to return a PyObjectWrapper() with warning in cases where the QMetaType is valid but no converter can be found. Fixes: PYSIDE-2599 Pick-to: 6.6 Change-Id: I4f41dcbaa394fcc1732536c0b7a6569f694f3c45 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: link permission libraries for macOSShyamnath Premnadh2024-02-212-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | - The macOS permission backends are packaged as static libraries which are linked directly to the C++ application during the build step. Since this is not possible to be done dynamically when pyside6-deploy is run, we link the QtCore PySide6 binary (QtCore.abi3.so) to the permission static binaries. This also makes sense since the Qt permission API is a part of QtCore. ~Note~: The idea of checking and requesting permissions for macOS only exists when the Python application is packaged as a macOS application bundle. When Python is run in interpreter mode, the Qt permission API does not work. - The QtLocation Permission plugin cannot be statically linked to QtCore PySide6 binary because it required QtCore Qt framework bundle to be loaded prior to calling Q_IMPORT_PLUGIN. Hence, we statically link QDarwinLocationPermissionPlugin to QtPositioning because QtPositioning has the classes that requires permissions. Pick-to: 6.6 6.5 Task-number: PYSIDE-2468 Change-Id: I2ff64ed8f01f8318755a30eb4a66f7f968bd2d04 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QTimer: Call C++ function for singleShot timersAdrian Herrmann2024-02-131-57/+67
| | | | | | | | | | | | | The current implementation of singleshot timers is very old and bypasses the C++ function. Instead, a timer object is manually created and started. This incurs a performance penalty, as this bypasses the optimized code path for 0 timers that eschews a timer object in favor of directly calling QMetaObject::invokeMethod. This is now fixed, and for 0 timers, the C++ function is called directly. Change-Id: Idfed06d60eb34355242818ac2df46f75dd27353c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix the polymorphic names in styleOptionTypeChristian Tismer2024-02-121-22/+22
| | | | | | | | | | | | | There is a bug that actually creates new types instead of using the existing ones. Amends de5f162a70dda9d74cfce2337a9f90ddcb4ca75f Change-Id: I9516574d04465b206777e86f46df593ea53fcc43 Pick-to: 6.6 Task-number: PYSIDE-2404 Fixes: PYSIDE-1909 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QTimer: Fix singleShot overload with contextAdrian Herrmann2024-02-071-23/+25
| | | | | | | | | | | The singleShot overload with context had a problem where if the functor was a slot of a QObject, it would not have a sender when it should. To fix this, the newly added QObject.connect() overload with context is used. Pick-to: 6.6 Change-Id: I654c09efb0d1b37ea0c014e9f17cd5e1913d1a96 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* QObject: Add connect() overload with context argAdrian Herrmann2024-02-071-0/+6
| | | | | | | | | | | On C++, there is an overload of QObject::connect() that allows passing a context object. This creates a connection in the context object's event loop instead of that of the caller. This implements said overload in Python. Pick-to: 6.6 Change-Id: Ia6a098a04470741efd450818c31aa5bffb1bd9f8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Fix callable invocationsFriedemann Kleint2024-02-014-20/+22
| | | | | | | | | | | | | | | | | | | | | | | - Always make sure to decref the result by using AutoDecref. - Check whether the callback passed to QAbstractOAuth::setModifyParametersFunction() really returns a dict. - Fix bool return of the callback passed to QWebEngineCookieStore::setCookieFilter(). - Some code cosmetics Amends f56329c995d4a708d4169ef52f819b38de1810b0, 535a781d534f4c9d102342a9813528e48c576ffd, 96715550f3d980dc5554c67a3660e94b6a9a3e76, cd394249fc77063a2bd6ba7a7633fdbc10621475, 5fac301e8e5a8d15eaff91d78b5deeeb2204c7b4, Task-number: PYSIDE-1612 Task-number: PYSIDE-1815 Task-number: PYSIDE-1912 Task-number: PYSIDE-2234 Pick-to: 6.6 6.5 Change-Id: I180ed4dfa63fe8ac06a898492244a85ed926c2d6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* LazyInit: Make imports computable from offset constantsChristian Tismer2024-01-312-8/+8
| | | | | | | | | | | | | | | | | | | | | The function cpythonTypeNameExt uses getTypeIndexVariableName to compute the offset to a class variable. For LazyInit we want to change this, creating an expression that can compute the referenced types on demand when no value is found at the offset. These types are hidden in the offset expression. By no longer using "toUpper" here, we can easily compute the needed imports from the offset constant name. We will keep both versions until PySide7. [ChangeLog][PySide6] Type index constants are no longer in uppercase. Uppercase is retained until deprecation in PySide7. Task-number: PYSIDE-2404 Change-Id: I422ead0540a7bdcb4c7ac9905c8e6ab71b5b0634 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Adapt to glue code to namespaced Qt buildsFriedemann Kleint2024-01-301-0/+2
| | | | | | Task-number: PYSIDE-2590 Change-Id: I7269b0f1c1758a9d26579267fc0b423c6a0422ac Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PySide6: Use PyType_GetSlot() instead of accessing PyTypeObject's slots in ↵Friedemann Kleint2024-01-161-6/+12
| | | | | | | | | | | | | snippets PyTypeObject is not exposed in the stable API; accessor functions should be used to retrieve the slots. Task-number: PYSIDE-560 Change-Id: Ic6573f16929b9e88fcff0c37134ba7c08d072eb9 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PySide6: Add QQmlEgine.singletonInstance()Friedemann Kleint2024-01-091-0/+26
| | | | | | | | | [ChangeLog][PySide6] QQmlEgine.singletonInstance() has been added. Pick-to: 6.6 Change-Id: Ib1b48df49ca8a183dba415a04f414903f58e435c Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add QLatin1StringFriedemann Kleint2024-01-081-0/+22
| | | | | | | | | It is needed For the QIcon::ThemeIcon fields. Task-number: PYSIDE-2497 Task-number: PYSIDE-2537 Change-Id: I11d94c150dfa614797038e56cd37128bf3e88cff Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix qCompress/qUncompress() taking a PyBuffer/len argumentsFriedemann Kleint2024-01-051-0/+12
| | | | | | | | | | | | | | | | | | | | | | | The overloads taking a uchar * data argument were generated using the converter for uchar, causing warnings: qbytearray.h:639: There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive type 'const uchar *' of argument 1 in function 'qCompress(const uchar * data, qsizetype nbytes, int compressionLevel)'. qbytearray.h:640: There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive type 'const uchar *' of argument 1 in function 'qUncompress(const uchar * data, qsizetype nbytes)'. This was never noticed since we have a conversion from PyBuffer to QByteArray and the overload decisor checks only whether the minimum argument is satifisfied, so, so qCompress(data,len,level) it called qCompress(bytearry,len), passing the length as level. To fix this, modify the argument to PyBuffer as is done for QImage and give it overload-number 0, so that PyBuffer is checked first without conversion to QByteArray. Add a test for both cases. Amends ae51319fa8a7c02642f5d35f5d613c22e9ce8ecb. Task-number: PYSIDE-838 Change-Id: Ib9b22a24257fcf93ce3458d8514cdda2e4843f64 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add QtQuickTestFriedemann Kleint2023-12-241-0/+50
| | | | | | | | | | [ChangeLog][PySide6] QtQuickTest has been added. Fixes: PYSIDE-2543 Change-Id: I949a0e50a2e522589863ade1e2b2335be580a0d7 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Add QQuaternion getAxisAndAngle()/getEulerAngles()Friedemann Kleint2023-12-211-0/+18
| | | | | | | | Address a fixme-comment in the typesystem file. Change-Id: I9242a04cab75229480efa81a98dc0bbef9bb4e61 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Implement QLockFile::getLockInfo()Friedemann Kleint2023-12-201-0/+9
| | | | | | Change-Id: Idd19498383f3a785a6a393ff8e9d07b6d45bb14e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Remove hash-specializations for QPoint, QRect, QSizeFriedemann Kleint2023-12-191-25/+0
| | | | | | | | | | | | For these classes, the qHash() function should be found by the code model after 9c37876d6f649b3c9bd1411d3c7ffe620786f1a8. This leaves QLine, for which no qHash() exists in Qt. Task-number: PYSIDE-1906 Change-Id: If6bd7ebbf015d9b140684bf3b1f4b0a141d3879b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Modernize qHash functions preparing introduction of Qt's comparison helpersFriedemann Kleint2023-12-191-2/+1
| | | | | | | | | Use qHashMulti, noexcept and make them inline friends. As a drive-by, also make comparison for Clang structures noexcept. Pick-to: 6.6 Change-Id: Ibdcbf3bde90af0fc419bd1640d3f45602f772f9a Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix up error handling of the uic process for QUiLoader::load()Friedemann Kleint2023-12-081-12/+20
| | | | | | | | Fix the sequence of the checks and check for waitForStarted() as well. Change-Id: I46c4ac203886de7d7997b8847c82897574c95bb6 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* PySide6: Fix build when defining QT_NO_CAST_FROM_ASCII for the modulesFriedemann Kleint2023-12-082-4/+4
| | | | | | | | This unearthes a few conversion errors. Pick-to: 6.6 Change-Id: Iad09bb08612938bd6890f3d1aa444d78e8fb8618 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* 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>