aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
* shiboken6: Prepare the graph used for topological for sorting classes ↵Friedemann Kleint2024-12-091-1/+1
| | | | | | | | | | | | | | | | | | | 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: 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-021-7/+39
| | | | | | | | | | | 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: Fix an ASAN leak in traverseFunction()Friedemann Kleint2024-06-121-63/+54
| | | | | | | | | | 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>
* shiboken6: Fix type names of smart pointers in namespaces in the cppApi arrayFriedemann Kleint2024-06-041-7/+3
| | | | | | | | | | | | | | | | | | | | | 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: Disable Clang MSVC option for C++ 20Friedemann Kleint2024-05-271-1/+1
| | | | | Change-Id: If7dafe4e23727f822e26307bedbb46bfaf9c0655 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* shiboken6: Ignore nested containers as template parameters when inheriting a ↵Friedemann Kleint2024-05-081-39/+67
| | | | | | | | | | | | | | | | | | 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 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-191-4/+10
| | | | | | | | Check the return value. Pick-to: 6.7 Change-Id: Iccbdbc033e25ee997c3d0904d8af0903c0dc319e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Extract common C++ function attributesFriedemann Kleint2024-04-171-21/+7
| | | | | | | | | | | | | | | | Extract attributes common to C++ functions from AbstractMetaFunction's attributes to a flags type in codemodel_enums.h for re-use in AbstractMetaFunction, FunctionModelItem and AddedFunction. A lot of boolean setters and getters can then be removed and the flags easily transferred from code model to the meta language code. Task-number: PYSIDE-2602 Pick-to: 6.7 Change-Id: I9da1bb0d70051cd6bb3113290e8ccedfe4d13908 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Remove class attribute FinalInTargetLangFriedemann Kleint2024-04-171-11/+5
| | | | | | | | | | | | | | Similar to the function attribute, it does not have any impact on the generated code. Its only usage was in AbstractMetaClass::functionsInTargetLang() which is used by the documentation generator only, but it did not seem to have any impact. Pick-to: 6.7 Task-number: PYSIDE-2602 Change-Id: I0a27dc046ce7fbb147c8032cccbf63257157fc89 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Remove function attribute FinalInTargetLangFriedemann Kleint2024-04-171-11/+1
| | | | | | | | | | | | | | | | | The attribute does not have any impact on the generated code; it merely causes some warnings to be printed when fixing the class functions for rare cases. AbstractMetaFunction::isModifiedFinal() determines the generation of virtual functions instead. The function query flags FinalInTargetLangFunctions and VirtualInTargetLangFunctions can be removed as well. They were both used in AbstractMetaClass::functionsInTargetLang() which is used by the documentation generator only. Pick-to: 6.7 Task-number: PYSIDE-2602 Change-Id: Ib0f0de41008b655a84637ab28f1046aa3e098b76 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Remove unused function modificationsFriedemann Kleint2024-04-171-7/+0
| | | | | | | | | As a drive-by, fix the "public" modification flag to be 4. Task-number: PYSIDE-2602 Pick-to: 6.7 Change-Id: I5bacc2bf17e5307df02b9e6d6adadc09d04a9ded Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Ignore Q_PROPERTY specified with MEMBERFriedemann Kleint2024-03-251-1/+1
| | | | | | | | | | | qtbase/9bbebb914422262b7b585b6d1dab9d21c4238c44 introduced support for defining properties from member variables. These should be ignored as Python properties are anyways generated for them. Task-number: QTBUG-16852 Task-number: PYSIDE-2620 Change-Id: Ib05ad909c21416f13fefe53eae4cf706ba8557e0 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Register typedefs of container typesFriedemann Kleint2024-03-181-3/+30
| | | | | | | | | | | | | | | | | | For signals like QRemoteObjectRegistry.remoteObjectAdded(QRemoteObjectSourceLocation) where using QRemoteObjectSourceLocation = std::pair<QString,QRemoteObjectSourceLocationInfo> one needed to specify the fully qualified C++ name in @Slot() for the metaobject system to work and the shiboken converter to be found. Record the typedefs and register the container converters under the typedef name, too. Fixes: PYSIDE-2633 Change-Id: Ifc62f096277949a507957a0466adb47d082695c7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Use new comparison helpers for equality in shiboken/libpysideFriedemann Kleint2024-03-011-1/+1
| | | | | | | | | Task-number: QTBUG-103757 Task-number: PYSIDE-2497 Change-Id: I1b0fd5b1cad908ee612ab33ca0aacffc55947d87 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* shiboken6: Improve warning message when stripping argumentsFriedemann Kleint2023-12-211-1/+2
| | | | | | Pick-to: 6.6 Change-Id: Ibd4fd2da19811183fe8743b925ba2bf98b892541 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Remove some further uses of QStringLiteralFriedemann Kleint2023-11-291-7/+7
| | | | | | Task-number: PYSIDE-2537 Change-Id: Ie71b17eec385b31842d6693b3492db565d479fd0 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Port the CodeModel::find*() helpers to QAnyStringViewFriedemann Kleint2023-11-271-2/+2
| | | | | | | | As a drive-by, replace some old find predicates by lambdas. Task-number: PYSIDE-2537 Change-Id: I2fbb3f86f87a497f2aa7d22d666ae2d3aa641364 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Port the MetaClass::find*() helpers to QAnyStringViewFriedemann Kleint2023-11-271-2/+2
| | | | | | Task-number: PYSIDE-2537 Change-Id: I7d9c160b4b8c46854b11722c05510da766dcc3f5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* CMake: Tell shiboken to process Qt headers inside system include dirsAlexandru Croitor2023-11-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building Qt For Python using yocto, the Qt headers are in a sysroot which libclang considers as system headers. Shiboken skips processing system headers. To ensure Qt headers are still processed, introduce a new --force-process-system-include-paths option to shiboken and two new CMake variables: PYSIDE_TREAT_QT_INCLUDE_DIRS_AS_NON_SYSTEM and SHIBOKEN_FORCE_PROCESS_SYSTEM_INCLUDE_PATHS. When PYSIDE_TREAT_QT_INCLUDE_DIRS_AS_NON_SYSTEM is set to true, the build system will pass the Qt include dirs to --force-process-system-include-paths to ensure the Qt headers are processed and their types extracted. Similarly SHIBOKEN_FORCE_PROCESS_SYSTEM_INCLUDE_PATHS can be passed a list of extra dir paths when creating non-Qt related bindings. Sysroots usually contain headers other than Qt headers, so there's a chance that a non-Qt-related system header fails to be be parsed and will fail the shiboken execution. To avoid breaking setups that previously worked because of the issue described above, the new options are opt-in rather than opt-out. In case one such an issue is encountered, the solution would be to copy / move the Qt headers into a separate location and specify the new location as both an include path and a force process system include path (in case the copied headers are still somewhere under the sysroot). Pick-to: 6.6 Task-number: PYSIDE-1958 Change-Id: I1733478e9c6057f84de7864940c6150b378749cf Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Fix some clang-tidy warningsFriedemann Kleint2023-09-201-13/+13
| | | | | | | | | | | | | | | | - narrowing conversion qsizetype->int - Repeating return type for default-constructed values - Make methods const - Add missing references - Use range-based for - Use Q_DISABLE_COPY_MOVE where applicable - Initialize variables - Remove unused function parameters Pick-to: 6.6 6.5 Change-Id: I65290fe2dab5283a5cbbf6f82c413c3cf294f1bd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Avoid losing warnings with ninjaFriedemann Kleint2023-08-011-14/+14
| | | | | | | | | | | | | | ninja mixes stdout and stderr, causing stderr messages to be lost in shiboken progress messages on stdout. Change the progress messages to be output at the end of the step with a time stamp in past tense. [ChangeLog][shiboken6] The progress messages have been changed to avoid losing warnings with ninja Pick-to: 6.5 Change-Id: Ia33bd5a3af55d268f25d324f3ae496aebef8f7bb Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Handle more attributes in add-function/declare-function/function elementsFriedemann Kleint2023-08-011-6/+13
| | | | | | | | | | | | | | | | | | | | | | Factor out functions to handle the attributes from modify-function and use them for <add-function>/<declare-function> and <function>. This makes it possible to specify the "allow-thread", "exception-handling" and "snake-case" for <declare-function> and <function> as well. The snake-case handling is removed from FunctionTypeEntry and handled via modifications. As a drive-by, fix docs on "exception-handling". [ChangeLog][shiboken6] The attributes "allow-thread", "exception-handling" and "snake-case" can now be specified on <declare-function> and <function>. Change-Id: I081ab4dfd922de563ac7b8c75d0c36609c43e0cd Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* PyEnum: Shortcut old Enum code and generate Python enums directlyChristian Tismer2023-06-301-1/+1
| | | | | | | | | | | | | | | | | The amalgamation of old and new enums is slowly unraveling from the inside. This meanwhile actually removes the old code. Included a change by Friedemann to improve enum value handling. After the signed/unsigned problem was fixed, there was only one case left where Qt and Clang parser disagreed which could be fixed. The final solution uses overloaded functions to generate all necessary cases with minimal footprint in the executable. Task-number: PYSIDE-1735 Change-Id: I3741ce8621e783a750f3c05241c916008f78f39b Done-with: Friedemann.Kleint@qt.io (+2 squashed commits) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Cast enum values to unsigned custom types in meta builderFriedemann Kleint2023-06-241-6/+9
| | | | | | | | | | The EnumValue will then reflect the proper value. Task-number: PYSIDE-2088 Task-number: PYSIDE-1735 Change-Id: I9543d71417b72c98c63a97f1a53443501097ef9a Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add the underlying type to AbstractMetaEnumFriedemann Kleint2023-06-201-0/+1
| | | | | | Task-number: PYSIDE-1735 Change-Id: I7733c93baffa1396d5a43b68069e9e8848e9fe49 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix deprecation warnings in Qt 6.6Friedemann Kleint2023-06-141-8/+8
| | | | | | | | | Remove old string literals, qAsConst, use new Regex API. Pick-to: 6.5 Change-Id: Iffdaa5217596e181c0766d161ce70c0a36ba37b5 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* shiboken6: Log rejected operatorsFriedemann Kleint2023-05-111-2/+6
| | | | | | | | | Add a new section to the rejected functions section for operator where no base class can be found. Pick-to: 6.5 Change-Id: Id8af7a1c73e49854d33f85d95c26710d4c8f026c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Refactor reject logicFriedemann Kleint2023-05-111-83/+96
| | | | | | | | | | | | | | Introduce a struct with type signature, sortkey and reason for rejected entries instead of using a QMap. This allows for sorting rejected functions by function signature excluding return type such that members of a class show up in a group. Remove unused enum value "ApiIncompatible". Pick-to: 6.5 Change-Id: I0ea29c8163c6eba2abba843355f9a9940e416d7c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix passing static class fields as enum default valuesFriedemann Kleint2023-05-101-3/+4
| | | | | | | | | | | | | | | | Occurs in Qt 6.6: class QNativeIpcKey { enum class Type { SystemV = 0x51, PosixRealtime = 0x100, Windows }; static constexpr Type DefaultTypeForOs = Type::Windows ... QNativeIpcKey(Type type = DefaultTypeForOs) }; Pick-to: 6.5 Change-Id: Icf9abdd9ebe24eb4e1d145e65b27496545e327ef Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Store a const TypeEntry in AbstractMetaEnumFriedemann Kleint2023-05-101-2/+4
| | | | | | Pick-to: 6.5 Change-Id: I98acca609a219427a3da34bc63489cbd54c2c4a8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6/clang: Suppress class scope look up for parameters with scope ↵Friedemann Kleint2023-04-281-6/+16
| | | | | | | | | | | | resolution Add a flag to AbstractMetaBuilderPrivate::findTypeEntriesHelper() to suppress the class scope look in case scope resolution. Task-number: PYSIDE-2288 Pick-to: 6.5 5.15 Change-Id: I04a4810d03845fb48393c5efed3641220bd12d87 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6/clang: Fix clashes between type name and enumeration valuesFriedemann Kleint2023-04-251-2/+20
| | | | | | | | | | | Remove all constant and enum value type entries found in the type lookup unless it is looking for template arguments; where it may be a non-type template argument. Task-number: PYSIDE-2288 Pick-to: 6.5 5.15 Change-Id: If0609ce0d0223f551ed6dee1d1e0ea3ef49d6917 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix build without --unityFriedemann Kleint2023-01-061-0/+1
| | | | | | | | | Add missing header which does not show when using --unity. Amends 1e3ec1ba2a29e59b580fbd9a5cf6e4e91c8994e2. Task-number: QTBUG-109570 Change-Id: I05184216bb2d132de2ab33493aa0e86baab9de52 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Enable views for containersFriedemann Kleint2023-01-061-4/+26
| | | | | | | | | | | | | Make it possible to use for example std::vector as a base type for a function taking a std::span. Extract a helper function to create the meta type and add a template parameter count function to ContainerTypeEntry to be able to determine the correct parameter. Task-number: PYSIDE-2174 Change-Id: Ic1c4b7aead0480f568f5460f1b4de697ca5a85aa Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Port from QSharedPointer to std::shared_ptrFriedemann Kleint2023-01-051-89/+91
| | | | | | | Task-number: QTBUG-109570 Change-Id: Iabdafb0a5ab211e32c1bbf7face78fd5102a49b9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6/generator: Fix CMake UNITY_BUILD (jumbo)Friedemann Kleint2022-12-161-24/+22
| | | | | | | | - Use a string literal for "::" - Add a header for debug helpers Change-Id: I605a00fea1b936032afa93d9be45b7da31d42473 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Use smart pointers for AbstractMetaClass instancesFriedemann Kleint2022-12-061-159/+152
| | | | | Change-Id: I101ca8ceea6ffa63ca8bd03e2e9adf7531cb8f80 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Make AbstractMetaClass::fixFunctions/addFunction*() staticFriedemann Kleint2022-12-051-15/+15
| | | | | | | | Preparing for the introduction of smart pointers for AbstractMetaClass. Change-Id: I74b1a4fc52319099dae39040179ffb197bac27a7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Make some AbstractMetaClass query functions free functionsFriedemann Kleint2022-12-051-1/+1
| | | | | | | | | Preparing for the introduction of smart pointers for AbstractMetaClass. Change-Id: Ie8cbf6bd8abbae4445c34611dd7193297611d48e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Parse the notify specification from Q_PROPERTYFriedemann Kleint2022-11-231-0/+5
| | | | | | | | | | | To be used for documentation purposes. Task-number: PYSIDE-1106 Task-number: PYSIDE-1019 Pick-to: 6.4 Change-Id: I833193be0007dbdba2e3fde75c64dfc2a85a4ef7 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Use smart pointers for the TypeEntry classesFriedemann Kleint2022-11-171-76/+81
| | | | | | | | | | TypeEntry instances were previously stored and passed as raw pointers, which made it difficult to track ownership, particularly when synthesized classes were added. Change it to use QSharedPointer. Change-Id: I3612efbc5d467ebeac9aa5dda86c7439bbd03ddd Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Make some TypeEntry query functions free functionsFriedemann Kleint2022-11-171-6/+7
| | | | | | | | | | | Some query functions like TypeEntry::typeSystemTypeEntry() search in the hierarchy, starting with "this". This cannot be ported to smart pointers, so the functions are changed to be free functions where the first element has to be passed in. Change-Id: I3122b648ad499a2236577f6a101e8637a2f87d55 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix coding style regarding pointers (Type* v -> Type *v)Friedemann Kleint2022-11-141-8/+10
| | | | | | | | | As a drive-by, introduce some auto and streamline the code. Pick-to: 6.4 Change-Id: If84a3721a50b2e00b473ba78cba184f1a35d326b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Reorder headers containing typedefsFriedemann Kleint2022-11-111-12/+12
| | | | | | | | | | | | | | | - Split out Modifications/CustomConversions-related typedefs to separate headers customconversion_typedefs.h, modifications_typedefs.h - Move forward declarations of TypeEntries from typedatabase_typedefs.h to typesystem_typedefs.h - Rename TypeEntries to TypeEntryCList and add "C" to other lists containing const pointers following the shiboken convention. Pick-to: 6.4 Change-Id: Ic31872405778d794d85694386990b50edf42beec Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Generate includes required to be able to forward-declare classes ↵Friedemann Kleint2022-10-311-2/+10
| | | | | | | | | | | | | | in the module header - Add some helper functions to IncludeGroup. - Collect the includes of classes declared to be primitive types - Add more argument includes to classes and take return type modifications into account. Pick-to: 6.4 Task-number: PYSIDE-2099 Change-Id: I6c73a4e428d77b1af5ec128a3c9bc4876d44115e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Store whether class is a structFriedemann Kleint2022-10-311-0/+3
| | | | | | | | | | This is important for generating forward declarations. Pick-to: 6.4 Task-number: PYSIDE-2099 Change-Id: I68bebd8e1a0ab10525abc6784af9c375340e5871 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Make check for signal function more explicitFriedemann Kleint2022-10-251-0/+1
| | | | | | | | | | | Amends 4d423bdbc774c3e375e9f31caa23a082024ff4a6. Pick-to: 6.4 Task-number: PYSIDE-2076 Task-number: PYSIDE-1603 Change-Id: Ifeb5e44932dae9a694276efe841ac6b8d39214d2 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Handle Qt private signals for documentation purposesFriedemann Kleint2022-10-211-1/+10
| | | | | | | | | | | | Private signals (cannot be emitted by the user) were previously rejected due to the trailing QPrivateSignal parameter. Remove it and set a flag instead. Pick-to: 6.4 Fixes: PYSIDE-2076 Task-number: PYSIDE-1603 Change-Id: I9bad43bf6bbce0483ec6fd01e3fbf7bd2f38a412 Reviewed-by: Christian Tismer <tismer@stackless.com>