Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* PySide6/Tests: Use fully qualified enumerationsFriedemann Kleint2024-12-209-19/+19
| | | | | | | | | As a drive-by fix flake errors. Pick-to: 6.8 Task-number: PYSIDE-1735 Change-Id: I9829b011fee78fc8edd1aefdd3066ae89e63644b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Remove unnecessary use of 'object' in class constructionremoteobjectsdevCristián Maureira-Fredes2024-12-181-1/+1
| | | | | | | | | | | Considering we are not compatible with Python 2 anymore, we can drop the 'object' explicit inheritance in the class declaration. Pick-to: 6.8 Change-Id: Iac3a95aa9721c3ff1a755f457c0936ca157a8470 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix trailing empty linesFriedemann Kleint2024-12-136-7/+0
| | | | | | Pick-to: 6.8 Change-Id: I1a5964463f703ade0657816cb974206355a5ae5b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* tests: handle unused imports and fix type issuesCristián Maureira-Fredes2024-12-1216-67/+51
| | | | | | | | | | Many modules were imported but unused in our tests. Additionally, some type hint issues were solved. Pick-to: 6.8 Change-Id: Ic2368690e9a6ce0fffea812206185aa4f3dc3c58 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Python-3.10: Allow the new syntax for Python 3.9Christian Tismer2024-06-2035-0/+35
| | | | | | | | Add a future statement to all Python source files. Task-number: PYSIDE-2786 Change-Id: Icd6688c7795a9e16fdcaa829686d57792df27690 Reviewed-by: Adrian Herrmann <adrian.herrmann@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>
* 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>
* Tests: Fix some flake warningsFriedemann Kleint2023-11-2812-5/+15
| | | | | | | | Mostly spacing related. Pick-to: 6.6 Change-Id: I748a8a06f456c5d4bafb94c397c43b3b2ee9e3e9 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Shiboken: Fix subtle bug caused by PyPy support and "bug_825"Christian Tismer2023-11-143-5/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When implementing PyPy support, all Shiboken types lost their hidden extra fields, because they were replaced by shadow dicts. This creates a problem with multiple inheritance. In Python < 3.12, the decision which base type will create the instance is driven simply by the size of the type. In class MetaC(MetaA, MetaB): pass when MetaA is derived from type and MetaB is derived from SbkObjectType, MetaA is not the type that should win. Fixed by simply adding 1 to the default size of PyType_Type. Caused by bug_825 corrected version. The old test is retained as bug_825_old.py . NOTE: This touches a Python 3.8 bug that was fixed in 3.9.12 and 3.10.4 - unfortunately CI Python is older in all cases. Task-number: PYSIDE-2230 Change-Id: I6e82cafb83c8351bbbeafcc80e11d5e45568f73d Pick-to: 6.2 6.5 6.6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add static create() function for decorated QML singletonsFriedemann Kleint2023-11-092-2/+22
| | | | | | | | | | | | | Check for static method named "create()" and use that as a singleton creation callback. [ChangeLog][PySide6] It is now possible to use a static method create(engine) for creating decorated QML singletons. Fixes: PYSIDE-2432 Change-Id: I76c47385a0064733a1949a30d22cc01c280d0423 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add support for QQmlComponent in PropertyCristián Maureira-Fredes2023-08-102-0/+37
| | | | | | | | Fixes: PYSIDE-2415 Pick-to: 6.5 6.2 Change-Id: I2b19b20b1dec584667fa82abe6be2901b9580f96 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* testing: modernize UsesQApplication and remove other versionsChristian Tismer2023-03-164-7/+7
| | | | | | | | | | | | The last change to UsesQApplication can be generalized to be able to remove the QtCore and QtGui versions. Instead, the module and class to use are computed from the content of sys.modules . Task-number: PYSIDE-1564 Change-Id: Iac1fe3a2d6bb5a9f7638eb889f55b079cb55c272 Pick-to: 6.4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add license headers to cmake filesFriedemann Kleint2023-02-161-0/+3
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Task-number: QTBUG-105718 Task-number: QTBUG-88621 Change-Id: I98bd2e80f182d8bf7aef6b633f37a428e2dac69b Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Add .pyproject files for the testsFriedemann Kleint2022-11-111-0/+65
| | | | | | | | Makes navigation with Qt Creator easier. Change-Id: I40c6bc641faddcdbd265d6e886c2f3bd3b271be5 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix passing dicts as QVariantMap to QMLFriedemann Kleint2022-11-082-0/+150
| | | | | | | | | | | Add the name to the known types for signal/slot signatures, preventing it from falling through to the PyObject default converter, which causes reference leaks. Fixes: PYSIDE-2098 Change-Id: Id95d8a352dd1913bd10578f1ec11de0c533e8f40 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Use SPDX license identifiersLucie Gérard2022-05-2761-1658/+125
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: I065150015bdb84a3096b5b39c061cf0a20ab637d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Add QQmlContext::setContextProperties()Friedemann Kleint2022-05-091-1/+8
| | | | | | | | Pick-to: 6.3 Fixes: PYSIDE-1921 Change-Id: Id80f9c2f7533d7e2d58af0fb0f1d6d8eb586d31a Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add QPyQmlParserStatusFriedemann Kleint2022-04-013-0/+119
| | | | | | | | | [ChangeLog][PySide6] class QPyQmlParserStatus for handling QML parser status changes has been added. Fixes: PYSIDE-1876 Change-Id: Ic1066924ec85dc8633f959342921c1d03da1aee4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PyPy: Fix timeout in bug_997.py, take 2Friedemann Kleint2022-03-122-11/+14
| | | | | | | | | | | | | | | Amends 6ffb2c3e852e2153b0c58ac659e7d8b60b691f19. The QML component is usually complete even before the window shows. Signal complete from QML and do not enter the event loop if that is the case. Pick-to: 6.2 Task-number: PYSIDE-1843 Task-number: PYSIDE-535 Change-Id: I7c68b7e16c197d9ec97e83cebb5b7919a5de71dc Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* PyPy: Fix tests with timeoutsFriedemann Kleint2022-03-103-6/+22
| | | | | | | | | | | | | | | bug_997.py: Stop the timer. qqmlnetwork_test: Move the closing logic to a local function since the network factory classes are in a different thread. qquickitem_grabToImage.py: Use a longer timeout. Pick-to: 6.2 Task-number: PYSIDE-1843 Task-number: PYSIDE-535 Change-Id: I34a09739431cec4de8e68f455dc771a03527e526 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix grouped QML propertiesFriedemann Kleint2022-03-033-0/+172
| | | | | | | | | | | | | Register the meta type using QQmlMetaTypeInterface and use them when creating properties in the dynamic metaobject builder. This at least fixes grouped properties when decorators are used. It does not work when using plain qmlRegisterType() due to an ordering problem. Fixes: PYSIDE-1836 Change-Id: I06db020a1ccd169da7a745cc5ef42d38ce35f5f5 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add the QmlAttached decoratorFriedemann Kleint2022-02-163-0/+172
| | | | | | | | [ChangeLog][PySide6] The QmlAttached decorator has been added. Task-number: PYSIDE-1709 Change-Id: I0301ecc7a9bc7a1b798095e8972b2fe4addf2eaf Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add the QmlExtended decoratorFriedemann Kleint2022-02-163-0/+134
| | | | | | | | | [ChangeLog][PySide6] The QmlExtended decorator has been added. Task-number: PYSIDE-1709 Change-Id: I56d1c75f281f37e9d23c64362ce89c5f1f49723a Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add the @QmlForeign decoratorFriedemann Kleint2022-02-113-0/+111
| | | | | | | | [ChangeLog][PySide6] The @QmlForeign decorator has been added. Task-number: PYSIDE-1709 Change-Id: I7dbba47923efb6a1c3ac4accb2b3adcd3fb6fd9b Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add the @QmlNamedElement decoratorFriedemann Kleint2022-02-091-3/+3
| | | | | | | | | | | Add the decorator and split the registration functions in order to be able to pass a different type name. [ChangeLog][PySide6] The @QmlNamedElement decorator has been added. Task-number: PYSIDE-1709 Change-Id: I081cd33313d7b9c19cb6403ee56ac9d8b1d9e606 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Speed up test qqmlnetwork_test.pyFriedemann Kleint2021-12-171-2/+5
| | | | | | | | | | Instead of relying on TimedQApplication to tear down the test, wait until the network request is started and start a timer to close the window. Pick-to: 6.2 Change-Id: Ib68f97d8fb57503b7e1a228fbd54755e986a8605 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Fix QQmlApplicationEngine.load(str) to not construct a QUrlFriedemann Kleint2021-12-153-0/+112
| | | | | | | | | | | | | | Specify the overload number so that string is checked first. Add a test since QQmlApplicationEngine is not yet tested. Amends 2cc81fd5e63bf931d8c9d1c8c2c66ac9e16ef087. Pick-to: 6.2 Fixes: PYSIDE-1736 Task-number: PYSIDE-1499 Change-Id: I1736928f1acf17fda5671bd11d16c5017141f1ff Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* tests: Use QGuiApplication where applicableFriedemann Kleint2021-12-064-7/+7
| | | | | | | Pick-to: 6.2 Change-Id: I9401fa0721ea6e3df413c5a9fccb5e802d57295d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Speed up test bug_997.pyFriedemann Kleint2021-12-021-7/+17
| | | | | | | | | Instead of waiting, add a timer checking whether the component is complete and close the view. Pick-to: 6.2 Change-Id: I8b711fe685e508532a89f39354676caf658bc90f Reviewed-by: Christian Tismer <tismer@stackless.com>
* tests: Add TimedQGuiApplicationFriedemann Kleint2021-12-0110-23/+23
| | | | | | | | It is sufficient for Gui and QML tests. Pick-to: 6.2 Change-Id: I6302c3d3f016fb95914f1754e794883cad69bce2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add a QmlSingleton decoratorFriedemann Kleint2021-11-162-3/+24
| | | | | | | | | | Add a simple decorator function that stores the type in a list for the QmlElement decorator to use singleton registration. Task-number: PYSIDE-1709 Pick-to: 6.2 Change-Id: I075d583404bd60dc52b84c23a3d09e50d32a5a3a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Fix warning in test registersingletontype.pyFriedemann Kleint2021-11-151-0/+1
| | | | | | | | | | | Give the quickview a non-null size, fixing: QSGThreadedRenderLoop: expose event received for window QQuickView(0x1a31dc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(Window), geometry=0,0 0x0) with invalid geometry: QRect(0,0 0x0) on QScreen(0x1a0cf00, name=DVI-D-0) QSGThreadedRenderLoop: expose event received for window QQuickView(0x1a31dc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(Window), geometry=0,0 0x0) with invalid geometry: QRect(0,0 0x0) on QScreen(0x1a0cf00, name=DVI-D-0) Pick-to: 6.2 Task-number: PYSIDE-1709 Change-Id: Ifed3d31943acf163cee879a2842823e01950c6fd Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add a QmlUncreatable decoratorFriedemann Kleint2021-11-151-4/+6
| | | | | | | | | | | Add a class type that stores the reason and registers the type in the call operator. This is then queried by the register type helper functions. Pick-to: 6.2 Task-number: PYSIDE-1709 Change-Id: I0dd0c4c1e05e6e0ee6f22a6947b85546fc373fb9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* PyPySide: fix quite a few tests using del or __del__Christian Tismer2021-10-271-1/+4
| | | | | | | | | | | | | | | | | In PyPy, the __del__ method is only triggered reliably by calling gc.collect() Also, the del statement does a deletion from the namespace, but the real deletion happens when gc.collent() is called. This was applied to all tests which use del, regardless if it has a visible effect on PyPy or not. It turned out to save more 8 errors, which is great. Task-number: PYSIDE-535 Change-Id: I6a58d90629c9eafec7307c17f021251113b3c7f2 Pick-to: 6.2 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Add qmlRegister functions taking a library URLFriedemann Kleint2021-10-113-0/+89
| | | | | | | Fixes: PYSIDE-1631 Pick-to: 6.2 Change-Id: I082c3576c24f772190cc103da787311b43acf88c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Implement qmlRegisterSingletonInstanceCristián Maureira-Fredes2021-08-172-3/+15
| | | | | | | | | | | | Using a similar approach to the qmlRegisterSingletonType, but wrapping the instance (QObject) into a SingletonFunctor as described in Qt/C++. Add helper function PySide::isQObjectDerived Task-number: PYSIDE-487 Change-Id: Id0fd9da0351a9ba58eae006d7d882f9815f06742 Reviewed-by: Christian Tismer <tismer@stackless.com>
* qml: replace context properties and code updatesCristián Maureira-Fredes2021-07-2115-20/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the qml code in the repository was outdated, and followed bad practices, like context properties. Complementary, after the major updates for Qt6 most of the code was not relying on the new ways of register types (singletons, and using the decorator QmlElement). Drop the context property usage in the following examples: - signals/qmltopy1 - signals/qmltopy2 - signals/pytoqml2 - usingmodel - quickcontrols2/gallery - textproperties Additionally: - all the tests related to context properties - tutorials/qmlapp - tutorials/qmlsqlintegration - Removing 'scrolling' example - Fixing some flake8 warnings Change-Id: I649248c0149876bf2bf94e78e27cef7110f42f1d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Keith Kyzivat <keith.kyzivat@qt.io>
* pathlib: extend QUrl.fromFilePath to support os.PathLikeChristian Tismer2021-07-0221-22/+22
| | | | | | | | | | | [ChangeLog][PySide6] The function QUrl.fromFilePath supports now the os.PathLike structure in addition to string arguments. The new interface was applied, everywhere. Change-Id: I2d888383c54b7f964e448d210264c7e902759f43 Pick-to: 6.1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide6: Add more non-template QML functionsFriedemann Kleint2021-06-171-2/+9
| | | | | | | | | | [ChangeLog][PySide6] A number of free functions from QtQml have been added. Pick-to: 6.1 Task-number: PYSIDE-1482 Change-Id: I51842df17d9f1c1f9f07d6e3f324d0bf273b476a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* tests: use exec() instead of exec_()Cristian Maureira-Fredes2021-05-0411-11/+11
| | | | | | Change-Id: I0868f70d7dfeafa7762296da5aa6efc2f32fcb5e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Tests: Fix some space-related flake8 warningsFriedemann Kleint2021-04-2922-26/+85
| | | | | Change-Id: I9b0ad08839bf1246620c557ec304dfa90882907b Reviewed-by: Christian Tismer <tismer@stackless.com>
* Tests: Use new form of super()Friedemann Kleint2021-04-287-7/+7
| | | | | Change-Id: Id0a6c5e67f53623cc6d41ccc377218479931ee65 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Tests: Use per-class importsFriedemann Kleint2021-04-276-42/+53
| | | | | Change-Id: I6dac1f54152fecab7af6831bc3c813a016408aae Reviewed-by: Christian Tismer <tismer@stackless.com>
* Port tests to pathlibFriedemann Kleint2021-04-0621-46/+106
| | | | | | | | | | | | | Replace test helper function adjust_filename() by pathlib handling. Add asserts on the existence everywhere. Add error handling with helper functions to QML loading, printing the error message in the assert statements. Task-number: PYSIDE-1499 Task-number: PYSIDE-1532 Change-Id: I206929effb37f21d1f621be921bb996162398b4d Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Switch from os.path to pathlib.Path, systematic test changesChristian Tismer2021-02-0824-24/+48
| | | | | | | | | | | | | | | | | | This patch does the systematic changes on all tests. Note that there was a bug in principle: os.path was used without importing os.path This worked through the way how the os module initializes itself, but you always will find the explicit import in the python library. But the problem is going away anyway after the transition to pathlib.Path :) Change-Id: I95144d7f9bb07a38376c3aa428df663f2e64bcb7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* move "shiboken6/shiboken6" to "shiboken6/Shiboken"Christian Tismer2021-02-061-0/+6
| | | | | | | | | | | | | | | | | | | | | Modifying the paths to work in the new way is a quite ambitious task. But doing so improves the overall project structure and makes imports unambiguous. This patch should not be applied alone but with move "shiboken6/shiboken6" to "shiboken6/Shiboken" temp The reworked version of this patch no longer has different structures in `build` and `install`. Tested with Python 3.6, 3.7, 3.8, 3.9 debug build Python 3.6 debug install Python 3.9 release install Task-number: PYSIDE-1497 Change-Id: Id9d816dd825907f9359651e7e2f69f54e1ba46c9 Reviewed-by: Christian Tismer <tismer@stackless.com>
* test: fix QtQml::signal_argumentsCristian Maureira-Fredes2020-12-021-1/+1
| | | | | Change-Id: Ie554c42597343d10cf199739d6821b6cb40894bc Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* PySide6: Remove namespace QtQmlFriedemann Kleint2020-11-271-1/+1
| | | | | | | | It was removed in qtdeclarative/5a59cbfee71907c47587a1e3d340d31abfdc01ba. Change-Id: I94c49dced3decb9089c1f8745468d080e0d0311d Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Fix test javascript_exceptions.pyFriedemann Kleint2020-11-271-1/+1
| | | | | | | It was using the old Qt Quick Controls 1. Change-Id: Ia1d6a884267fdcd8e3808b08bf1efa12eb62b4dd Reviewed-by: Christian Tismer <tismer@stackless.com>