aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-11-08 08:16:36 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-11-08 11:37:16 +0100
commita824208f187162daa8eb0c79fbca4b5b5826efb5 (patch)
tree5da1814bb72db98eb8f275aabbeaa1f5a80a3de2
parent274cd626332729ab1beca399572c8d30f9edc7c1 (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.cpp17
-rw-r--r--sources/shiboken6/ApiExtractor/docparser.h1
-rw-r--r--sources/shiboken6/ApiExtractor/qtdocparser.cpp12
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",