[qt/pyside/pyside-setup]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/pyside/pyside-setup Pushed by mirror-service into branch 'dev'. Changed from 2878444b7125eb427d66c26f5d42004e5881f08f to 393c0494b8cc275064d9c89877db357873bc8ad5 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit b8c220edba0dae85a4894fdff3583b162276e2cd by Shyamnath Premnadh on 30/07/2026 at 07:00.. PySide6/support: Add auto_property_helper.py - Borrowed from the original implementaton in QtBridge - A lot of these helpers are introspection like inspecting python classes, generating getters/setters needed for @auto_properties, finding out the return annotation of property getters, and they done in pure python code. This could also be done in CPython but does not really offer any significant performance advantages. The overall module implementation is in CPython because we refer to a lot of PySide:: namespace internal API. - Loaded lazily by the C++ @auto_properties decorator via PyImport_ImportModule - AST visitor for @auto_properties support - Builds Property + Signal pairs for __init__ attributes, with getters/setters that skip the first (silent) __init__ write - Converts native @property → Property, reusing the user's getter/setter but adding change notification - Wires observers (@watch, @effect, @computed) onto existing Property setters without double-emitting the notify signal - Materialises @computed as read-only Property objects with lazy first-access caching. Dependency changes trigger eager re-evaluation via _recompute. - Maps Python types to Qt meta types Task-number: PYSIDE-3302 Task-number: PYSIDE-3301 Change-Id: I1a25c76a2ae9f1e8cc3cd23269f754cf87b58ad8 Reviewed-by: Ece Cinucen <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]> https://invent.kde.org/qt/pyside/pyside-setup/-/commit/b8c220edba0dae85a4894fdff3583b162276e2cd Git commit 1850b84d3949152b4983d0b1fe86feadfe245462 by Shyamnath Premnadh on 30/07/2026 at 07:00.. libpyside: Add MetaObjectBuilder::reparseType() - Clears the existing QMetaObjectBuilder and re-runs parsePythonType() on the given Python type - Needed by @auto_properties, which adds Signal and Property objects to the class dict after the initial QMetaObject has already been built by initQObjectSubType() Task-number: PYSIDE-3302 Task-number: PYSIDE-3301 Change-Id: I0a1fa540c019cb98243498a101b109eaeaef8ec3 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]> Reviewed-by: Ece Cinucen <[email protected]> https://invent.kde.org/qt/pyside/pyside-setup/-/commit/1850b84d3949152b4983d0b1fe86feadfe245462 Git commit a0f0b430d19fc49222a17339d769f424c0733e4e by Shyamnath Premnadh on 30/07/2026 at 07:00.. libpysideqml: Add @auto_properties decorator - @auto_properties CPython API decorator for auto-generating Qt properties from Python attributes - This now builds PySide6 Property objects with notify signals and rebuilds the QMetaObject via reparseType() - Calls 'augment_class()' Python function which is responsible for inspecting the class, creating PySide properties and triggering the observers on property changes - Export retrieveTypeUserData() from libpyside so libpysideqml can rebuild the QMetaObject Task-number: PYSIDE-3302 Task-number: PYSIDE-3301 Change-Id: I44a6ae185c9fc44c2b8510b460ca05a080927fe7 Reviewed-by: Cristian Maureira-Fredes <[email protected]> https://invent.kde.org/qt/pyside/pyside-setup/-/commit/a0f0b430d19fc49222a17339d769f424c0733e4e Git commit 393c0494b8cc275064d9c89877db357873bc8ad5 by Shyamnath Premnadh on 30/07/2026 at 07:00.. Object list model example: Use @auto_properties and @watch - Use @auto_properties so plain self.name/self.color assignments become PySide.QtCore.Property with notify signals, removing the boilerplate - Add @watch("color") to react to color changes with old/new values - Add a TapHandler to the delegate so clicking a row recolors it, triggering the @watch callback on a real QML write Task-number: PYSIDE-3302 Task-number: PYSIDE-3301 Change-Id: I3ab1760ab9ec00f7f6a6ce8b4e2bf19e25937b8e Reviewed-by: Cristian Maureira-Fredes <[email protected]> Reviewed-by: Ece Cinucen <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]> https://invent.kde.org/qt/pyside/pyside-setup/-/commit/393c0494b8cc275064d9c89877db357873bc8ad5