diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-11-08 08:16:36 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-11-08 11:37:16 +0100 |
| commit | a824208f187162daa8eb0c79fbca4b5b5826efb5 (patch) | |
| tree | 5da1814bb72db98eb8f275aabbeaa1f5a80a3de2 | |
| parent | 274cd626332729ab1beca399572c8d30f9edc7c1 (diff) | |
Documentation: Indicate enum types
Insert the base class into the WebXML doc string.
Pick-to: 6.4
Task-number: PYSIDE-1735
Change-Id: I5b59df98f929c82112903bb316143b592c06e33e
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| -rw-r--r-- | sources/shiboken6/ApiExtractor/docparser.cpp | 17 | ||||
| -rw-r--r-- | sources/shiboken6/ApiExtractor/docparser.h | 1 | ||||
| -rw-r--r-- | sources/shiboken6/ApiExtractor/qtdocparser.cpp | 12 |
3 files changed, 29 insertions, 1 deletions
diff --git a/sources/shiboken6/ApiExtractor/docparser.cpp b/sources/shiboken6/ApiExtractor/docparser.cpp index 9f5d06af5..b15dd52e6 100644 --- a/sources/shiboken6/ApiExtractor/docparser.cpp +++ b/sources/shiboken6/ApiExtractor/docparser.cpp @@ -3,12 +3,14 @@ #include "docparser.h" #include "abstractmetaargument.h" +#include "abstractmetaenum.h" #include "abstractmetafunction.h" #include "abstractmetalang.h" #include "abstractmetatype.h" #include "messages.h" #include "modifications.h" #include "reporthandler.h" +#include "enumtypeentry.h" #include "complextypeentry.h" #include "xmlutils.h" @@ -103,6 +105,21 @@ DocModificationList DocParser::getDocModifications(const AbstractMetaClass* cppC return result; } +QString DocParser::enumBaseClass(const AbstractMetaEnum &e) +{ + switch (e.typeEntry()->pythonEnumType()) { + case TypeSystem::PythonEnumType::IntEnum: + return u"IntEnum"_s; + case TypeSystem::PythonEnumType::Flag: + return u"Flag"_s; + case TypeSystem::PythonEnumType::IntFlag: + return u"IntFlag"_s; + default: + break; + } + return e.typeEntry()->flags() != nullptr ? u"Flag"_s : u"Enum"_s; +} + AbstractMetaFunctionCList DocParser::documentableFunctions(const AbstractMetaClass *metaClass) { auto result = metaClass->functionsInTargetLang(); diff --git a/sources/shiboken6/ApiExtractor/docparser.h b/sources/shiboken6/ApiExtractor/docparser.h index 4884c5eec..d674d045a 100644 --- a/sources/shiboken6/ApiExtractor/docparser.h +++ b/sources/shiboken6/ApiExtractor/docparser.h @@ -96,6 +96,7 @@ public: static DocModificationList getDocModifications(const AbstractMetaClass* cppClass, const AbstractMetaFunctionCPtr &func = {}); + static QString enumBaseClass(const AbstractMetaEnum &e); protected: static QString getDocumentation(const XQueryPtr &xquery, diff --git a/sources/shiboken6/ApiExtractor/qtdocparser.cpp b/sources/shiboken6/ApiExtractor/qtdocparser.cpp index 3829c3463..236ca4c31 100644 --- a/sources/shiboken6/ApiExtractor/qtdocparser.cpp +++ b/sources/shiboken6/ApiExtractor/qtdocparser.cpp @@ -292,7 +292,17 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass) Documentation enumDoc; const auto index = classDocumentation.indexOfEnum(meta_enum.name()); if (index != -1) { - enumDoc.setValue(classDocumentation.enums.at(index).description); + QString doc = classDocumentation.enums.at(index).description; + const auto firstPara = doc.indexOf(u"<para>"); + if (firstPara != -1) { + const QString baseClass = QtDocParser::enumBaseClass(meta_enum); + if (baseClass != u"Enum") { + const QString note = u"(inherits <teletype>enum."_s + baseClass + + u"</teletype>) "_s; + doc.insert(firstPara + 6, note); + } + } + enumDoc.setValue(doc); meta_enum.setDocumentation(enumDoc); } else { qCWarning(lcShibokenDoc, "%s", |
