aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor
Commit message (Collapse)AuthorAgeFilesLines
* shiboken/Documentation: Remove more C++ -specific sections from the WebXML ↵Friedemann Kleint2024-12-171-4/+7
| | | | | | | | | | | module descriptions Complements 9bd0967d9b3f38ea7959fb00aa28a5ee1a1d0932. Task-number: PYSIDE-1106 Pick-to: 6.8 Change-Id: I414d4bf672a61f4e54720ea7ef6f6706a4e09329 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken/Documentation: Remove C++ -specific sections from the WebXML module ↵Friedemann Kleint2024-12-131-1/+33
| | | | | | | | | | | | | descriptions Read the description into a QByteArray and remove C++ -specific sections. This applies to modules for which PySide does not have a description file. Task-number: PYSIDE-1106 Pick-to: 6.8 Change-Id: I170fc155a94f45778331b820614dd2e34f10867f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6/Documentation: Prominently display QML typesFriedemann Kleint2024-12-135-32/+29
| | | | | | | | | | | | | | | | | | | Previously the link to the QML types list (Qt web documentation) was automatically inserted into the last paragraph of the module description. This only had an effect when no PySide module description was present. Otherwise, it had to be manually added to the module description which was overlooked for some modules. To fix this, extend the module documentation obtained from the doc parsers by the URL to page and format it as a separate section preceding the class list. Remove the QML types from the PySide module descriptions. Pick-to: 6.8 Task-number: PYSIDE-1106 Change-Id: I0b107a81b239405c0258ecff924aef87472f13b0 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Remove unused code from the doc parsersFriedemann Kleint2024-12-135-49/+0
| | | | | | | Pick-to: 6.8 Task-number: PYSIDE-1106 Change-Id: Ib276e2cb6c6d3db14e7c65e7e464dae4a5be3d8b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix trailing empty linesFriedemann Kleint2024-12-1319-24/+0
| | | | | | Pick-to: 6.8 Change-Id: I1a5964463f703ade0657816cb974206355a5ae5b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6/Documentation: Fix abuse of the TypeSystem::Language enum in ↵Friedemann Kleint2024-12-098-34/+58
| | | | | | | | | | | | | DocModification DocModification only used 2 values from TypeSystem::Language (native/target), which match the native/target values of enum Documentation::Format. Move the enumerations from class Documentation to a global header and use them in DocModification for consistency. Pick-to: 6.8 Change-Id: I154f2208b4d834fed569555ef4c0579502bb32f7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix crash instantiating smart pointer typesFriedemann Kleint2024-12-091-1/+45
| | | | | | | | | | | | | | For a smart pointer to a derived class, the smart pointer to the base class needs to be generated first for the conversion to the base class to work. Topologically sort instantiated smart pointers by base classes. Fixes: PYSIDE-2946 Task-number: PYSIDE-454 Pick-to: 6.8 Change-Id: If7be39e72312f8fe61ef7fbc0b351e070894d22e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Prepare the graph used for topological for sorting classes ↵Friedemann Kleint2024-12-092-58/+89
| | | | | | | | | | | | | | | | | | | without operator==() The graph used an array of Node to represent edges, which is suitable only for small classes that have operator==(). Change the internal representation to use indexes for edges instead of the node classes and add an API for adding edges by index. Rewrite the visit() algorithm to create an index list instead of a node list. Move the Node from NodeEntry to a separate node list, which allows for copying it directly from the node list passed in. Task-number: PYSIDE-2946 Task-number: PYSIDE-454 Pick-to: 6.8 Change-Id: I7becd5caef226f50b77f5def2a62a2620d39ef8e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Prevent repetitive searches for the smart pointer pointee classFriedemann Kleint2024-12-052-0/+8
| | | | | | | | | | | Move finding of the smart pointer pointee class from the generator into ApiExtractor. Pick-to: 6.8 Task-number: PYSIDE-2946 Task-number: PYSIDE-1397 Change-Id: I622ce628f46bbcf07fa9690bc4438d8726fc5594 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Refactor class Graph for topologically sortingFriedemann Kleint2024-12-051-7/+4
| | | | | | | | | | | | - Avoid topologically sorting lists < 2 elements - Use algorithm - Assign enumeration type (Qt guide lines) Pick-to: 6.8 Task-number: PYSIDE-2946 Task-number: PYSIDE-1397 Change-Id: I3b45ff7fc6782b920d3192a11fab5b3dac133a6f Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Add a documentation file hint to complex type entriesFriedemann Kleint2024-11-288-36/+92
| | | | | | | | | | | | | | | | | | | | Complements ad5eb64daaaa1b927bcbf9e568738f417fef845f. Add a doc-file attribute to complex type entries (object/value/namespaces) like it was done for enums and free functions by ad5eb64daaaa1b927bcbf9e568738f417fef845f. This is mainly intended for namespaces that can be extended by other modules. Change the functions to parse WebXML to accept lists of files. Improve the error message about not finding qdoc files. Pick-to: 6.8 Task-number: PYSIDE-2918 Task-number: PYSIDE-1106 Change-Id: I2811e0715b7f44a4461876019580295f5af4ea06 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Documentation: Use function parameter names from WebXML/qdoc when they are ↵Friedemann Kleint2024-11-216-44/+80
| | | | | | | | | | | | missing In some cases, the Qt headers do not have parameter names. Use the ones from the WebXML documents in that case. Pick-to: 6.8 Task-numer: PYSIDE-1106 Change-Id: I719a4fb09b9fbef9fc734036e3f53c02376a5d5f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* limited api: Remove PyTuple_GET_ITEM, PyTuple_SET_ITEM, and PyTuple_GET_SIZE ↵Cristián Maureira-Fredes2024-11-081-2/+2
| | | | | | | | | | | macros Removing old macros for compatibility with the limited api, and refactoring some of their usages Change-Id: I33954199d2ef9884c64b963863b97aed851c440f Pick-to: 6.8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* limited api: Remove PyList_GET_ITEM, PyList_SET_ITEM and PyList_GET_SIZE macrosCristián Maureira-Fredes2024-11-081-3/+3
| | | | | | | | | Removing old compatibility macros for the initial limited api implementation. Change-Id: Iced149450bd9bda18e43ac0acea0061cdcdb211e Pick-to: 6.8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* limited api: replace PySequence_Fast_GET_ITEM by PySequence_GetItemCristián Maureira-Fredes2024-11-081-2/+4
| | | | | | | | | | | | | | | | | PySequence_Fast_GET_ITEM is defined as: (PyList_Check(o) ? PyList_GET_ITEM(o, i) : PyTuple_GET_ITEM(o, i)) and when using the Limited API we re-define the _GET_ITEM macro to be the _GetItem function, and considering this is our standard use case, the macro could be replaced directly by the function. However, the function returns a new reference, so we need to manually drecrease a reference after the usage, to avoid reference counting issues. Change-Id: If361e80b9e40b033e009ad46b2b9430e5b4c8eaa Pick-to: 6.8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6/Documentation: Nest inner classes' pages into outer classesFriedemann Kleint2024-10-254-0/+39
| | | | | | | | | | | | | | | | | | | Referencing inner classes like QByteArray::FromBase64Result did not properly work due to the inner classes being generated to separate documentation pages. Change this such that inner classes are nested into the documentation of the outer class. The problem though is that this causes excessively long pages for Qt modules with namespaces like Qt3D/QtDataVisualization (all deprecated). For them, a type system attribute is added to keep the old behavior. Pick-to: 6.8 Task-number: PYSIDE-1106 Change-Id: I51330afa739027c28930af3902b83b1e762b92ef Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Restrict warning about QT6_DECL_NEW_OVERLOAD_TAIL to current moduleFriedemann Kleint2024-10-041-5/+6
| | | | | | | | | | The warning was printed for each module including the class; print it only when code is to be generated. Amends c512b506b565578770c671b11afb78427ca8d012 . Change-Id: Ie5e3683a646a9634caaaa0a5e90a6f147174485e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Handle QT6_DECL_NEW_OVERLOAD_TAIL within shiboken6Friedemann Kleint2024-10-023-7/+52
| | | | | | | | | | | Strip parameters of type Qt::Disambiguated_t similar to QPrivateSignal (see qtbase/0a3ff697380555538a0d035b768ddf10f772b55a). As this becomes more and more common, it saves the work of declaring those functions. Change-Id: I973b47ddcfa3ac40795885da0f4001a95ad108fd Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6/Documentation: Introduce a doc-package typesystem attributeFriedemann Kleint2024-09-276-7/+79
| | | | | | | | | | | | | | | Make it possible to specify an alternate doc-package for locating the WebXML files generated by qdoc. For example the documentation of the QtMultimediaWidgets module is generated into the QtMultimedia module. This became a problem after the module split qttools/c51980bb0d9658f2ade4de1900d07b08e88cb52d. Task-number: QTBUG-77650 Task-number: PYSIDE-2620 Task-number: PYSIDE-1106 Change-Id: I09ab50f7e3b56c0a7d0f2e94e593a8d5e83b2001 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6/Documentation: Fix WebXML module documentation nameFriedemann Kleint2024-09-271-8/+9
| | | | | | | | | | Complements 752c1161d75f8c01e2c6c6b07ba02e9a62e65b10. Task-number: QTBUG-77650 Task-number: PYSIDE-2620 Task-number: PYSIDE-1106 Change-Id: If6865f2db8ebc8fb40894603c57ec13e7b26bced Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6/Documentation: Add source file to the Documentation classFriedemann Kleint2024-09-275-12/+29
| | | | | | | | | | | This is useful for resolving images. Use it for the module documentation. Task-number: QTBUG-77650 Task-number: PYSIDE-2620 Task-number: PYSIDE-1106 Change-Id: Ib7843541af75aa179ac7d862fc30351f69f550ed Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6/Documentation: Fix resolving images in the overview pagesFriedemann Kleint2024-09-272-4/+32
| | | | | | | | | | | | | | | | | | | | | | After the split of the WebXML output directories by qttools/c51980bb0d9658f2ade4de1900d07b08e88cb52d, the images of the overviews were no longer found by the previous algorithm. To fix this, move the copying of images from the WebXML output directories to doc/base from QtXmlToSphinx to QtDocGenerator. QtXmlToSphinx now merely collects image hrefs and the context and QtDocGenerator later resolves them in one go, first trying to resolve relative to the source documents. The old algorithm resolving by context/module is then only a fallback for rare cases of injected documents. Complements 752c1161d75f8c01e2c6c6b07ba02e9a62e65b10. Task-number: QTBUG-77650 Task-number: PYSIDE-2620 Task-number: PYSIDE-1106 Change-Id: Icd192bf2a9e235c923e3f90a3a5554c2314f94f2 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6/Documentation: Return documention source file from the DocParser ↵Friedemann Kleint2024-09-265-12/+15
| | | | | | | | | | | (doxygen/qdoc) As a drive-by skip private fields in doxygen instead of quitting. Task-number: PYSIDE-2620 Task-number: PYSIDE-1106 Change-Id: Ieb488e6168d736aa1b11e2737eb118fdb3f485cd Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6/Clang parser: Remove -DQT_NO_INT128 for MSVCFriedemann Kleint2024-09-121-1/+0
| | | | | | | | | | It should now be disabled in qtbase by 2f4680d14308e02bd52abbb81b6c9ae68febe818. Task-number: QTBUG-128675 Task-number: PYSIDE-2620 Change-Id: I2a3052bd22a208e91a1eb2cc5f46f5131459b7cb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Fix some clang-tidy warnings in generated codeFriedemann Kleint2024-09-111-4/+4
| | | | | | | | | | | - Remove inline from inlined functions, fixing [readability-redundant-inline-specifier] - Do not call parameterless base constructors, fixing [readability-redundant-member-init] - Use nullptr [modernize-use-nullptr] - Remove unneeded reinterpret_cast<>() - Fix some warnings about uninitialized variables [cppcoreguidelines-init-variables] Change-Id: I38e9ddc192556cf0d5770bd858b240f013c97c79 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Documentation: Adapt paths for 6.8Friedemann Kleint2024-09-053-9/+37
| | | | | | | | | Adapt to qttools/c51980bb0d9658f2ade4de1900d07b08e88cb52d. Task-number: QTBUG-77650 Task-number: PYSIDE-2620 Change-Id: Icc083c9b3d768093f45caa5d7a3c54aec5eb2d4f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Adapt to 6.8Friedemann Kleint2024-09-051-0/+1
| | | | | | | Task-number: PYSIDE-2620 Task-number: QTBUG-125719 Change-Id: I6efeb1770c9bd7cddc3dbd91ca6294b9fddc9cc9 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Support compiler options for disabling optimizationsChristian Tismer2024-08-011-1/+1
| | | | | | | | | | | | | | | | | | | The fullname field has been removed, and the signature structures can be optionally compressed. Add a build option for switching these and future compiler features off. Combinable flags: --unoptimize=fullname --unoptimize=compression --unoptimize=folding (to be implemented) or just --unoptimize=all Task-number: PYSIDE-2701 Change-Id: I605dc810542ce99f99d9a6b6432e5feae09273b4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Improve formatting of function signaturesFriedemann Kleint2024-08-012-2/+3
| | | | | | | | | | Do not add space before parameter names in case of pointers/references, for example: "foo(const QString & name)". This mainly affects error messages and comments in generated code. Pick-to: 6.7 Change-Id: I1c00d9b731206e1a24b3d25689851276596121be Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Do not add space when formatting minimal signaturesFriedemann Kleint2024-07-311-2/+0
| | | | | | | The condition was apparently the wrong way around. Change-Id: I93c489d48206cffbf7fe023ef2defe1ae861b53e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix non-unity build compilation error: anystringview_helpers.hFrancisco Boni2024-06-291-0/+1
| | | | | | | | | | | Fixes non-unity build compilation error in anystringview_helpers.h (missing qsizetype). Amends 16098891ad21c2ba984582a1de770e49f961f22b. Pick-to: 6.7 Task-number: PYSIDE-2792 Fixes: PYSIDE-2804 Change-Id: Ia6d08ce162c66464da5325f53fa564c7a3c6cce6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Refactor registerConverterName() streamable helperFriedemann Kleint2024-06-262-0/+23
| | | | | | | | | | | | | Move the functionality to register partially qualified names (previously in helper registerConverterInScopes() and elsewhere), to register names with indirections, and to use typeid() into the streamable class controlled by flags. Simplify the code accordingly. This requires adding indexOf() to the helpers for QAnyStringView. Task-number: PYSIDE-2792 Change-Id: I7af0d8333e3c417e03f6615b471dc7220c95d388 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Fix clang-tidy warning about using std::any_of instead of loopsFriedemann Kleint2024-06-244-72/+85
| | | | | Change-Id: Ic85973e29870456bf422a3ac75fd9d68524ad886 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix static analysis warningsFriedemann Kleint2024-06-2429-105/+106
| | | | | | | | | | | | | | | | | | - Initialize variables - Use auto * - Use const references to prevent copies - Remove const from function returns - Remove repeated return types - Fix else after return/throw - Make functions const/static where appropriate - Add missing override - Fix some invocations of static methods - Fix some int types (qsizetype) to avoid lossy conversions - Minor cleanups - Remove some macros Change-Id: I414b8451703b136f135383289de49e743e84fb3a Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix an ASAN leak in traverseFunction()Friedemann Kleint2024-06-123-74/+69
| | | | | | | | | | Return a shared ptr to function from AbstractMetaBuilderPrivate::traverseFunction(), avoiding leaks when a function is not used. Pick-to: 6.7 Change-Id: I2fd215a25301fa6773f589bb3f085cf4c1febdd7 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix non-unity buildFriedemann Kleint2024-06-101-0/+1
| | | | | | | | | | | | Amends c7c7dc9ba6da83f26d2ecda33a9af58d3f8f5f20, 11afd18d34c17a345315d226b6124dc1fd31d12c and 28d04cae204881392ddc0826a570d05ba82c5ee0. Pick-to: 6.7 Task-number: PYSIDE-2404 Task-number: PYSIDE-2768 Change-Id: I7caed5c4bddfaa594dfb692d5e087e0c88208e3e Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Make it possible to create smart pointer names in the global ↵Friedemann Kleint2024-06-071-0/+9
| | | | | | | | | | | namespace Previously, named instances of smart pointers from the std namespace would always end up in namespace std, too. Make it possible to prefix the names by "::", indicating global namespace. Change-Id: I45d7d7defa156730ed80c4b21bcc3c515b5ece74 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Documentation: Move image resolving from QtXmlToSphinx to QtDocGeneratorFriedemann Kleint2024-06-062-0/+10
| | | | | | | | | | | | Move PySide6-related logic to the doc generator. Prepares for adapting to qttools/c51980bb0d9658f2ade4de1900d07b08e88cb52d. Task-number: QTBUG-119500 Task-number: PYSIDE-2620 Change-Id: I994bd3c159654e133d71ee7fac3725ffed47c52c Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* pyi: Fix smart pointer signaturesFriedemann Kleint2024-06-042-0/+15
| | | | | | | | | | | | | | | | Use the smart pointer specialization name if one can be found. Move findSmartPointerInstantiation() from CppGenerator to ApiExtractorResult and add a CppGenerator::pythonSignature() wrapping around AbstractMetaType:::pythonSignature() (which does not know about instantiations). [ChangeLog][shiboken6] Signatures of smart pointer parameters have been fixed. Task-number: PYSIDE-2768 Pick-to: 6.7 Change-Id: I99c54067366dd98c2e23f94192ee220f05f14e23 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Fix type names of smart pointers in namespaces in the cppApi arrayFriedemann Kleint2024-06-046-31/+13
| | | | | | | | | | | | | | | | | | | | | Set the correct parent entry on the smart pointer instantiation type entry. This allows for removing a special case in the source generator and namespaces will be correctly reflected. It is also the prerequisite for a follow-up change making it possible to use global namespaces for smart pointers in namespaces. Also remove the setting of the enclosing class and the associated flag InheritTemplateFlag::SetEnclosingClass from AbstractMetaBuilderPrivate::inheritTemplate(). Instead, always set the enclosing class in ApiExtractorPrivate::addInstantiatedSmartPointer() instead, depending on the type of the parent entry. Task-number: PYSIDE-2404 Task-number: PYSIDE-2768 Pick-to: 6.7 Change-Id: I921e255c2ceaeb9eaf84e5ac1c4953bcf7d09b57 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6/compilersupport: Fix finding the clang include directory on ↵Friedemann Kleint2024-06-031-1/+10
| | | | | | | | | | | | manylinux_2_28_x86_64 llvm-config --libdir reports /usr/lib64 on manylinux_2_28_x86_64 whereas the includes are under /usr/lib/clang/../include. Fixes: PYSIDE-2769 Pick-to: 6.7 Change-Id: I217d6bf62bbd2e63258b91d64fb9c0fe5f1ff052 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6/compilersupport: Use qCWarning() consistentlyFriedemann Kleint2024-06-031-8/+10
| | | | | | | Task-number: PYSIDE-2769 Pick-to: 6.7 Change-Id: I73fee8b893d8167ee3acd99ef39ae25f8d388de1 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Disable Clang MSVC option for C++ 20Friedemann Kleint2024-05-275-8/+12
| | | | | Change-Id: If7dafe4e23727f822e26307bedbb46bfaf9c0655 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* shiboken6: Exclude enums from type checks for function arguments of type ↵Friedemann Kleint2024-05-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | sequence Enums have an __iter__ attribute, which causes them to match in Shiboken::checkIterable(). For example, when passing a string and QDir::Filters to QDirListing(QString,QDir::Filters) QDirListing(QString,QStringList,QDir::Filters={}) the second overload will be picked. Since this is not intended, introduce a new check function Shiboken::checkIterableArgument(), which excludes enums. [ChangeLog][shiboken6] Enumerations will no longer match in function argument checks for "PySequence". Task-number: PYSIDE-2620 Change-Id: I6285b6fa1f4f7f8b19e162c5031409f4c3fe3983 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Ignore nested containers as template parameters when inheriting a ↵Friedemann Kleint2024-05-084-39/+87
| | | | | | | | | | | | | | | | | | template Change qtbase/ab0b2a490eb98f3216403e87e4ea108a10fbeed2 removes QObject inheritance from QSignalSpy, making the QList<QVariantList> the first base class. Do not specialize this as it leads to errors later on when determining the instantiated templates. Split out the code for template parameters from inheritTemplate() to a separate helper function inheritTemplateParameter() and add error messages. Task-number: PYSIDE-2620 Pick-to: 6.7 Change-Id: I6b45d0293036b7a9177fab4d26d3e7e79d5799e6 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix leaking tuples in introduceWrapperType()Friedemann Kleint2024-04-241-0/+1
| | | | | | | | | | | | | | | | | 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>
* shiboken6: Generate Python override code for added virtualsFriedemann Kleint2024-04-227-1/+38
| | | | | | | | | | | | 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 Kleint2024-04-222-1/+3
| | | | | | | | | | 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>
* 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>
* 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>