aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6
Commit message (Collapse)AuthorAgeFilesLines
...
* QtAsyncio: Fix tasks with loop not cancellingAdrian Herrmann2024-04-221-0/+11
| | | | | | | | | | | | | | | If a task was cancelled, then a new future created from this task should be cancelled as well. Otherwise, in some scenarios like a loop inside the task and with bad timing, if the new future is not cancelled, the task would continue running in this loop despite having been cancelled. This bad timing can occur especially if the first future finishes very quickly. Pick-to: 6.7 Fixes: PYSIDE-2644 Task-number: PYSIDE-769 Change-Id: Icfff6e4ad5da565f50e3d89fbf85d1fecbf93650 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Generate Python override code for added virtualsFriedemann Kleint2024-04-222-0/+24
| | | | | | | | | | | | 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-122-1/+11
| | | | | | | | | | | | | | | 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>
* Fix potential undefined behavior in type discovery of class hierarchiesFriedemann Kleint2024-04-124-97/+158
| | | | | | | | | | | | | | | | | | | Use the %B-placeholder for base classes always, changing the generated expressions from: reinterpret_cast<QMouseEvent *>(cptr)->type() == QEvent::MouseMove to reinterpret_cast<QEvent *>(cptr)->type() == QEvent::MouseMove Remove the copyable-attributes since object-type is not copyable anyways. Pick-to: 6.7 Task-number: PYSIDE-2675 Change-Id: I89092b0afd6901e0f8cf5144eb1185ab1d80a0d5 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Multimedia: Adapt to revert of QAudio->QtAudio namespace renamingFriedemann Kleint2024-04-123-9/+4
| | | | | | | | | | | | 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 spurious build errorFriedemann Kleint2024-04-091-1/+1
| | | | | | | | | | Re-add a dependency that was removed. Amends f619b4c45b042c3a656a80b57cb4f154ef15bd1a. Pick-to: 6.7 Task-number: PYSIDE-2649 Change-Id: I8a6d7734fd536438f561edde652ed3e0fe4d828f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix building without QtOpenGLFriedemann Kleint2024-04-0911-33/+95
| | | | | | | | | | Introduce a CMake macro to either add the dependency or an entry to the dropped items for typesystem parsing. Pick-to: 6.7 Fixes: PYSIDE-2649 Change-Id: Idb4e6d530075ab8c08c92e2e26d4de1bfd0459cf Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Add attributes for global inline namespacesFriedemann Kleint2024-04-0857-57/+114
| | | | | | | Pick-to: 6.7 Fixes: PYSIDE-2590 Change-Id: I36ce25bc759cd888f80b797d4f40864c3d2e2a84 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Build system: Clean Qt libraries linked by the modulesFriedemann Kleint2024-04-0436-202/+75
| | | | | | | | | | | | | | Only the bound Qt library needs to be linked, it will bring its dependencies. Add explanatory comment for the exceptions (QtTest, QtSql). Pick-to: 6.7 Task-number: PYSIDE-2649 Change-Id: Ib84d37248578a76400d307bb5d050005110677c3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix broken comparison of QOperatingSystemVersion::OSTypeFriedemann Kleint2024-04-041-1/+0
| | | | | | | | | Remove duplicated definition of the enumeration. Fixes: PYSIDE-2668 Pick-to: 6.7 6.7.0 6.6 6.5 Change-Id: I46279767c48a8c9d4f454748666937328712212d Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix crash browsing https://outlook.comFriedemann Kleint2024-04-041-1/+1
| | | | | | | | | | | | | | | A crash occurs when calling QWebEngineRegisterProtocolHandlerRequest.origin() from a signal handler of QWebEngineRegisterProtocolHandlerRequest(QWebEngineRegisterProtocolHandlerRequest). QWebEngineRegisterProtocolHandlerRequest needs to be a value type for this to work. Fixes: PYSIDE-2663 Pick-to: 6.7 6.7.0 6.6 6.5 Change-Id: Iab8c7cb5822455a35c5759137db20b064cb468cc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@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>
* doc: Add page for pyside6-genpyiAdrian Herrmann2024-03-191-9/+10
| | | | | | | | | Add a documentation page for the pyside6-genpyi tool. This also removes an unused argument and clarifies that the --feature argument is currently not available for PyPy. Change-Id: Ic2fa7e92ae0ccbc30e997db8d7dfad02e5b26732 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add QRhiGraphicsPipeline::StencilOpStateFriedemann Kleint2024-03-192-0/+2
| | | | | | | | Complements 879d804fb462589a206d200bfd0371284be8d394. Task-number: QTBUG-113331 Change-Id: I7b6acca80e2399463960760af315c7fe22aaa304 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* qiopipe: add missing includeSamuli Piippo2024-03-181-0/+1
| | | | | | | | | | Amend ef7bb87eee9bd4469ad858f7ca15f190dbc4aaf9 and fix | git/sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp:17:30: error: invalid use of incomplete type 'class QIODevice' | 17 | class QPipeEndPoint : public QIODevice | | ^~~~~~~~~ Change-Id: Ica2c5da70def52d54ca13225280181d4530c6a2d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QtAsyncio: Improve handling of outside terminationAdrian Herrmann2024-03-151-8/+5
| | | | | | | | | | | | | | Improve how QtAsyncio handles when the QCoreApplication is quit from outside, e.g., when pressing the close button. This will prevent scenarios where asyncio runs the BaseEventLoop destructor after the Qt application had already been shut down, resulting in RuntimeError. In addition, this removes some unnecessary RuntimeError raises related to a closed event loop. Pick-to: 6.6 Task-number: PYSIDE-769 Change-Id: I52553eed271b5fb5790c09751dd58cc2e52fa174 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix crash when adding None to a QLayoutFriedemann Kleint2024-03-142-10/+37
| | | | | | | | | | | | | | | 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>
* Add QIOPipeAdrian Herrmann2024-03-135-1/+187
| | | | | | | | | | | | Add an implementation for a QIODevice that can be used to work with anonymous pipes. It needs to be able to emit the bytesWritten and readyRead signals. This implementation is lifted from the qt5 source tree (qtdeclarative/tests/auto/qmlls/lifecycle) and might be added to Qt in the future, at which point it will be removed from the PySide source tree. Change-Id: Iff1208a366dad747352e7507da0818934c26aa4f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QtAsyncio: Reset loop policy after QtAsyncio.run()Adrian Herrmann2024-03-111-2/+13
| | | | | | | | | | | | | | When running QtAsyncio.run(), the global asyncio event loop policy is set. Currently, the policy setting is kept to QtAsyncio's policy even after QtAsyncio.run() returns, which can lead to unexpected behavior (e.g., if executing asyncio.run() afterwards expecting the default event loop to be used). Reset the event loop policy to the default one after returning from QtAsyncio.run() to mitigate this. Pick-to: 6.6 Task-number: PYSIDE-769 Change-Id: Ifd31c0924317ba09c53ded165c9a5d6f1e2dc808 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix connect() for QObject callablesAdrian Herrmann2024-03-111-7/+16
| | | | | | | | | | | | | | | The addition of the QObject.connect() overload that takes a context resulted in an automatic overload ordering that prevented the right overload from ever being called if the callable was a QObject. Set a manual order to fix this. Pick-to: 6.6 Fixes: PYSIDE-2627 Change-Id: I863f6caaed926b48bc412a29541c1d431ebd50b0 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QtAsyncio: Add handle_sigint argument to run()Adrian Herrmann2024-03-072-3/+7
| | | | | | | | | | | | An argument handle_sigint determines whether QtAsyncio should handle SIGINT (Ctrl+C) and shut down the event loop when it is received. The default is False. This can be set to True if you want QtAsyncio to take care of handling SIGINT instead of your program. Pick-to: 6.6 Task-number: PYSIDE-769 Change-Id: Ie4364025448405f36158a8e997d90ae143961ba8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@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>
* QtAsyncio: Fix missing return value of run()Adrian Herrmann2024-03-071-2/+2
| | | | | | | | | | If QtAsyncio.run() executes asyncio.run(), then its return value should be passed on. Pick-to: 6.6 Task-number: PYSIDE-769 Change-Id: Ic36e3bfd0f15b0697e310af3d9eb4ff6998ffce0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Long live PyObjectHolderFriedemann Kleint2024-03-058-45/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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-053-53/+38
| | | | | | | | | | | | | | 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>
* Documentation: List loadUiType() as a function instead a classFriedemann Kleint2024-03-012-2/+45
| | | | | | | | Move the loadUiType() documentation into a doc snippet. Task-number: PYSIDE-1106 Change-Id: I3f878e054f2e6c3a0570f06a340d87661f27cd11 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* QtGraphs: Remove missing symbols workaroundFriedemann Kleint2024-02-291-4/+0
| | | | | | | | | | Amends bb35f031a9680be6f8cf92ddc8e2cc9f3e309612. Task-number: QTBUG-114091 Task-number: PYSIDE-2497 Change-Id: I4ec8f3e95434f1b17e25ba4facb3d48db298f038 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-285-1/+97
| | | | | | | | | | 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-283-2/+16
| | | | | | | | | | | - 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-2822-23/+292
| | | | | | Task-number: PYSIDE-2497 Change-Id: Id506616710ba06851401cf62511e49967acde71e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Adapt to QtGraphs changed APIFriedemann Kleint2024-02-285-225/+82
| | | | | | | | 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-222-11/+45
| | | | | | | | | | | | | | | | 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>
* PySide6: Enable inheritance from ↵Friedemann Kleint2024-02-221-6/+2
| | | | | | | | | | | | | QAbstractTextureImage/QTextureImageDataGenerator Some constructor functions were removed for apparently historic shiboken2 limitations. Pick-to: 6.6 Fixes: PYSIDE-2610 Change-Id: Ibbfdb1fbd5b919bd823ab2ec79ab359f48b506b5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix hangs when changing the device or suspending in the audiooutput exampleFriedemann Kleint2024-02-211-4/+6
| | | | | | | | Add some allow-thread to QAudioSink. Pick-to: 6.6 6.5 6.2 Change-Id: I64bf3ee38f8c30b2addf20b83495d4960eb5f9db Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: link permission libraries for macOSShyamnath Premnadh2024-02-216-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
* Add QTextureImageData methods returning an enumeration of QOpenGLTextureFriedemann Kleint2024-02-204-0/+7
| | | | | | | | Include the typesystem of QtOpenGL. Task-number: PYSIDE-2610 Change-Id: I710cfff995f2cb8498edbe9e87b41854e09a3bf1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* QTimer: Call C++ function for singleShot timersAdrian Herrmann2024-02-132-60/+70
| | | | | | | | | | | | | 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>
* QtAsyncio: Fix missing attribute on WindowsAdrian Herrmann2024-02-121-2/+2
| | | | | | | | | | | | The deprecated functions get_child_watcher() and set_child_watcher() of QAsyncioEventLoopPolicy have asyncio.AbstractChildWatcher in their signatures, but this type does not exist on Windows. Use typing forward references to fix this. Pick-to: 6.6 Task-number: PYSIDE-769 Change-Id: I950e6294a247959875f39bd5e7706082cd4f3a0e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@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-072-0/+10
| | | | | | | | | | | 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>
* QObject: Add param names to connect/disconnectAdrian Herrmann2024-02-061-11/+10
| | | | | | | | | Add parameter names to the QObject.connect() and QObject.disconnect() overloads for the stub file. Pick-to: 6.6 Change-Id: Ida441288817046dc3eda043df5d64609a8b4f3bb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@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-3011-2/+38
| | | | | | Task-number: PYSIDE-2590 Change-Id: I7269b0f1c1758a9d26579267fc0b423c6a0422ac Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* QtAsyncio: Introduce quit_qapp argumentAdrian Herrmann2024-01-302-7/+15
| | | | | | | | | | | | | | | | A new optional argument quit_qapp can be passed to QtAsyncio.run() to configure whether the QCoreApplication at the core of QtAsyncio should be shut down when asyncio finishes. A special case where one would want to disable this is test suites that want to reuse a single QCoreApplication instance across all unit tests, which would fail if this instance is shut down every time. Pick-to: 6.6 Fixes: PYSIDE-2575 Task-number: PYSIDE-769 Change-Id: I49cd0a50311fb30cc50df9b7f6a6d73fe8c58613 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>