aboutsummaryrefslogtreecommitdiffstats
path: root/sources
Commit message (Collapse)AuthorAgeFilesLines
* Update 6.2.2 to include fix for PYSIDE-1727v6.2.2.16.2.2Simo Fält2021-12-083-3/+3
| | | | | | Change-Id: I74e88a967046b87d6068aaf648dddbbd9722380e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Signature: fix the __doc__ attribute of classesChristian Tismer2021-12-083-5/+13
| | | | | | | | | | | | | | | | | | | | The signature module had been changed to no longer default the __doc__ attribute of classes to the __init__ signature. This has the side effect of crashing "help(QtCore)". Fixed by correct defaults in C++ (AttributeError) and by setting a "None" default in the Python handler. The make_helptest function defaults again correctly to the signature: >>> errorhandler.make_helptext(QtWidgets.QApplication) 'QApplication(self) -> None\nQApplication(self, arg__1: Sequence[str]) -> None' Change-Id: I140f2b940f98eb126541b18b0feb312c7c4e9728 Fixes: PYSIDE-1727 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 8901719fd74ce8d8909608365e68f7354adaa254) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Cleanup version strings for 6.2.2 releaseSimo Fält2021-12-012-6/+6
| | | | | Change-Id: I43d81604f059084f82b4031de5e796dfd483f460 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Prospective fix for stabilizing qthread_test.pyFriedemann Kleint2021-11-291-32/+23
| | | | | | | | | | | Test both signals started/finished() in one test function and have QThread.finished() call CoreApplication.quit() as well. This avoids waiting seconds. Change-Id: Ifa85db36f0b2e52baaf135b9ca7e63fbfc2ef7fd Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit f39648ddf900c6845c1ad54187ead34ac41cd354) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* snippets_translate: Enable all modulesFriedemann Kleint2021-11-291-3/+1
| | | | | | | | | | | | | | Fix a fixme commment. To make this pass, make the conditions matches more strict and add some warnings and error handling. Remove the checking of stderr from the CMake statement as this will produce some warnings. Task-number: PYSIDE-1721 Change-Id: I8aeefa8355144d98524a622733d82d337cd3c23b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 9b887937f971887a32aefd584cc247bc7ec0f36e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add QtQuick3D moduleCristián Maureira-Fredes2021-11-294-0/+116
| | | | | | | | | | | | | Adding the module that contains a few C++ classes. Adding the 'intro' example. Adding the 'customgeometry' example as well. Fixes: PYSIDE-1708 Change-Id: I0681f087e74c13c024bb1dfa8de545b30f95d7d8 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit b9ec49942b3ad53343317e631320c58e59736c22) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* snippets_translate: Handle header files as wellFriedemann Kleint2021-11-271-4/+6
| | | | | | | | | | Use suffix .h.py for them to distinguish them from .cpp files. Task-number: PYSIDE-1721 Change-Id: Iea4bfa770833f319b65c1ea7f83fb1a325ce8c62 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 6fd1e6619b0aeef1f7e916e474693157450e765f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Cleanup documentation building codeAlexandru Croitor2021-11-264-37/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move conditions on whether documentation should be built inside the doc project, rather than outside. Look for qdoc and qhelpgenerator both in PATH and via find_package(Qt6Tools) calls. Add sanity checks that the various tools used in the add_custom_command calls are actually available. Show a warning or error when they are not available, depending on combination of whether it's a standalone doc build or part of the overall shiboken/python build. Set DOC_OUTPUT_FORMAT to html by default if it's not specified. Clean up some of the warning messages. Make sure to check the result of running execute_process on the snippets tool. Task-number: PYSIDE-1718 Change-Id: I2969d7a40961881ad0f91d7142b29a7f4130f3b7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 39f47bc8f61e8986a729a153cba619761bacc280) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Move from distutils to setuptoolsCristián Maureira-Fredes2021-11-263-6/+26
| | | | | | | | | | | This is motivated by the deprecation of distutils, and removal in future versions https://github.com/pypa/packaging-problems/issues/127 Change-Id: I16448b69f98df6dc1d9a904b69eb69ed5f1093f5 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 95a5bb9dd3b5d3fa86f2ed0868e2b821256a6028) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PySide6: Fix build after header rearrangementFriedemann Kleint2021-11-261-0/+3
| | | | | | | | | | | | | | qtbase/b55957b9048abf86a5719dd740c4dc0574566e21 removed qproperty.h from qobject.h, causing errors about missing Qt::beginPropertyUpdateGroup(), Qt::endPropertyUpdateGroup() from qtbase/fdedcb6ec650236bef4a8c8f005b5dd24ef7d77a. Fix by including the header. Change-Id: I70ee0449c1cb1aedccd35b6e470cd33af4b5fba1 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit c8fa81de801f09219ef883b72112424baf7c583a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Handle None as a shared pointer parameterFriedemann Kleint2021-11-254-8/+44
| | | | | | | | | | | Add checks for None to the copy converters. Task-number: PYSIDE-454 Change-Id: I03954189e26572d248e22118954115bf8281b0f9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 6c8c0142a99aa0c170998b3449ea20e5a526d80d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Add further methods to smart pointersFriedemann Kleint2021-11-258-0/+67
| | | | | | | | | | | | | | | | | Add attributes for reset() and null-check. The shared pointer in the test uses isNull() which works due to the --use-isnull-as-nb_nonzero option, but it should be possible to explicitly specify that. [ChangeLog][shiboken6] Attributes for reset() and null-check of smart pointers have been added. Task-number: PYSIDE-454 Change-Id: I22571eeb43f7f98b6a77b31066bf8daa681cb044 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit eef987d0faaf1122f191a6ad92343d98f197715d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Add a test for operator nb_bool of smart pointersFriedemann Kleint2021-11-253-0/+22
| | | | | | | Task-number: PYSIDE-454 Change-Id: I849d0a855395846f7cbe9cd97685457627dfd1a2 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit df72cfdfffc00c74f542f27475d651f7c6d088fa)
* Documentation: Fix most sphinx errors "Inline strong start-string without ↵Friedemann Kleint2021-11-236-20/+130
| | | | | | | | | | | | | end-string." Ensure characters following a formatting end are escaped by adding handling and some RST manipulators to class TextStream. Task-number: PYSIDE-1112 Change-Id: I167160cd18fd890d73e31738487d2c91e012196c Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 2cfe8433c861c3602e5e23af8d4fdfb6fd219f4d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* libpyside6: Add a convenience function to convert a PyObject * to a QObject *Friedemann Kleint2021-11-233-16/+40
| | | | | | | | Task-number: PYSIDE-1709 Change-Id: I137d7fd3ac84f50bb6a799e27e07b7523d943812 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit a34622f8098d67c706148eac506460fc65a6401f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* signature: avoid false positives in .pyi importChristian Tismer2021-11-221-1/+1
| | | | | | | | | | | | | | The standard imports into .pyi files are computed with a regex that scans the source for the usage of such imports. Enhance the regex to avoid false positives. Task-number: PYSIDE-1675 Change-Id: If79c278c3da0b347bb09e9b9d662c9ca56ab5716 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit cff76d051133a5c8ff95f272134f7ee55f57bceb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* signature: improve error handling for embedded applicationsChristian Tismer2021-11-223-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Entering something like """ mainWindow.setPointer(None) """ crashes in an old version of scriptableapplication, which shows an omission in the signature interface. The error shows up whenever a builtin module cannot be imported. The error does not show up in PySide 6, because the module is declared as a builtin via `PyImport_AppendInittab`. * add registration of AppLib as a builtin (5.15) * insert builtin modules per default into the mapping module * simple recovery if a module cannot be found in sys.modules [ChangeLog][shiboken6] Error handling was improved for embedded applications and builtin modules are trusted as valid modules. Change-Id: I722212a52a5e3aae924f0b965578485ecaf185a9 Fixes: PYSIDE-1710 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 2149a45fddeedea317dccbfe5e5b14e13888e5c9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PySide6: Fix crash when connecting slot after disconnecting non-existent ↵Friedemann Kleint2021-11-191-2/+4
| | | | | | | | | | | | connection to same slot Add a null-check. Fixes: PYSIDE-1715 Change-Id: I0fc8c1b051b04eacd6bd75542ceaf9f23a825cab Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 360ef4e884db56e3cd228593bbc562727fbd41cd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PySide6: Add a sequence protocol for QRegionFriedemann Kleint2021-11-193-1/+29
| | | | | | | | Fixes: PYSIDE-1714 Change-Id: I581e8088e25ab31afdfc6cd5a15c55a5b418ffdc Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 943aa9ef6fef7533a3566f230aaf878efe46725e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* libpyside6: Use isEmpty() instead of empty() for Qt containersFriedemann Kleint2021-11-192-4/+4
| | | | | | | Change-Id: I0e2f7164bd89ae75eb2aa1cb82adcfa317aea309 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit cd67ab30927eed01ad3f068309033edca0478a3a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PySide6: Remove old QtQuick registering codeFriedemann Kleint2021-11-191-53/+0
| | | | | | | | Task-number: PYSIDE-1709 Change-Id: Iea46ee2c8f4a7d9fd117a3a95adf5e379803a6eb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit b725e07c499e0e065a44336fcf8fd8200961cb4f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* pysideqmlregistertype.cpp: Fix compilation with QT_NO_CAST_FROM_ASCIIFriedemann Kleint2021-11-191-1/+1
| | | | | | | | | | | Properly convert noCreationReason, preparing for moving the code into a library. Task-number: PYSIDE-1709 Change-Id: I795bf0be22e192cd8abeed628e1a545429acb9cd Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 84ab9d13b4f912f67afa4e3da13f3957051ddcc3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PySide6: Fix build against Qt 6.2.1Friedemann Kleint2021-11-161-0/+1
| | | | | | | | | | | | | | | Fixes: 6.2.1/gcc_64/include/QtQml/6.2.1/QtQml/private/qtqmlcompilerglobal_p.h:54:10: fatal error: QtCore/private/qglobal_p.h: No such file or directory Amends 346a4a86fc2d7064e44c0766dd08374d652cdcc1. Add an include path for the QtCore private headers. Task-number: PYSIDE-1709 Change-Id: I3189d4d9fe05e038634af1d0ef7bc66c16be7aab Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 15763626e56fb7d495f56e77e4c8f730f560e2f5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add a QmlSingleton decoratorFriedemann Kleint2021-11-168-12/+95
| | | | | | | | | | | Add a simple decorator function that stores the type in a list for the QmlElement decorator to use singleton registration. Task-number: PYSIDE-1709 Change-Id: I075d583404bd60dc52b84c23a3d09e50d32a5a3a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 671f9ed73ee174fe2ba96d7a1c2b267455ef367e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PySide6: Fix documentation for QmlUncreatableFriedemann Kleint2021-11-161-8/+9
| | | | | | | | | | | | Add a blank line for code-block to work and fix the indentation. Amends a421aab61ad03afa595aa0ba7e53d84b1edbe892. Task-number: PYSIDE-1709 Change-Id: Idecb8a69b510191ab1ea27754d71eb94b2f6394a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 3c17a00f5494dbbe87d7628d4a38e34560808fc0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* 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) Task-number: PYSIDE-1709 Change-Id: Ifed3d31943acf163cee879a2842823e01950c6fd Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 74fa311186c9355b43af7c4e6812d14e4fde332c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add a QmlUncreatable decoratorFriedemann Kleint2021-11-159-5/+311
| | | | | | | | | | | | 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. Task-number: PYSIDE-1709 Change-Id: I0dd0c4c1e05e6e0ee6f22a6947b85546fc373fb9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit a421aab61ad03afa595aa0ba7e53d84b1edbe892) Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Remove QML includes from pyside.hFriedemann Kleint2021-11-114-12/+10
| | | | | | | | | | | | Forward-declare QQmlPrivate::RegisterType. This requires adding some includes in dependent modules. [ChangeLog][PySide6] pyside.h no longer includes QML headers. Change-Id: I7d7b703d46e45adbb714d817f05b5480b35d4a4c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 4d3b9da999a5ab194b79c9d2f5bcf985ea6d14cc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyPySide: Replace type patching by heaptype, 1(5)Christian Tismer2021-11-112-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PyPy does not allow patching of non-heaptypes. We did that trick for simplicity in the signature module where we created a `__signature__` attribute for types. This patch removes the type modification and uses our heaptypes, only. For other types, more work is needed. It also fixes the metatype for enums which was wrong. This is the first replacement of o PyType_Type * PyMethodDescr_Type * PyCFunction_Type * PyStaticMethod_Type * PyWrapperDescr_Type The patches will be replaced by heaptypes if possible, or we might use signatures in a shadow dict, instead. [ChangeLog][shiboken6] Remove type patching of PyType_Type and fix the meta type of enum. Task-number: PYSIDE-535 Change-Id: I221834661709c71ee9ed17b3d6cc293b87447ab7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 9c7d7a5d19b4a1f57d67694f03a90ddd3b3ff4a9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* mypy-support: Improve handling of slots, enum and PathLikeChristian Tismer2021-11-114-4/+8
| | | | | | | | | | | | | | | | | | | As a preparation of the move to Python enums, the types of enums are now reported as Python enum. This avoids certain errors in the .pyi files. The correct implementation will follow. PathLike is now correctly imported via os if necessary. slot() has corrected signature and reports a call method. [ChangeLog][shiboken6] The .pyi file generation was improved to have correct slot(), PathLike and better enum handling. Change-Id: I547de6a1203302f73826f27ee633e9de810f687b Fixes: PYSIDE-1520 Task-number: PYSIDE-1675 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit e1909dfdd4dcc0742600d04afcfb3017ae471a31)
* PySide6: Add a QmlAnonymous decoratorFriedemann Kleint2021-11-105-6/+68
| | | | | | | | | | | Split out a helper from the qmlElementMacro() to register (also preparing for uncreatable types) and add the decorator. Change-Id: I0f3ebf6f31c141083440abcc9f1acd227ce046d7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 4f57d4eb32df52838129547be60b1a75d3f3356c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix hang of test qinputdialog_get_test.pyFriedemann Kleint2021-11-101-3/+14
| | | | | | | | | | | | | | | After qtbase/851ed6f0b1014e5acabdc1f977979841d16ecc31, calling QCoreApplication::quit() no longer terminates QDialog::exec() when not in QCoreApplication::exec(). This means, TimedQApplication can no longer be used to terminate the test. Add a timer that closes dialogs instead. Task-number: QTBUG-98088 Task-number: QTBUG-98239 Change-Id: I3fa26f063a83fd1afeee557e8b6d3d250ec46ec6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 5b9320df2284b96dba4d5eec1857a797797187e6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Remove ShibokenGenerator::guessScopeForDefaultValue()Friedemann Kleint2021-11-1010-117/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move resolving of class fields and enum values as argument default values into AbstractMetaBuilder. Handling of static class field constants was spread between AbstractMetaBuilderPrivate::fixDefaultValue() and ShibokenGenerator::guessScopeForDefaultValue(). The former was handling it for arguments of non-primitive type only and not completely expanding namespaces. The latter was handling it for arguments of primitive types, too, but also added some code for non-static fields, which cannot be used as default arguments in C++. ShibokenGenerator::guessScopeForDefaultValue() was handling enum values for primitive and values, excluding macros by regex, but otherwise not checking if the term is really an enum value. Rewrite the code in AbstractMetaBuilderPrivate::fixDefaultValue() without regexes for clarity, let it check fields and enum values correctly via code model and fully expand namespaces. Add tests. Adapt the signature module to the now fully qualified signatures. [ChangeLog][shiboken6] When qualifying function argument default values for the generated code, shiboken no longer considers each identifier it cannot otherwise find as an enum value and no longer adds the class scope to it. This may require manually adding some replace-default-expression modifications. Task-number: PYSIDE-1691 Change-Id: Id4cd2ca1f91db8c1663d7fc31e4b4ef72a5690f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 2a7f16dccfa1986bb79d08c90ed2ef56133994e8)
* shiboken6: Introduce a test mode for the code modelFriedemann Kleint2021-11-103-3/+14
| | | | | | | | | | | | Add a flag that causes the AbstractMetaBuilder to not clear the code model after a run for testing purposes. As drive-by, clear out the code model scope, fully releasing the code model after building. Task-number: PYSIDE-1691 Change-Id: I883805f0ee1866ff8864811d9e29d17b181096bd Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 29d41de05abcfc1dbe3eb2125ab518655aecb326)
* shiboken6: Do not try to qualify Qt namespace constants in default argumentsFriedemann Kleint2021-11-101-0/+1
| | | | | | | | | | Amends 6c2c4c00bc38bc9dc7b3c2f82fa8b12053902e71. Task-number: PYSIDE-1691 Change-Id: I6c8d09d098d3767eb8a518cfcf582a25c715e4a1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit a207cc3105a1b40ad9659b694eefbe95752c96fd)
* shiboken6: Extend checks when not to fix a default valueFriedemann Kleint2021-11-104-26/+30
| | | | | | | | | | | | | | | | | | | Exclude numeric constants, boolean literals, initializer lists and similar to prevent scope lookups for them. Remove the conversion of integers to boolean literals from AbstractMetaBuilderPrivate::fixDefaultValue(), since the type name was misspelt ("boolean" instead of "bool") and bool constructs from integers anyways. Rename helper isNumericConstantt() to isIntegerConstant() for clarity. Amends 2efc3669d07f77a08e334cf37913017523b8099b. Task-number: PYSIDE-1691 Change-Id: If74858ed0a4f16653d73220f33c4a98254dc5173 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 6c2c4c00bc38bc9dc7b3c2f82fa8b12053902e71)
* shiboken6: Refactor resolving of inner container types in argument default ↵Friedemann Kleint2021-11-102-8/+50
| | | | | | | | | | | values Add an explanatory comment, rewrite without regexes and add a test. Task-number: PYSIDE-1691 Change-Id: Idfa5022016d16f29718042b4677f248d20418a22 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 8ab90a73c792bd20deced21bad878c349f758605)
* PySide6: Decouple pysideqmlregistertype.cpp from generated headersFriedemann Kleint2021-11-0910-442/+701
| | | | | | | | | | | | | | | | | | | | Split out QtQml_VolatileBoolType and QtQmlListProperty into separate files. QtQml_VolatileBoolType still requires the generated header and therefore needs to remain a static source of the QtQml module. In pysideqmlregistertype.cpp and the newly added pysideqmllistproperty.cpp, retrieve the required type objects by name lookup from libshiboken instead of accessing the arrays of the generated headers. With that, the generated headers are no no longer required and they can be moved to libpyside or another extension library at some point. Change-Id: I9bbc880c58e38d8a623723d64e56b16574a1eb86 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 1c16cad157eb6233c8d128567719d214c395b10e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Stabilize TestResolveType::testFixDefaultArguments()Friedemann Kleint2021-11-091-7/+11
| | | | | | | | | | | | Exclude the destructor when searching for the functions and add a check. Amends f863ce7cc68a4def0fe9929c7f50e4e101fd8a1e, Task-number: PYSIDE-1691 Change-Id: I2f3c679d75d36147a1d1fc10660442f1245acffd Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit f16c89d808dbdb819c452ddf581574a9862fe1a8) Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Add a test for fixing of default values in AbstractMetaBuilderFriedemann Kleint2021-11-095-10/+118
| | | | | | | | | | | | Extract it to AbstractMetaBuilder and add a test similar to the enum test added by 5888236a23f277e1f795052d5ed93a0430d834a4. Task-number: PYSIDE-1691 Change-Id: I636c1ec82486f84da9ccd4bf941054ec47d41290 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit f863ce7cc68a4def0fe9929c7f50e4e101fd8a1e) Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* PySide6: Add a __repr__ method for QQmlErrorFriedemann Kleint2021-11-052-1/+10
| | | | | | | | | This is handy for debugging QML. Change-Id: Ic9c98a27377416debaa41ab1f95b3b10db4f143d Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit a7a8138bae00ef1aecafed04a8ac265a9c6f07ff) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Handle PySets as function parametersFriedemann Kleint2021-11-056-7/+117
| | | | | | | | | | | | | | | | | | | | | | Python sets are iterable but not of sequence type. While the existing converter code from the templates uses iterators, the built-in check functions convertibleSequenceTypes()/checkSequenceTypes() assume a PySequence and would fail for PySets. Add new check functions convertibleIterableTypes()/checkIterableTypes() using iterators and use them for PySet. Add a test and a test for lists as a drive-by. [ChangeLog][PySide6] sets are now supported for functions taking a QSet. Task-number: PYSIDE-174 Task-number: PYSIDE-1666 Change-Id: I883869162e7dfa9cd0e1669f941fb7864f0cf825 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 391e47893c463da5b91024508b739e51ecdaaf45)
* Allow threads in QtGui.QTextDocument.print_Christian Tismer2021-11-051-1/+1
| | | | | | | | | | | | Reaction on a question on IRC (Vincent Michel @vxgmichel Nov 03 14:30) Change-Id: I979dc2ccb110835daec2904e3c62715deb9c7f08 Task-number: PYSIDE-803 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 3d903c91f6e00e8cff75e7cc8a0619008dd6c59f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Implement enum search by value in code modelFriedemann Kleint2021-11-054-23/+114
| | | | | | | | | | | | | | | | | | | | | | | | | Replace (currently unused) AbstractMetaBuilder::searchForEnumScope() by _ScopeModelItem::findEnumByValue() returning an enum and the fully qualified name. This function is intended for resolving enum values used as default values for functions taking int where the underlying enum is not known. As opposed to old code, all parts of a (partially) qualified name are checked for a match to ensure no mismatches of equally named values. Another advantage is that also enum values that are not in the type system are found. The function returns the fully qualified name (also including the enum name for non-class type enums). Task-number: PYSIDE-1691 Change-Id: I89ebfdf8435470c626cfdee4fc0d0738cc3fc195 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 8b414806b80683e162133338c4b3ca0816746aaa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Handle crash when passing arguments of wrong type in embedded applicationFriedemann Kleint2021-11-051-0/+3
| | | | | | | | | | | | When passing arguments of wrong type in the scriptableapplication example, PyRun_String() fails and a crash occurs (NameError: name 'AppLib' is not defined). Catch this and return nullptr to get at an error message. Change-Id: Ie22cf81ebb0c390bb31684eadf19b682e4487361 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 7d6ea931fdc0d919ac9fa5ddadeb931c2578151f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Store pointer enclosing scope in code model itemsFriedemann Kleint2021-11-042-0/+22
| | | | | | | | | | | | Store a flat pointer to the enclosing class in _ScopeModelItem. This is needed for implementing enum resolution in the code model directly. Task-number: PYSIDE-1691 Change-Id: Ic44edb5f121503990044faa4bc6db65220d81c51 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 559162e3c8126457b4d36f4b4a67e73971a06b8e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Store a pointer to base classes in the code modelFriedemann Kleint2021-11-043-16/+9
| | | | | | | | | | | | | Extend the struct _ClassModelItem::BaseClass by an optional ClassModelItem pointing to the class directly and populate it by the builder. This is needed for implementing enum resolution in the code model directly. Task-number: PYSIDE-1691 Change-Id: I1abce6cbb777384ccbb187e79c09b5cb9da1563b Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit d4b4b15965139f282797a053dc84903f431eb1fa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Make error message about invalid typesystem files more verboseFriedemann Kleint2021-11-041-2/+6
| | | | | | | Change-Id: I992bb8099268deaa4ab96ed55b0e28a6052648ce Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit ee1aa3ecdb91d42f0beb7c92f0867b2a7aea3605) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Fix some integer types in test type systemsFriedemann Kleint2021-11-031-5/+5
| | | | | | | | Task-number: PYSIDE-1703 Change-Id: I044687f19d0049b52f5410353080509a725652b0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 051409ddc20e925c85f6d89d2f86a06273313040) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix build with MSVC 19.29.30136Friedemann Kleint2021-11-032-4/+5
| | | | | | | | | | The POSIX type ssize_t was removed. Replace py Py_ssize_t. Fixes: PYSIDE-1703 Change-Id: I39d7b1df9cff2e9d5ad1290adb5a26745d8e5d24 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit f6cf8edabc76ac18d56a3a5b76e11e4f98df3f47) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>