aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/generator
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-12-11 13:00:27 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-12-19 12:29:45 +0100
commit83276ba986ea54ffec69831913bd8b2646b2d87d (patch)
treebeba3a5c30428b6c4722e1ea9142e1f16b9a4b49 /sources/shiboken6/generator
parent1e2f45da078e36487c3bb9bd0d63f67a29ef3f3d (diff)
Extract global (non-added) function/enum documentation
Try to determine the name of the .webxml file in which the documentation is via include/doc file hint and write that to the globals page. Task-number: PYSIDE-1106 Change-Id: I8042d9122fa9037a602aadc2266d85d1f79f4fde Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/shiboken6/generator')
-rw-r--r--sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
index a00e75ceb..d8df44a74 100644
--- a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
+++ b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
@@ -53,6 +53,7 @@ struct DocPackage
{
QStringList classPages;
AbstractMetaFunctionCList globalFunctions;
+ AbstractMetaEnumList globalEnums;
};
struct DocGeneratorOptions
@@ -942,6 +943,15 @@ static QStringList functionListToToc(const AbstractMetaFunctionCList &functions)
return result;
}
+static QStringList enumListToToc(const AbstractMetaEnumList &enums)
+{
+ QStringList result;
+ result.reserve(enums.size());
+ for (const auto &e : enums)
+ result.append(e.name());
+ return result;
+}
+
static void writeFancyToc(TextStream& s, QAnyStringView title,
const QStringList& items,
QLatin1StringView referenceType)
@@ -986,8 +996,16 @@ static void writeFancyToc(TextStream& s, QAnyStringView title,
bool QtDocGenerator::finishGeneration()
{
- for (const auto &f : api().globalFunctions())
+ for (const auto &f : api().globalFunctions()) {
+ auto ncf = std::const_pointer_cast<AbstractMetaFunction>(f);
+ m_docParser->fillGlobalFunctionDocumentation(ncf);
m_packages[f->targetLangPackage()].globalFunctions.append(f);
+ }
+
+ for (auto e : api().globalEnums()) {
+ m_docParser->fillGlobalEnumDocumentation(e);
+ m_packages[e.typeEntry()->targetLangPackage()].globalEnums.append(e);
+ }
if (!m_packages.isEmpty())
writeModuleDocumentation();
@@ -1085,7 +1103,8 @@ void QtDocGenerator::writeModuleDocumentation()
}
removeExtraDocs(extraTocEntries, &docPackage.globalFunctions);
- const bool hasGlobals = !docPackage.globalFunctions.isEmpty();
+ const bool hasGlobals = !docPackage.globalFunctions.isEmpty()
+ || !docPackage.globalEnums.isEmpty();
const QString globalsPage = moduleName + "_globals.rst"_L1;
s << ".. container:: hide\n\n" << indent
@@ -1120,6 +1139,8 @@ void QtDocGenerator::writeModuleDocumentation()
"doc"_L1);
writeFancyToc(s, "List of Functions", functionListToToc(docPackage.globalFunctions),
"py:func"_L1);
+ writeFancyToc(s, "List of Enumerations", enumListToToc(docPackage.globalEnums),
+ "any"_L1);
output.done();
@@ -1144,6 +1165,11 @@ void QtDocGenerator::writeGlobals(const QString &package,
}
}
+ if (!docPackage.globalEnums.isEmpty()) {
+ s << headline("Enumerations");
+ writeEnums(s, docPackage.globalEnums, package);
+ }
+
output.done();
}