aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* Desktop Deployment: Update Nuitka to 2.3.2Shyamnath Premnadh2024-06-111-2/+2
| | | | | | | | | | - Full support for Python 3.12 - Experiemental support for Python 3.13 Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: Ib4699351ec4105de756b4ac16cd7b3a49054a614 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Enable Nuitka --standalone modeShyamnath Premnadh2024-06-101-0/+10
| | | | | | | | | | | | | - enables the standalone mode of Nuitka for pyside6-deploy - the mode can be set either through the command line or the config file - adapt tests - update documentation Pick-to: 6.7 Fixes: PYSIDE-2622 Task-number: PYSIDE-1612 Change-Id: I5a10c857d3e79174d2643139eb2e4f7b5e10d955 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix suppressed exceptions for 0-delay singleShotAdrian Herrmann2024-05-272-0/+38
| | | | | | | | | | | 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>
* Desktop Deployment: ignore .qsb, .webp, .cpp.o and .qen filesShyamnath Premnadh2024-05-211-0/+9
| | | | | | | | | | | | | | | - These files have to be ignored in the deployment process because Nuitka is not able to recognize these file formats and considers them to the dlls instead of data files. - The missing .webp files breaks the usage of BusyIndicator type of QtQuick Controls. Hence, a bug report for that is raised in Nuitka : https://github.com/Nuitka/Nuitka/issues/2854 - Adapt tests Pick-to: 6.7 6.5 Change-Id: Ic4b3b6c65e059ec618a26361caa62b9d7c608690 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Speed up test bug_927.pyFriedemann Kleint2024-05-141-4/+4
| | | | | | | | Bring the execution time from 4s to ~200ms on a normal machine. Pick-to: 6.7 6.5 Change-Id: If57aa5a73089f48cba1b7bcf6789864d8dfbb48c Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Fix polymorphic discovery to work without namesFriedemann Kleint2024-05-061-1/+9
| | | | | | | | | | In newObjectWithHeuristics(), try the type discovery graph check for the inherited class also in case the typeName is identical to the base name (which means typeid() was not able to do resolution based on virtual tables). Change-Id: Ia8912a4860a580418438f659b7a854647657ab9a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix class hierarchies not working with legacy qmlRegisterType()Friedemann Kleint2024-05-023-0/+61
| | | | | | | | | | | | | | | | | | | In order to work with the new QML registration code, the legacy qmlRegisterType() function set QMetaClassInfo items on the meta object of the QObject type to be registered. This caused the meta object to be recreated in PySide's dynamic meta object builder, breaking the class inheritance information. To fix this, use a separate dummy meta object to provide the information. Amends 91bf9aa10faad14de557136664f58005c935d11c. Pick-to: 6.7 Fixes: PYSIDE-2709 Change-Id: Icbd56759279bc8fcf89705af013db560babe4065 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide: Fix QML ListPropertyShyamnath Premnadh2024-04-302-9/+128
| | | | | | | | | | | | - fix broken propListCount() by changing the type of the returned value to qsizetype. Amends f9662f9b4008f683d02c829ea59676a2cf49b2fb. - Add tests to test all the ListProperty features. - Fixes some flake8 errors. Pick-to: 6.2 6.5 6.6 6.7 Task-number: PYSIDE-2698 Change-Id: I356e8af3af965374441f287391dcab9d724b28f9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Lazy Load: Fix polymorphic classes by identifying lazy groupsFriedemann Kleint2024-04-231-0/+16
| | | | | | | | | | | | | Classes with a polymorphicIdValue have an expression which may reference a related class. We use that to identify a lazy group, which has to be initialized at once. This is now completely solved. Pick-to: 6.7 Fixes: PYSIDE-2675 Change-Id: I957a1b2b95d37b96cc2e98082fc7f92e601322cb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QtAsyncio: Fix tasks with loop not cancellingAdrian Herrmann2024-04-221-0/+57
| | | | | | | | | | | | | | | 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>
* Release dialogs when using QDialog.exec()Friedemann Kleint2024-04-122-0/+53
| | | | | | | | | | | | | | | 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>
* Port the QtCore signals tests to modern syntaxFriedemann Kleint2024-04-096-43/+53
| | | | | | | | | | | Use the modern syntax where appropriate. Some tests are left unmodified to at least test the syntax. Pick-to: 6.7 Task-number: PYSIDE-2646 Change-Id: Idb16cda65ab1985f8be5fa5527b5a19e26fcec34 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Port signals tests to modern syntaxFriedemann Kleint2024-04-0920-396/+403
| | | | | | | | | | | | | | Use the modern syntax where appropriate. Some tests are left unmodified to at least test the syntax. As a drive-by, remove the hasQtGui import checks since widgets should be built when this is run. Pick-to: 6.7 Task-number: PYSIDE-2646 Change-Id: I9acf07d0b735009f6aff4a55382dae745d855786 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix flake8-warnings in signals testsFriedemann Kleint2024-04-0427-56/+23
| | | | | | | | Pick-to: 6.7 Task-number: PYSIDE-2646 Change-Id: I4f6b5d642f540fb3f5f2e219057c862fe5998a21 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add a project file for the signals testsFriedemann Kleint2024-04-021-0/+19
| | | | | | Pick-to: 6.7 Change-Id: I8a6b2eb1aa9f7a1a7675424c01127c7db108eaf2 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* libpyside/Signal manager: Ensure cleanup of main thread targetsFriedemann Kleint2024-04-021-1/+23
| | | | | | | | | | | | | | | | Restore a notification on a sender's QObject::destroy() signal for main thread objects. Instead of triggering instant deletion as was done before (causing issues with recursion and threads), start an idle timer to call the Signal manager cleanup. Amends 1270a9e82e5bc3bd53a1131698ece60403da1192. Pick-to: 6.7 Task-number: PYSIDE-2646 Task-number: PYSIDE-2141 Change-Id: Ifdc28f729cab64d58ac2ab300daece98b167d915 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* libpyside: Refactor the signal-lambda-testFriedemann Kleint2024-04-021-28/+56
| | | | | | | | | | | | Introduce Sender/Receiver classes for clarity. Prepend tests for the new Signal.connect() syntax before the old string-based connect() tests. Join the 2 tests using QProcess to save one execution. Pick-to: 6.7 6.6 6.5 Task-number: PYSIDE-2646 Change-Id: I41db1be3cf5772df2ed7a89aecf4d9b3ff5b8a51 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Implement multiple inheritance correctly, 2nd. amendmentChristian Tismer2024-03-281-5/+35
| | | | | | | | | | | | | When a Python class does _not_ implement __init__, then we might get the default of object.__init__, which must be skipped like the object class alone. Change-Id: I0416c97854e8d1c9edf0b9ac44d3df58223fef84 Fixes: PYSIDE-2654 Task-number: PYSIDE-2294 Pick-to: 6.5 6.6 6.7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Register typedefs of container typesFriedemann Kleint2024-03-183-1/+24
| | | | | | | | | | | | | | | | | | For signals like QRemoteObjectRegistry.remoteObjectAdded(QRemoteObjectSourceLocation) where using QRemoteObjectSourceLocation = std::pair<QString,QRemoteObjectSourceLocationInfo> one needed to specify the fully qualified C++ name in @Slot() for the metaobject system to work and the shiboken converter to be found. Record the typedefs and register the container converters under the typedef name, too. Fixes: PYSIDE-2633 Change-Id: Ifc62f096277949a507957a0466adb47d082695c7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add QIOPipeAdrian Herrmann2024-03-131-0/+36
| | | | | | | | | | | | 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>
* Deprecation Python 3.8Cristián Maureira-Fredes2024-03-121-8/+2
| | | | | | | | | | | The changes related PYSIDE-939 can be removed when 3.9 support is dropped, because the problem was fixed and included in 3.9.13 so we cannot assume everyone will be on that version or superior. Change-Id: I78afc660edc6fbb3bb1a2438e17366e63b24e375 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Upgrade Nuitka to 2.1.0Shyamnath Premnadh2024-03-111-2/+2
| | | | | | | Task-number: PYSIDE-1612 Change-Id: Ieab3a7c7fd43e50e83c30d97cb70f6f1135b69e3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Fix connect() for QObject callablesAdrian Herrmann2024-03-112-0/+46
| | | | | | | | | | | | | | | 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>
* Deployment: add permission support and create macOS bundle applicationShyamnath Premnadh2024-03-111-12/+15
| | | | | | | | | | | | | | | | | | - Look at the ast of the python files of the application to identify the permissions used by the application. Once the permissions are identified, pass the necessary NS property list key to be added to the Info.plist file to Nuitka. - For macOS, when deploying create a macOS application bundle (.app) by default. This makes it align more with Apple recommendations and Qt deployment. - Fix tests. - Fix wheel_tester.py to consider .app for macOS. Task-number: PYSIDE-1612 Task-number: PYSIDE-2468 Change-Id: Ie225c9a92c845b432a8e7eaa791a8aeb86ecd988 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> 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-0/+8
| | | | | | | | | | | 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>
* Desktop Deployment: Optimize the plugins includedShyamnath Premnadh2024-03-071-13/+55
| | | | | | | | | | | | | | | | - Applications that use certain modules like Multimedia does not work because the plugins for it were not included. However, including all the plugins can make the application executable huge. This patch filters out the necessary plugins by looking at PySide6_Essentials.json and PySide6_Addons.json shipped with the wheels and only bundles these necessary plugins with the application. - Adjust tests. Task-number: PYSIDE-1612 Task-number: PYSIDE-2597 Change-Id: I35c74907a1782ae5101fb7c0861adcb97db5792d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Find dependent modulesShyamnath Premnadh2024-03-063-9/+38
| | | | | | | | | | | | | | | | | | | | - Based on the desktop platform, find all the Qt module dependencies of the application just like Android. These dependencies can help in optimizing the plugins packaged with the application. - Desktop deployment has new cl arguments: --extra-ignore-dirs and --extra-modules that further complements finding the Qt modules used by the application. - Since the Qt dependencies are also required for desktop deployment, 'modules' field in pysidedeploy.spec is moved from under 'buildozer' key to 'qt' key. - dependency finding code moved to dependency_util.py. This also helps in list the imports without conflicts in deploy_lib/__init__.py. - Fix tests. Skip the deploy tests for macOS 11 as the CI does not include dyld_info either via XCode or CommandLineTools. Task-number: PYSIDE-1612 Change-Id: I3524e1996bfec76c5635d1b35ccbc4ecd6ba7b8d Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Enum: Move special Flag patch into a snippetChristian Tismer2024-03-052-34/+6
| | | | | | | | | | | | | | 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 connecting to signals with QFlags<>Friedemann Kleint2024-03-013-2/+20
| | | | | | | | | | | | | | Additionally register the shiboken converter under the type alias name ("Qt::Alignment"), which appears in the meta method signature besides the full name ("QFlags<Qt::AlignmentFlag>"). Manifests as signal: QBluetoothDeviceDiscoveryAgent::deviceUpdated(QBluetoothDeviceInfo, QBluetoothDeviceInfo::Fields) Pick-to: 6.6 Fixes: PYSIDE-2613 Change-Id: I7ecce8e0b3f8ddf790c40260fc156184e83cad69 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment Config: Remove Nuitka dependenciesShyamnath Premnadh2024-03-011-2/+2
| | | | | | | | | | | | - ordered_set and zstandard are installed along with Nuitka. We don't need to explicitly specify them anymore. If they are not existing, it means that the user might have explicitly removed them. - Adapt tests. Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: I21657cb6df95f2d33f48a719a71f49efab84990c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: More Refactoring and minor bug fixesShyamnath Premnadh2024-03-012-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | - setup_python() moved to constructor of PythonExecutable. -install_python_dependencies() moved under PythonExecutable in python_helper.py. - create_executable() of PythonExecutable removed. Instead, we call Nuitka.create_executable() directly. This removes unncessary import problems when using PythonExecutable class for Android Deployment. - nuitka==1.8.0 changed to Nuitka=1.8 in default.spec to match with the installed version. Otherwise, it forces the reinstall of Nuitka==1.8 every time (bug). - Remove recomputation of qt_plugins and local_libs. If the values exist in pysidedeploy.spec, then they should not be computed again. This serves the purposes of speeding up the deployment and also to no modifying the already existing pysidedeploy.spec. - find_pyside_modules() moved from python_helper.py to deploy_util.py. - Adapt tests. - Remove os.fspath wrapping from python.exe. This is not needed as python.exe is already pathlib.Path. Pick-to: 6.5 6.6 Task-number: PYSIDE-1612 Change-Id: Ic598e57cd2f2779c410b12fc9584cf60c5e94505 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Deployment: RefactoringShyamnath Premnadh2024-02-292-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | - Functions in buildozer.py for finding the local_libs, plugin and Qt module dependencies of the application are related to the overall config of the application and not buildozer. Hence, these functions are moved to android_config.py. - `ALL_PYSIDE_MODULES` moved to a function under deploy_lib/__init__.py and `platform_map` moved to deploy_lib/android/__init__.py. - Enable the user to pass both arm64-v8a and aarch64 as the architecture type. Same for all the other architecures that are synonymous. - `verify_and_set_recipe_dir()` is now called explicitly from android_deploy.py due to `cleanup()` deleting the recipe directories during config initialization. - New property `dependency_files` for AndroidConfig class. - Fix --dry-run for Android Deployment. - Adapt tests. Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: Icdf14001ae2b07dc8614af3f458f9cad11eafdac Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* signature: Add support for classmethodsCristián Maureira-Fredes2024-02-251-5/+4
| | | | | | | | | | | | | | | | | | | | Two tests were adapted, because now the missing signature error message: TypeError: xxx.__dict__['yyy'].fset(<class 'object'>) is wrong (missing signature) does not apply, and we get the usual message: TypeError: xxx.__dict__['yyy'].fset" called with wrong argument types: this comes from the fact that we are not getting the string representation of the signature, but the data type itself. Change-Id: Ib9c8b7f863063b384c41dea32e2b4b01f0695f82 Fixes: PYSIDE-1955 Pick-to: 6.6 6.5 6.2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix conversion of QVariant<->QMatrix<n>x<m>Friedemann Kleint2024-02-224-2/+24
| | | | | | | | | | | | | | | | 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>
* Add benchmark script for lazy initialization, comment fixChristian Tismer2024-02-161-1/+0
| | | | | | | Change-Id: I3a8b6c8f708f97a1dc26540a23bdeb5c91d87ceb Pick-to: 6.6 Task-number: PYSIDE-2404 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Tests: Stop comparing QMimeType descriptionsFriedemann Kleint2024-02-161-4/+3
| | | | | | | | | Updates to freedesktop.org.xml in QMimeDatabase can break the test. Task-number: PYSIDE-2497 Change-Id: I812fafd37f98bd44f5b61c2c247eca34ebafa047 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add benchmark script for lazy initializationFriedemann Kleint2024-02-151-0/+39
| | | | | | | | Pick-to: 6.6 Task-number: PYSIDE-2404 Change-Id: I0e9249504ba1dbcff7317413d9ad8c774e60fdd2 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* qmimedatabase_test.py: Fix for 6.7/WindowsFriedemann Kleint2024-02-151-2/+1
| | | | | | | | | | The mime type returns an upper case description on Windows. Task-number: PYSIDE-2497 Change-Id: I6d2254080d71feb9cd9a42c2f12c168ad3eae5e1 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* QTimer: Call C++ function for singleShot timersAdrian Herrmann2024-02-131-1/+63
| | | | | | | | | | | | | 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>
* QTimer: Fix singleShot overload with contextAdrian Herrmann2024-02-072-1/+17
| | | | | | | | | | | 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>
* Android Deployment: Explicit android group in config fileShyamnath Premnadh2024-01-311-3/+3
| | | | | | | | | | | | | - Distinguishes the changes fields as only relevant for Android Deployment. - This distinguishing group makes it clearer when we finally have iOS wheels. Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: I215d2deec0117ae855e6d9a061642984eccd36ef Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* flake8: deploy testsShyamnath Premnadh2024-01-312-8/+9
| | | | | | | | | | | - general flake8 fixes. - this prevents flake8 from reporting E402 error for `from init_paths import init_test_paths` not being in the top of the file. Pick-to: 6.6 Change-Id: Id21ef66979cb7e79db63c656cc150017751d1716 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide6: Change QObject.disconnect() to return False with warning on failureFriedemann Kleint2024-01-161-1/+1
| | | | | | | | | | [ChangeLog][PySide6] QObject.disconnect() now returns False instead of raising an exception for non-fatal cases. Fixes: PYSIDE-1275 Change-Id: I860b69e1a7055c38f903ffafd7f816575c0d1f7a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix imports of widget test bug_854.pyFriedemann Kleint2024-01-121-2/+2
| | | | | | | | The test is crashing on Windows due to a missing import. Pick-to: 6.6 6.5 Change-Id: Iec366a236c72185b2768c4d08a4eb2b7c982e237 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* PySide6: Add QQmlEgine.singletonInstance()Friedemann Kleint2024-01-091-12/+42
| | | | | | | | | [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-083-0/+25
| | | | | | | | | 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>
* QtAsyncio: Shorten test durationsAdrian Herrmann2024-01-076-12/+15
| | | | | | | | | | | Most QtAsyncio tests are slow because they sleeps. Shorten their durations across the board by using shorter sleeps. E.g., this reduces the duration of the queue test from about 16 seconds to less than 6. Pick-to: 6.6 Task-number: PYSIDE-769 Change-Id: I5072bb71fbe28509427fb92390584ec1a4d1a128 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* QtAsyncio: Fix cancelling waiting tasksAdrian Herrmann2024-01-071-0/+46
| | | | | | | | | | A task that is awaiting a future must also cancel this future in order for the cancellation to be successful. Pick-to: 6.6 Task-number: PYSIDE-769 Change-Id: I22a9132fc8506e7a007fe625bc9217f0760bdc6b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix qCompress/qUncompress() taking a PyBuffer/len argumentsFriedemann Kleint2024-01-051-1/+23
| | | | | | | | | | | | | | | | | | | | | | | 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>
* PyPySide: Fix a problem with __warningregistry__Christian Tismer2023-12-281-2/+0
| | | | | | | | | | | | | The function `isolate_warnings` has a problem when called on a external module. Seen in `existence_test.py`. Improve the function to not touch irrelevant modules. Change-Id: Icb661717b111bd400abb30799fb97f630fdc3297 Pick-to: 6.6 Task-number: PYSIDE-535 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>