aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* numpy initialization: Remove superfluous PyErr_Clear()HEADdevFriedemann Kleint3 days1-3/+1
| | | | | | | | | Amends dcbe4810a6d8abe5a870d45ee5f3e51a52a1ad76. Pick-to: 6.7 Task-number: PYSIDE-2404 Change-Id: Ib411094c6b3b430f7a84be957972d1e0c8ff94a8 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Add changelog 6.7.1Friedemann Kleint3 days1-0/+61
| | | | | | Pick-to: 6.7 Change-Id: Iec965feaa0645bd3ab012e5c4d854af1549a7d0e Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Fix class hierarchies not working with legacy qmlRegisterType()Friedemann Kleint3 days6-14/+108
| | | | | | | | | | | | | | | | | | | 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>
* PEP 697: Use the new type extension provision, finalChristian Tismer4 days3-19/+6
| | | | | | | | | | | | | | | | | | | The new embedded extra fields were not correctly addressed when a subclass of the meta type was used. This was fixed by using SbkObjectType explicitly instead of the type of an object which might be derived. This also explains the complexity of the Python API. The famous bug_825 is now fixed, too. Checked with Valgrind on Ubuntu. Task-number: PYSIDE-2230 Change-Id: Icf99ed6faab226c72bdd09f4c69018d958ede85e Fixes: PYSIDE-2676 Pick-to: 6.6 6.7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Revert "PEP 697: Use the new type extension provision, amended"Christian Tismer4 days3-33/+20
| | | | | | | | | | | This reverts commit adb609270e54177024fbcbd9aab7f168a7205dec. Reason for revert: The real fix is much simpler and complete. Change-Id: I07171bcd28fd3f9aa21ddde3130b755aecb62e7d Pick-to: 6.6 6.7 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken/Documentation: Remove parts describing old convertersFriedemann Kleint6 days1-58/+0
| | | | | | Pick-to: 6.7 Change-Id: I9cca5bfffa06194bacea0363e3fc28f35e077b2c Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* libshiboken: Refactor base type visitorFriedemann Kleint6 days2-170/+77
| | | | | | | | | | | | | | | | Replace the walkThroughClassHierarchy() function using HierarchyVisitor-derived class by a template function walkThroughBases() taking a predicate. The name walkThroughClassHierarchy() was misleading since it really only visits the first level of base classes relevant for C++ object allocation. Make the functions using it static except getNumberOfCppBaseClasses() which is used outside basewrapper.cpp. Change-Id: Id3b7e81d6d6a6c4a4eae7322ec1a9f151f5d5ae1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide: Fix QML ListPropertyShyamnath Premnadh6 days3-10/+129
| | | | | | | | | | | | - 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>
* File System Explorer: Fix app icon when launched from another directoryFriedemann Kleint6 days1-1/+1
| | | | | | | | | Prepend path, fixing: qt.svg: Cannot open file '../FileSystemModule/icons/app_icon.svg', because: No such file or directory Pick-to: 6.7 Change-Id: I82876af19a63110f46f85222fb2bfb92ec8f1965 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* libshiboken: Clarify explanatory comment of is_user_type flagFriedemann Kleint6 days1-1/+2
| | | | | Change-Id: I78b5d065985002342870ad2538a5db4684f327f8 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Enable supressing warnings about signal disconnection failureFriedemann Kleint6 days1-2/+2
| | | | | | | | | | Use PyExc_RuntimeWarning instead of PyExc_RuntimeError. Amends d7aa15abe25bd71ea19180743ce9b41e0b788520. Fixes: PYSIDE-2705 Pick-to: 6.7 Change-Id: I04de3eb92468b996e50270b2268e08b3b819e802 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* shiboken6: Simplify code in argument pointer conversionFriedemann Kleint6 days1-8/+4
| | | | | | | | | | | | | Shiboken::Object::newObject() ignores the type name passed in when exactType=true, do not generate code to determine and allocate the type name in that case. Amends e254c3c2aa140016e298107a0297885234abfde7. Pick-to: 6.7 Task-number: PYSIDE-868 Change-Id: Icae92bab0ab0358c93601d4f57180fb1bf0c4269 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* CI: Add VC_SCRIPT env variable for setting MSVC 2022 envSimo Fält6 days1-0/+7
| | | | | Change-Id: I67ebac2d660c084f29ec2f6be0dc8cc2503e3976 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Lazy-initialize the dependency graphFriedemann Kleint11 days5-26/+98
| | | | | | | | | | | | | | | | | | | | | Change the dependency graph in the BindingManager from PyTypeObject *-based nodes to nodes which are wrapping the TypeInitStruct * and hashing on the type name. This allows for creating the types on demand when walking along the edges and calling the type discovery functions. This only creates the required types instead of the entire lazy group of polymorphic classes. The graph is now populated by from the generated code using a function named initInheritance() instead of dynamically from introduceWrapperType. Task-number: PYSIDE-2404 Task-number: PYSIDE-2675 Pick-to: 6.7 Change-Id: I030d4957c221f4defbb7cc52a6927287b70d9864 Reviewed-by: Christian Tismer <tismer@stackless.com>
* libshiboken: Extract a template base class for the dependency graphFriedemann Kleint11 days1-19/+24
| | | | | | | | Task-number: PYSIDE-2404 Task-number: PYSIDE-2675 Pick-to: 6.7 Change-Id: I4121275e3a89a60cdac38a02bf1cf41619270946 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Revert "Lazy Load: Fix polymorphic classes by identifying lazy groups"Friedemann Kleint11 days4-234/+21
| | | | | | | | | | | | | This reverts commit 9f09e1dda0f167432110a22db6f9a5accf800734. Let's try to make the dependency graph lazy. Revert the change, excluding the test bits. Task-number: PYSIDE-2404 Task-number: PYSIDE-2675 Pick-to: 6.7 Change-Id: I0d28678f09834a09255dce28862e0970d68ac9fa Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* libshiboken: Refactor type discovery graph handlingFriedemann Kleint11 days3-34/+51
| | | | | | | | | | | | | | | Replace BindingManager::.resolveType() by a new function BindingManager::findDerivedType() which does exactly that and returns a pair of type/cptr instead of modifying the in-parameter. As a drive-by, remove a unused variable in BindingManagerPrivate. Task-number: PYSIDE-2404 Task-number: PYSIDE-2675 Pick-to: 6.7 Change-Id: I5b39ea8370b0fc1a196feb6934306f1f1dfeb8b3 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Documentation/QRC tutorial: Fix error in .qrc file snippetFriedemann Kleint11 days1-1/+0
| | | | | | | Pick-to: 6.7 6.5 Fixes: PYSIDE-2700 Change-Id: Icc1085cb51508cce35f0722219c9ae395f0b7bc5 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* PEP 697: Use the new type extension provision, amendedChristian Tismer11 days3-20/+33
| | | | | | | | | | | | | | | | The new embedded extra fields were not correctly initialized. For that, an extra meta class was necessary. This bug could not be seen on macOS, probably due to other memory allocation rules. The famous bug_825 is now also fixed. Change-Id: I44ee3b363dda77c4e21951fe2a5385c0368df0cb Task-number: PYSIDE-2230 Fixes: PYSIDE-2676 Pick-to: 6.6 6.7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QtAsyncio: Let examples handle SIGINTAdrian Herrmann11 days2-2/+2
| | | | | | | | | | Make the two QtAsyncio examples handle the Ctrl + C interrupt for a more natural user experience. Pick-to: 6.7 Task-number: PYSIDE-769 Change-Id: I1dd87227fd1f1b70684476087f776ccc82da9571 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QtAsyncio: Improve readability of _stepAdrian Herrmann11 days1-10/+9
| | | | | | | | | | Improve the readability of the QAsyncioTask._step function; avoid nested try/except blocks. Pick-to: 6.7 Task-number: PYSIDE-769 Change-Id: Ibb82c50cf93b084b30dd2a5abcc0197ae25802e0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Fix leaking tuples in introduceWrapperType()Friedemann Kleint12 days5-50/+60
| | | | | | | | | | | | | | | | | When calling introduceWrapperType(), the generated code creates and leaks a tuple of base types if there are base classes. When there are no base classes, a tuple (containing SbkObjectType) is created and leaked within introduceWrapperType(). To fix this, generate the complete tuple including SbkObjectType in the generated code and remove the base type parameter to introduceWrapperType(). Pick-to: 6.7 Task-number: PYSIDE-1617 Change-Id: Ib3bec8e6b94bea14a46df826667373d3f859dfd5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Documentation: Add QtQml.ListPropertyFriedemann Kleint12 days3-9/+34
| | | | | | | Pick-to: 6.7 Task-number: PYSIDE-2698 Change-Id: If9b9af49bb351fcb4e2355277ff84bd0936b5033 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Lazy Load: Fix polymorphic classes by identifying lazy groupsFriedemann Kleint13 days5-21/+250
| | | | | | | | | | | | | 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>
* shiboken: improve the display of disassembleFrameChristian Tismer13 days1-6/+16
| | | | | | | | | | Some more info is displayed, especially the current file name which is sometimes not obvious (frozen modules). Task-number: PYSIDE-2675 Change-Id: Iceb97fb1a28da2cf0ef9e28ff6bd158a3bfb2e88 Pick-to: 6.7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add some missing classesFriedemann Kleint13 days29-5/+125
| | | | | | | | | | | | Identified by the script added by 1251a23cfd13bb0652f38ef3b36087034f552d57. [ChangeLog][PySide6] A number of missing classes have been added. Task-number: PYSIDE-487 Pick-to: 6.7 Change-Id: Ia62aab2578d46f00540856557474bc394669613f Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Documentation: Fix ClassInfo to be a proper decoratorFriedemann Kleint13 days1-7/+5
| | | | | | | Pick-to: 6.7 Task-number: PYSIDE-1106 Change-Id: I298769db5455368fca6890571546d4cf74ace957 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* QtAsyncio: Round handle timeoutsAdrian Herrmann13 days1-1/+2
| | | | | | | | | | | | Handle timeouts should be rounded up or down instead of only up as happens with a plain int() call. Otherwise, a timeout of e.g. 0.9 would be handled as 0, where 1 would be more appropriate. Pick-to: 6.7 Task-number: PYSIDE-2644 Task-number: PYSIDE-769 Change-Id: I19585010c3e007afb6ae83750e4b6ffc9beb5961 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* QtAsyncio: Fix tasks with loop not cancellingAdrian Herrmann13 days2-0/+68
| | | | | | | | | | | | | | | 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>
* shiboken6: Generate Python override code for added virtualsFriedemann Kleint14 days18-21/+222
| | | | | | | | | | | | Introduce "Python override" as a special type of user-added function which will cause a function calling a Python override into the native wrapper. This can then be called from a virtual that has a signature which cannot be handled in Python. Fixes: PYSIDE-2602 Pick-to: 6.7 Change-Id: I5fc44ebe3f585078e87d3230d5e6f4faa67a4ee1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Introduce new position for code injection into virtual methodsFriedemann Kleint14 days4-1/+11
| | | | | | | | | | Make it possible to inject code before the Python override is called. Task-number: PYSIDE-2602 Pick-to: 6.7 Change-Id: I0e5b4ced34ae8b41df5acdb34912b853f60b372f Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shibokenmodule: Expose dumpTypeGraph(), dumpWrapperMap() from the binding ↵Friedemann Kleint14 days5-34/+102
| | | | | | | | | | | | | | | | | | manager This is helpful for gaining some insight into the instantiated wrappers and registered types. Move the existing graph generating code out of the graph class and format the nodes with a short name and tooltip and expose it as dumpTypeGraph(). Similarly, rewrite expose showWrapperMap() to use streams and expose it as dumpWrapperMap(). Pick-to: 6.7 Change-Id: I5cff442b7285388403dcf1c9f96fa8808c7b2d05 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Long live scanqtclasses.py!Friedemann Kleint2024-04-191-0/+122
| | | | | | | | | Add a script which scans C++ headers and typesystem files and prints missing classes. Task-number: PYSIDE-2620 Change-Id: Ibd2d1aab8debc19e72d9847af180fd425c17db9d Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* pyi: avoid ellipsis on classes with attributesCristián Maureira-Fredes2024-04-191-1/+1
| | | | | | | | | | | this ammends 8b5b0458efdbaa933c6513cd666d62962beb0edb Pick-to: 6.7 6.6 6.5 6.2 Fixes: PYSIDE-2665 Task-number: PYSIDE-2263 Change-Id: I9c5ebe8622e29cb1e0ac8592409c6b9d195e7aa9 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* pyi: check for imported types in return statementsCristián Maureira-Fredes2024-04-191-0/+5
| | | | | | | | | | | | With definitions like: def method(self, ...) -> [xxx]: we were not checking the content after '->' for types that needed to be imported in the file. Fixes: PYSIDE-2686 Pick-to: 6.7 6.5 6.2 Change-Id: I1215b5bd587d09be6b91f6bfa212933c3e02a6fa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix missing NoneType import, amendedFriedemann Kleint2024-04-191-1/+1
| | | | | | | | | | | Calls are not supported type expressions. Amends 5b964d00b85ec0175214ace7c06a560447bf1b5. Fixes: PYSIDE-2685 Task-number: PYSIDE-2278 Task-number: PYSIDE-2284 Pick-to: 6.7 6.5 Change-Id: Ia8ea4c15980ff5a102980c689a5164f6920fae95 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Introduce verbose switching for the debug operatorsFriedemann Kleint2024-04-192-7/+32
| | | | | | | | | | Add Shiboken::debugVerbose and Shiboken::debugBrief iostream manipulators to control the verboseness of the debugPy(Type)Object structs. Make brief the default. Pick-to: 6.7 Change-Id: I4d29f730470eacb328c886cd142472798e21fd10 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Fix warnings about unused init functionsFriedemann Kleint2024-04-191-5/+5
| | | | | | | | | | | Amends 5b8ce393310ed9b6ffa4b0add29d1bb164e37baa, which broke a condition setting AbstractMetaClass::hasNonPrivateConstructor which needs to take into account copy constructors. Pick-to: 6.7 Task-number: PYSIDE-2602 Change-Id: Iba4a8070a984a5306fe5c73bf77bee0777719bb3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Documentation: Fix change describing address sanitizer usageFriedemann Kleint2024-04-191-1/+1
| | | | | | | | Amends 83a93d243dbc1ef6679ee8ac3a35184a6edc43d9. Pick-to: 6.7 Change-Id: Iedb3f4623b3ce487e750b5eacfa42c0771d4f7cc Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Prepare for [[nodiscard]] QFile::openFriedemann Kleint2024-04-192-5/+11
| | | | | | | | Check the return value. Pick-to: 6.7 Change-Id: Iccbdbc033e25ee997c3d0904d8af0903c0dc319e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Tooling: Add pyside6-balsamuiShyamnath Premnadh2024-04-196-2/+36
| | | | | | | | | | - Add documentation for the tool - Add a screenshot of the tool Pick-to: 6.7 6.6 6.5 Task-number: PYSIDE-2629 Change-Id: I63d1d7e65d92ec37012ce40bb319dfeef9c9695b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Examples: Fix contactlist applicationShyamnath Premnadh2024-04-181-1/+2
| | | | | | | | | - Application breaks because deleting engine before calling app.exec_(). Pick-to: 6.7 6.6 6.5 Task-number: PYSIDE-2206 Change-Id: Ifb049788227dd19b851babc7ed7c00c1609d01db Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* libshiboken: Remove unnecessary std::string usageFriedemann Kleint2024-04-181-1/+1
| | | | | | | | | Amends 7accf7c3042e3f0680fa0615a0f13b54d28a0efd. Pick-to: 6.7 Task-number: PYSIDE-2404 Change-Id: I80db321cb770ba2496e24520970ed519925ecffc Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* pyside6-project: Add a rule for pyside6-qsbFriedemann Kleint2024-04-182-1/+8
| | | | | | | Pick-to: 6.7 Task-number: PYSIDE-2629 Change-Id: I46303c172bb82654186def51908317c269c7c5e7 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Tooling: add pyside6-balsamShyamnath Premnadh2024-04-186-3/+83
| | | | | | | | | - Also add the relevant documentation Pick-to: 6.7 6.6 6.5 Task-number: PYSIDE-2629 Change-Id: Ic2e7798a5f0ff7015cb87089dda2420ed6327ca2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Tooling: Add pyside6-qsbShyamnath Premnadh2024-04-187-4/+65
| | | | | | | | | | | - Analogous to the qsb tool in Qt - Add pyside6-qsb tool to the documentation - Update developer documentation Pick-to: 6.7 6.6 6.5 Task-number: PYSIDE-2629 Change-Id: I93058ebb2864491e951f4f828d703d8893fbcbe7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Documentation: Add instructions for using address sanitizerFriedemann Kleint2024-04-181-0/+13
| | | | | | Pick-to: 6.7 Change-Id: I851ffc5a9d421bb3a227594db691f67694ca042a Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Remove pyinstaller from requirements.txtFriedemann Kleint2024-04-181-3/+0
| | | | | | | | It is no longer available on some COIN nodes on Windows. Pick-to: 6.7 Change-Id: I3fc181b81343bfe953682d6d8c9e2593f4114061 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Documentation: Fix warning about ambiguous link to APIFriedemann Kleint2024-04-181-1/+1
| | | | | | | | | | | | | Use "pyside-api" as in api.rst, fixing: index.rst 102 WARNING: more than one target found for 'any' cross-reference 'api': could be :doc:`API Docs` or :py:meth:`PySide6.Qt3DRender.QGraphicsApiFilter.api` or :py:meth:`PySide6.Qt3DRender.QRenderCapabilities.api` or :py:meth:`PySide6.QtWidgets.QRhiWidget.api` Pick-to: 6.7 6.5 Change-Id: I813ab96bc5afb88e8a3e4dd936bbcd2c80b189c5 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Documentation: Ensure deterministic order of function overloadsFriedemann Kleint2024-04-171-3/+8
| | | | | | | | | Sort by argument count in addition to name to put the simplest overloads first and use stable sort to get the order of the declaration. Pick-to: 6.7 Change-Id: Ib02fce2c03865713d2d4c457e578a668f04f1ca4 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>