| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Guard the deletion tracker listening on QObject::destroyed() using GIL.
Amends 33bd61d13d8d9e3794b6049891be62f3351313d9.
Fixes: PYSIDE-3072
Task-number: PYSIDE-2810
Task-number: PYSIDE-2221
Pick-to: 6.9 6.8
Change-Id: Ia085fa551903dd39c7a9624f6995d8720e9f7fb0
Reviewed-by: Ece Cinucen <ece.cinucen@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
|
|
|
|
|
|
|
|
| |
Replace the Qt forwarding headers by the .h files. This brings down
the dependency list by approx 6%.
Pick-to: 6.9
Change-Id: Iae7640ccbdf6a8be68137922d4191522d914d790
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.9
Task-number: PYSIDE-2916
Change-Id: I6e72977bfcf95c3c28cc160e07febb84220fa505
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extract the error handling code which existed duplicated in
GlobalReceiverV2::qt_metacall() and
SignalManagerPrivate::handleMetaCallError() as a static helper of
SignalManager and call that from the DynamicSlot functions.
Amends 33bd61d13d8d9e3794b6049891be62f3351313d9.
Pick-to: 6.8 6.8.0
Task-number: PYSIDE-2810
Fixes: PYSIDE-2900
Change-Id: Ife9f156e6752dde7002218d36d369ba68ad595b0
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Callables wrapping C-function and their objects (as returned by
"qobject.deleteLater()") may be temporary objects like methods.
For the connection cache key, use self and the actual C-function
as so that a disconnect succeeds.
This did not show in the old design since the disconnect code
did expensive checks to retrieve the slot index of the function
and used the index code path.
Amends 33bd61d13d8d9e3794b6049891be62f3351313d9.
Pick-to: 6.8
Task-number: PYSIDE-2810
Task-number: PYSIDE-2221
Change-Id: Ic33af0d5da60589df16ca35c17824da592910a4d
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
|
|
|
|
|
|
|
| |
Add a helper function checking on a weak reference.
Task-number: PYSIDE-2751
Change-Id: I4f2d505636a24df083b0d2f4d3d312fcc44d125e
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a QMetaMethod
The code previously used a instances of class GlobalReceiverV2 inheriting QObject in a hash in
SignalManager per slot tracking the list of senders to be able to use standard signal/slot
connections in Qt. This was a complicated data structure and had issues with cleanups.
This has been replaced by using an invoker object based on QtPrivate::QSlotObjectBase which
can be passed to
QObjectPrivate::connect(const QObject *, int signal, QtPrivate::QSlotObjectBase *, ...).
The connections (identified by ConnectionKey) are now stored in a hash with QMetaObject::Connection
as value, which can be used to disconnect using QObject::disconnect(QMetaObject::Connection).
Deletion tracking is done by using signal QObject::destroyed(QObject*) which requires
adapting some tests checking on the connection count and weak ref notification on receivers
as was the case before.
[ChangeLog][PySide6] Signal connections for Python callables not targeting a QMetaMethod
has be reimplemented to simplify code and prepare for removal of the GIL.
Task-number: PYSIDE-2810
Task-number: PYSIDE-2221
Change-Id: Ib55e73d4d7bfe6d7a8b7adc3ce3734eac5789bea
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
DynamicSlotDataV2 provided the callable for the slot invocation and
contained switches depending on whether the callable was a method or a
plain callable.
Turn it into a virtual base class providing a call()
method and a factory to cleanly separate the code paths for method and
plain callables. Introduce an enumeration of slot types for clarity.
Expose it in globalreceiverv2.h so that it can be used
for PySideQSlotObject.
Task-number: PYSIDE-2810
Change-Id: I4bdfb58a430c39aba2cc531c28129f71ebeb498c
Reviewed-by: Christian Tismer <tismer@stackless.com>
|