aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6
Commit message (Collapse)AuthorAgeFilesLines
* Fix crash checking base type for QObject* when checking QGraphicsObject ↵HEADdevFriedemann Kleint5 days1-3/+5
| | | | | | | | | | | | | hierarchies Amends 6f996ff3439e69b3938e617135b266974802d5b1. Fixes: PYSIDE-3158 Task-number: PYSIDE-3115 Task-number: PYSIDE-3069 Pick-to: 6.9 6.9.2 Change-Id: I66bbc9d79d850c108411f9dcbe7e3090ad15b0b3 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Shiboken6Tools: Use shiboken6-generator from CMake easilyShyamnath Premnadh5 days1-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Inspecting the `samplebinding` example, much of the code to effectively call `shiboken6-generator` can be moved into CMake function `shiboken_generator_create_binding` and shipped with `Shiboken6Tools` cmake package enabling users to easily use `shiboken6-generator` in their CMake projects. This also helps to get rid of the `pyside_config.py` script which is used to query certain required paths. - This `Shiboken6Tools` CMake package is packaged with the `shiboken6-generator` wheel and can be used easily in CMake projects by using the `find_package(Shiboken6Tools)` command by adding the Python site-packages directory to the CMake module path. - The `shiboken6-generator` path installed into the Python site-packages is different from the one used by the consecutive setup.py build/ super project build. Hence, we create a new export set `Shiboken6ToolsWheelTargets` just for the wheel package. When copied into `package_for_wheels` this export set is used. - Add a special condition to the `Shiboken6ToolsConfig.cmake` file to skip the dependency checking when building PySide which would otherwise lead to a circular dependency. Task-number: PYSIDE-3138 Change-Id: I199b8d9fe743adee4e3b12e8a7e1ad01f3c277de Reviewed-by: Alexandru Croitor <[email protected]>
* Add QRangeModelFriedemann Kleint6 days6-0/+343
| | | | | | Task-number: PYSIDE-3011 Change-Id: I64048d9263c529ccb41ee70eb6766f5e02507011 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Adapt to 6.10Friedemann Kleint6 days11-2/+59
| | | | | | Task-number: PYSIDE-3011 Change-Id: I0c09b222e68ee0563dc4b0bf07f798f800a63371 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Expose QNativeInterface::QWaylandApplicationFriedemann Kleint8 days6-2/+42
| | | | | | | | | | [ChangeLog][PySide6] Bindings for QNativeInterface.QWaylandApplication have been added. Initial-patch-by: Mark Harfouche <[email protected]> Fixes: PYSIDE-2787 Change-Id: I3484fbd37cb4cd0ae70fde770eb9195a78f4b061 Reviewed-by: Shyamnath Premnadh <[email protected]>
* PySidePlugin: Fix non-limited API build on windowsShyamnath Premnadh12 days1-1/+4
| | | | | | | | | | | - Amends eddb03bdc152a95ef7c161c0270e7da9001b327c to add a condition for windows. - For Windows builds, the default is the limited API build for Shiboken as seen in ShibokenSetup.cmake and ShibokenHelpers.cmake. Change-Id: I5c3823166969e3e7fc6306a2a32c5d82d2e9139d Reviewed-by: Cristian Maureira-Fredes <[email protected]> Reviewed-by: Ece Cinucen <[email protected]>
* Fix reference count tests (1) to pass in Python 3.14 (simple cases)Friedemann Kleint2025-08-0513-74/+80
| | | | | | | | | | | | As of 3.14, the interpreter will sometimes just borrow references and newly created objects may have different initial reference counts. Fix the test cases where a base ref count of a new object is compared against. Pick-to: 6.9 6.8 Task-number: PYSIDE-3147 Change-Id: I698be2309362fc65f6727971a5cec4fc4f40cf2e Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Lazy Load: Remove exclusion for testbindingFriedemann Kleint2025-08-051-2/+2
| | | | | | | | | Use .value to compare against the Enum value in a hidden namespace. Task-number: PYSIDE-2404 Change-Id: I2a7bda2aeac6aa69b3d38d2e377ac9b1127e1fee Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Doc: Design Studio Drumpad TutorialShyamnath Premnadh2025-08-041-2/+18
| | | | | | | | | - Amends efd8944b263a099e901ab588bc2d9357554f6ead to add a section on preliminary setup for running/deploying the application by running `pyside6-project` command. Change-Id: I2a0c96ede0e7100f54f7081b4dc7c04b7fc49e3c Reviewed-by: Friedemann Kleint <[email protected]>
* Deployment: Use relative pathsShyamnath Premnadh2025-08-041-2/+2
| | | | | | | | | | | - For input_file and project_dir, use relative paths instead of absolute paths so that it can be checked in to version control. - Fix tests accordingly. Fixes: PYSIDE-3146 Pick-to: 6.9 6.8 Change-Id: I4260a4844edc71964d5c2ab907915e5fbbcf4e41 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Move native interfaces out of the QtGui type system fileFriedemann Kleint2025-08-016-27/+69
| | | | | | | | | | | | It is bound to grow as more interfaces with more modifications are added. Rename the code snippet used for int conversion. Also add a test for X11. Task-number: PYSIDE-2787 Change-Id: Ia5f5cf7f0fbb551c38367d80e9fdb4b004db9085 Reviewed-by: Shyamnath Premnadh <[email protected]>
* doc: Add documentation about type hintsEce Cinucen2025-08-012-0/+178
| | | | | | Pick-to: 6.9 Change-Id: I030593a9feed8a2f1eaa4c7f3e22f15ef9ccdb7e Reviewed-by: Shyamnath Premnadh <[email protected]>
* libpyside: Fix corruption connecting several signals to one non-QObject receiverFriedemann Kleint2025-07-313-41/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The deletion of the weak ref in ~TrackingMethodDynamicSlot() did not reliably stop the notification from being triggered, causing corruption later on since the address of the dynamic slot was used as user data. Use the Python receiver object as user data instead (which is only used for map look up) to delete the connection to protect against multiple invocation. Remove the deletion of the weakref since it is removed in the notification. Remove class TrackingMethodDynamicSlot as it does not really have any functionality any more. The comment about releasing the weakref in case DynamicSlot outlives Python is apparently not an issue since otherwise the deletion of the function in ~MethodDynamicSlot() would have caused issues. Amends 33bd61d13d8d9e3794b6049891be62f3351313d9. Pick-to: 6.9 6.8 Fixes: PYSIDE-3148 Task-number: PYSIDE-2810 Change-Id: Idc07d0774afaf99df93185c90e975291a42ffeaf Reviewed-by: Shyamnath Premnadh <[email protected]>
* Documentation: Update libclangShyamnath Premnadh2025-07-314-8/+10
| | | | | | | | - The current version mentioned in the documentation is outdated. - Updated to the latest version available. Change-Id: Ia25d8fd648ab437833ef87263d19badbd02b1885 Reviewed-by: Friedemann Kleint <[email protected]>
* PySidePlugin: Use limited API correctlyShyamnath Premnadh2025-07-311-1/+1
| | | | | | | | | | | | | - PYTHON_LIMITED_API variable is specific to Shiboken build and is not available during the configuration of PySidePlugin because it is not a global variable. Instead, FORCE_LIMITED_API should be used which is the correct variable passed from setup.py to CMake. - The issue was specifically noted in Windows where PySidePlugin tries to link to the wrong Python library even when PYTHON_LIMITED_API is passed. Change-Id: I1d272d27053cdbc1c754b7e0fb6cfe49d37ff4ce Reviewed-by: Friedemann Kleint <[email protected]>
* QUiLoader: Move Q_IMPORT_PLUGIN(PyCustomWidgets) to file scopeFriedemann Kleint2025-07-302-2/+3
| | | | | | | | Adapt to qtbase/82eb0fc09e048b6074a9205e371a8c17576b421a. Task-number: PYSIDE-3011 Change-Id: Id6aeab28948c54572069bca676c944327282a7ba Reviewed-by: Shyamnath Premnadh <[email protected]>
* Add Qt Design Studio tutorialJaime Resano2025-07-295-0/+218
| | | | | | | | | | | | Add a new Qt Design Studio tutorial to the documentation. The "Drumpad" example is added to the examples/tutorials folder, with both initial and final projects. The required Sounds are in a directory at the same level as both tutorials in order to reduce space. Change-Id: I59fdd662775ae48ee04e663d4aa5aa8cb333fcd5 Reviewed-by: Shyamnath Premnadh <[email protected]>
* type hints: Fix some return typesEce Cinucen2025-07-291-6/+0
| | | | | | | | | | | | | | Use Optional[...] to reflect that these functions may return None for functions QGuiApplication.screenAt, QGuiApplication.modalWindow and QCompleter.popup mapping.py file had already a list for functions missing optional return, the function names added to the this list and removed from typesystem. Amends da0f2625bf368e7d8ebd643cc303c8b7e6a6805d. Task-number: PYSIDE-3139 Pick-to: 6.8 6.9 Change-Id: Id6331862d7b0894a3e97b95e2e825533eca1896f Reviewed-by: Cristian Maureira-Fredes <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
* Fix crash of test qpaintengine_test.py when using Python 3.14Friedemann Kleint2025-07-281-2/+2
| | | | | | | | | | | | | Shiboken::AutoDecRef must not be used for return values, it causes a missing reference. Amends e3631c3322d28447068de3a874055ff937b237c4. Pick-to: 6.9 6.8 Task-number: PYSIDE-3147 Task-number: PYSIDE-3002 Change-Id: Ib011b35562947d45b997e35ca45a2f55d16348b3 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Enumerations: Enable the forgiveness feature ENOPT_NO_ZERODEFAULT for 3.14Friedemann Kleint2025-07-281-3/+26
| | | | | | | | | | | Adapt the op codes for detecting a parameterless __init__() call in enum code to 3.14. Pick-to: 6.9 6.8 Task-number: PYSIDE-3147 Task-number: PYSIDE-1735 Change-Id: I7dcaaae82b4c136db5dbd9ef36519783b73c15ce Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Tests: Fix remaining flake 8 warningsFriedemann Kleint2025-07-2821-46/+48
| | | | | Change-Id: I3eae10ca459eae88632357ae5334c93fa2d0254f Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Tests: Fix flake 8 warning F841 local variable is assigned to but never usedFriedemann Kleint2025-07-2834-37/+38
| | | | | | Pick-to: 6.9 6.8 Change-Id: Idff689832a68fadf6c4492032df3ed94b9343389 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Tests: Fix flake 8 warning E402 module level import not at top of fileFriedemann Kleint2025-07-2827-82/+83
| | | | | | Pick-to: 6.9 6.8 Change-Id: Ibcd0ee3190638ac224c6dd770de0dffe93ed9dda Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Deployment: sort list values before filling values into pysidedeploy.specYoung Lee2025-07-251-1/+2
| | | | | | Task-number: PYSIDE-3146 Change-Id: I2c23e8ae3302bafc31a1a65013e2f3ed342d22ed Reviewed-by: Friedemann Kleint <[email protected]>
* Fix leaking QStandardItem instances returned from QStandardItemModel functionsFriedemann Kleint2025-07-241-26/+0
| | | | | | | | | No longer add a parent-child relationship in functions that return QStandardItem (non-owning wrappers). Task-number: PYSIDE-3143 Change-Id: I7d48d9fbd149010fde0f42347af5b47c84855657 Reviewed-by: Shyamnath Premnadh <[email protected]>
* PySide6: Suppress warning when doing first signal connection from a threadFriedemann Kleint2025-07-241-1/+17
| | | | | | | | | | Explicitly move the tracker helper object to the thread. Fixes: PYSIDE-3137 Task-number: PYSIDE-2221 Task-number: PYSIDE-2810 Change-Id: I308467ca9ef8acab35d30578ca694136855c2d1a Reviewed-by: Shyamnath Premnadh <[email protected]>
* Add developer documentation on thread sanitizerFriedemann Kleint2025-07-241-0/+34
| | | | | | | | | Complements 7b8592161d6c4d63c511a352fdf25d49ab0a1906. Task-number: PYSIDE-2221 Change-Id: Iceef71b8cf9b85f9f41c91e34638184848d4f653 Reviewed-by: Shyamnath Premnadh <[email protected]> Reviewed-by: Ece Cinucen <[email protected]>
* Brush up developer documentation (extras.rst)Friedemann Kleint2025-07-241-4/+7
| | | | | | | Pick-to: 6.9 Change-Id: I5199c2780b108aa1dacb7a3f352e3e7a2f9220b3 Reviewed-by: Shyamnath Premnadh <[email protected]> Reviewed-by: Ece Cinucen <[email protected]>
* type hints: Fix return types of QGuiApplication.screenAt and modalWindowEce Cinucen2025-07-181-0/+6
| | | | | | | | | Use Optional[...] to reflect that these functions may return None. Fixes: PYSIDE-3139 Pick-to: 6.8 6.9 Change-Id: Iea6da03b7f39ce0090804c58f0906863266fc87a Reviewed-by: Shyamnath Premnadh <[email protected]>
* Potential fix for stabilizing QtRemoteObjects cpp_interop testFriedemann Kleint2025-07-112-5/+14
| | | | | | | | | | | | | | The test sometimes fails, reporting an empty URL. Change the harness to use stdout for printing the URL so that the flushing can be controlled. Amends 19abd816e73bebdd489408d0a3b7676822bff39c. Pick-to: 6.9 Task-number: PYSIDE-862 Change-Id: Ie85ad5a4eb092f91add01905b711ff1db86e3a8f Reviewed-by: Shyamnath Premnadh <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Fix QtMultimedia::audio_test to runFriedemann Kleint2025-07-111-1/+2
| | | | | | | | QMediaDevices needs allow-threads for the query functions. Pick-to: 6.9 6.8 Change-Id: Ieff9e9191491e6294232a0509d675ffa5a93d386 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Build: Fix super project buildShyamnath Premnadh2025-07-092-10/+14
| | | | | | | | | | | - af9721d92e393529016f8eccf4a23cc95da8b021 caused the super project build to break because now cmake detects two exports sets for each target. For super project builds, when configuring cmake, we restrict it to one target considering the super project build is useful only to configure the IDE. Change-Id: Ie37871369622034b5ca07f74b38c064982b12a90 Reviewed-by: Friedemann Kleint <[email protected]>
* PySide6: Make qobjectNextAddr thread_localFriedemann Kleint2025-07-091-1/+4
| | | | | | Task-number: PYSIDE-2221 Change-Id: I72e4a5fa239653bc69da190b5b506119889d5a8f Reviewed-by: Shyamnath Premnadh <[email protected]>
* Brush up pyside_reload_test.pyFriedemann Kleint2025-07-093-24/+23
| | | | | | | | | | Move it from QtGui to QtWidgets, completely. Use pathlib. Use a temporary directory to avoid clobbering the source directory. Pick-to: 6.9 Change-Id: Id73b87ea81a1b334e2506cb2e32b49e70a5b007d Reviewed-by: Shyamnath Premnadh <[email protected]>
* qmainwindow_test.py: Remove test testCreateToolbar()Friedemann Kleint2025-07-091-7/+0
| | | | | | | | | | It does not really test anything and just slows down test execution. Pick-to: 6.9 6.8 Change-Id: Idd84f22e261eca089c346d0ff2e5e406eb9effd1 Reviewed-by: Shyamnath Premnadh <[email protected]> Reviewed-by: Ece Cinucen <[email protected]>
* Speed up QtWidgets tests testing QDialogFriedemann Kleint2025-07-092-10/+49
| | | | | | | | | | | Use the timer logic introduced for qfontdialog to close the dialog. Reduces test time from 0.984s to 0.073s. Pick-to: 6.9 6.8 Change-Id: I5ac1dd8da9f2b814ccea4ea9a8fddb03395620c9 Reviewed-by: Ece Cinucen <[email protected]> Reviewed-by: Shyamnath Premnadh <[email protected]>
* QtWidgets test qfontdialog_test.py: Fix the test to runFriedemann Kleint2025-07-092-8/+34
| | | | | | | | | | Disable native dialogs and add a timer closing the widget opened by the static getFont() function. With that. the test can enabled. Pick-to: 6.9 6.8 Change-Id: Iee9b0a341aa13527f5edcb10fd2188d111cee841 Reviewed-by: Shyamnath Premnadh <[email protected]> Reviewed-by: Ece Cinucen <[email protected]>
* Disable GIL: Remove NoGIL codeFriedemann Kleint2025-07-091-1/+0
| | | | | | | | The new approach is disable-gil. Task-number: PYSIDE-2221 Change-Id: I1b1e783883aa2e94f62548385d3f19b61cf6d1ed Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Disable GIL: Basic adaption and compile fixesFriedemann Kleint2025-07-091-0/+6
| | | | | | Task-number: PYSIDE-2221 Change-Id: Ib494a0404de4aa463078b5fd9788e40cecc25ae8 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Fix CMake targets to be relocatable in wheelsShyamnath Premnadh2025-07-072-0/+19
| | | | | | | | | | - Create two CMake export sets. One for building PySide6 and shiboken6 together called *Targets.cmake. Another with the corrected paths based on the wheel tree structure called *WheelTargets.cmake - Copy all the necessary CMake files to the wheel. Change-Id: If538ed3dac4d8195e96157c595bc63e991a5ee90 Reviewed-by: Friedemann Kleint <[email protected]>
* PySide6: Cleanup CMake configuration filesShyamnath Premnadh2025-07-073-14/+28
| | | | | | | | | | | | | | - Variables PYSIDE_PYTHONPATH, PYSIDE_TYPESYSTEMS, PYSIDE_GLUE were corrected to correctly reflect the paths for the build-tree in the CMake configuration files during super-project build of PySide6. These were also corrected for the install-tree based on the wheel structure. - Introduce two new CMake variables PYSIDE_PYTHON_CONFIG_SUFFIX and PYSIDE_SO_VERSION shipped with the CMake config files. - Fix pyside6qml to use the export set of pyside6. Change-Id: I3b177bfed31af1d0e3a13fcc9469019a7f349d22 Reviewed-by: Friedemann Kleint <[email protected]>
* PySide: Consolidate pyside6qml into PySide6 CMake packageShyamnath Premnadh2025-07-074-48/+2
| | | | | | | | | | | | libpyside6qml is an integral part of PySide6 and is always distributed alongside libpyside6. To simplify the CMake configuration: 1. Remove separate PySide6Qml CMake package. 2. Move pyside6qml target from its own export set to PySide6Targets. 3. Delete PySide6QmlConfig*.cmake files as they are no longer needed Change-Id: If69db1b7c4056d50820eec1e60fde82664e0f1c4 Reviewed-by: Friedemann Kleint <[email protected]>
* QtAsyncio: Brush up code/add type hintsFriedemann Kleint2025-07-072-37/+53
| | | | | | | Initial-patch-by: Christian Tismer <[email protected]> Task-number: PYSIDE-769 Change-Id: I7b89d4dea9024b1b926d320a2464821eca5af748 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* QtAsyncio: Include this non-Qt module into normal testingFriedemann Kleint2025-07-0714-15/+107
| | | | | | | | | | | QtAsyncio has tests like other modules, although they were not automatically tested. Add a way to specify this kind of modules without conflicts in cmake. Initial-patch-by: Christian Tismer <[email protected]> Task-number: PYSIDE-769 Change-Id: I9897f37c98c400846af77d18533486fb048aca80 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Install QtAsyncioFriedemann Kleint2025-07-072-2/+31
| | | | | | | Initial-patch-by: Christian Tismer <[email protected]> Task-number: PYSIDE-769 Change-Id: I3e7bf645a2b55249685f7aac58eb93342bdb6eb7 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* PySide: Fix debug buildShyamnath Premnadh2025-07-071-4/+15
| | | | | | | | | - Amends 9a87f647acebacc330c7f426465cf0b45e3d1375 to include debug build scenario. Change-Id: If5b00e93cfd7446a7f7e411bf4901db1009c02f2 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Remove unused test utility processtimer.py and its testFriedemann Kleint2025-07-042-129/+0
| | | | | | | | It appears to be unused and the test has bit-rot. Pick-to: 6.9 Change-Id: If4c47e8b34b5bb7f88bb56e525a322d49ef31af3 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Add tests that were missing from CMakeLists.txtFriedemann Kleint2025-07-0410-5/+39
| | | | | | | | Some tests were also missing imports and checks, add them as well. Pick-to: 6.9 Change-Id: Id73b7ab0ec06e5d87613719d0b2f267fa165db77 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Shiboken: Cleanup CMake configuration filesShyamnath Premnadh2025-07-041-0/+9
| | | | | | | | | | | - Removed unused variables in the Config file. SHIBOKEN_SHARED_LIBRARY_DIR and SHIBOKEN_INCLUDE_DIR can be obtained from the `libshiboken` cmake target as a property, and SHIBOKEN_PYTHON_MODULE_DIR can be obtained from PYTHON_SITE_PACKAGES Change-Id: I7a27f70055835c64029cee0bef33158e48f2d7a4 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Modify headers installation for CMake buildsShyamnath Premnadh2025-07-0411-13/+13
| | | | | | | | | | | | | | | | | | | Previously, the headers are installed as ${CMAKE_INSTALL_PREFIX}/include/cmake_package_name, where cmake_package_name is the CMake package name, e.g., PySide6. In the wheels, the headers were included as package_name/include. Since the level of the include directory is different, this caused issues when importing the CMake package in a downstream project. - This change modifies the installation of the headers so that the CMake install prefix and the wheels are consistent. - Additionally - this change adds the libpyside6 headers to the wheels. - The include headers for libshiboken were shipped with shiboken6-generator and not with shiboken6, which has the libshiboken binary. Change-Id: I96e3280799da169836e24551b906274f5b0fc962 Reviewed-by: Alexandru Croitor <[email protected]>