diff options
| author | Friedemann Kleint <friedemann.kleint@qt.io> | 2023-05-10 13:50:56 +0200 |
|---|---|---|
| committer | Cristián Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2025-11-24 12:06:06 +0100 |
| commit | 845630ad239c4b37ff37e49ef5bb969a8946744b (patch) | |
| tree | 5c65f2e270511459d346c14f0ad8d01f5e6e39a0 /sources/shiboken6_generator/ApiExtractor/classdocumentation.h | |
| parent | 3cf2077a1b060bbea3419ccde23c5da6485a2e24 (diff) | |
Move the shiboken-generator source around
THIS COMMIT WAS GENERATED BY A SCRIPT
Task-number: PYSIDE-962
Task-number: PYSIDE-1587
Change-Id: I58b05c3d05606efb6303193f2d7f907a0ab5741b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/shiboken6_generator/ApiExtractor/classdocumentation.h')
| -rw-r--r-- | sources/shiboken6_generator/ApiExtractor/classdocumentation.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/sources/shiboken6_generator/ApiExtractor/classdocumentation.h b/sources/shiboken6_generator/ApiExtractor/classdocumentation.h new file mode 100644 index 000000000..7ed5c02f5 --- /dev/null +++ b/sources/shiboken6_generator/ApiExtractor/classdocumentation.h @@ -0,0 +1,83 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef CLASSDOCUMENTATION_H +#define CLASSDOCUMENTATION_H + +#include <QtCore/qstringlist.h> + +#include <optional> + +QT_FORWARD_DECLARE_CLASS(QDebug) + +/// An enumeration in a WebXML/doxygen document +struct EnumDocumentation +{ + QString name; + QString description; +}; + +/// A QObject property in a WebXML/doxygen document +struct PropertyDocumentation +{ + QString name; + QString brief; + QString description; +}; + +/// Helper struct for querying a function in a WebXML/doxygen document +struct FunctionDocumentationQuery +{ + QString name; + QStringList parameters; + bool constant = false; +}; + +/// A function in a WebXML/doxygen document +struct FunctionDocumentation : public FunctionDocumentationQuery +{ + QStringList parameterNames; + QString signature; + QString returnType; + QString description; +}; + +using FunctionDocumentationList = QList<FunctionDocumentation>; + +/// A WebXML/doxygen document +struct ClassDocumentation +{ + enum Type : std::uint8_t { + Class, // <class>, class/namespace + Header // <header>, grouped global functions/enums + }; + + qsizetype indexOfEnum(const QString &name) const; + FunctionDocumentationList findFunctionCandidates(const QString &name, + bool constant) const; + static qsizetype indexOfFunction(const FunctionDocumentationList &fl, + const FunctionDocumentationQuery &q); + qsizetype indexOfProperty(const QString &name) const; + + Type type = Type::Class; + QString name; + QString description; + + QList<EnumDocumentation> enums; + QList<PropertyDocumentation> properties; + FunctionDocumentationList functions; +}; + +/// Parse a WebXML class/namespace document +std::optional<ClassDocumentation> parseWebXml(const QStringList &fileNames, QString *errorMessage); + +/// Extract the module description from a WebXML module document +QString webXmlModuleDescription(const QString &fileName, QString *errorMessage); + +QDebug operator<<(QDebug debug, const EnumDocumentation &e); +QDebug operator<<(QDebug debug, const PropertyDocumentation &p); +QDebug operator<<(QDebug debug, const FunctionDocumentationQuery &q); +QDebug operator<<(QDebug debug, const FunctionDocumentation &f); +QDebug operator<<(QDebug debug, const ClassDocumentation &c); + +#endif // CLASSDOCUMENTATION_H |
