aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/doxygenparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/ApiExtractor/doxygenparser.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/doxygenparser.cpp68
1 files changed, 36 insertions, 32 deletions
diff --git a/sources/shiboken6/ApiExtractor/doxygenparser.cpp b/sources/shiboken6/ApiExtractor/doxygenparser.cpp
index 8a1787f5a..a5189f99f 100644
--- a/sources/shiboken6/ApiExtractor/doxygenparser.cpp
+++ b/sources/shiboken6/ApiExtractor/doxygenparser.cpp
@@ -39,19 +39,23 @@
#include "typesystem.h"
#include "xmlutils.h"
+#include "qtcompat.h"
+
#include <QtCore/QFile>
#include <QtCore/QDir>
+using namespace Qt::StringLiterals;
+
static QString getSectionKindAttr(const AbstractMetaFunctionCPtr &func)
{
if (func->isSignal())
- return QLatin1String("signal");
+ return u"signal"_s;
QString kind = func->isPublic()
- ? QLatin1String("public") : QLatin1String("protected");
+ ? u"public"_s : u"protected"_s;
if (func->isStatic())
- kind += QLatin1String("-static");
+ kind += u"-static"_s;
else if (func->isSlot())
- kind += QLatin1String("-slot");
+ kind += u"-slot"_s;
return kind;
}
@@ -68,10 +72,10 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
QString doxyFileSuffix;
if (metaClass->enclosingClass()) {
doxyFileSuffix += metaClass->enclosingClass()->name();
- doxyFileSuffix += QLatin1String("_1_1"); // FIXME: Check why _1_1!!
+ doxyFileSuffix += u"_1_1"_s; // FIXME: Check why _1_1!!
}
doxyFileSuffix += metaClass->name();
- doxyFileSuffix += QLatin1String(".xml");
+ doxyFileSuffix += u".xml"_s;
const char* prefixes[] = { "class", "struct", "namespace" };
bool isProperty = false;
@@ -79,7 +83,7 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
QString doxyFilePath;
for (const char *prefix : prefixes) {
doxyFilePath = documentationDataDirectory() + u'/'
- + QLatin1String(prefix) + doxyFileSuffix;
+ + QLatin1StringView(prefix) + doxyFileSuffix;
if (QFile::exists(doxyFilePath))
break;
doxyFilePath.clear();
@@ -101,14 +105,14 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
}
static const QList<QPair<Documentation::Type, QString>> docTags = {
- { Documentation::Brief, QLatin1String("briefdescription") },
- { Documentation::Detailed, QLatin1String("detaileddescription") }
+ { Documentation::Brief, u"briefdescription"_s },
+ { Documentation::Detailed, u"detaileddescription"_s }
};
// Get class documentation
Documentation classDoc;
for (const auto &tag : docTags) {
- const QString classQuery = QLatin1String("/doxygen/compounddef/") + tag.second;
+ const QString classQuery = u"/doxygen/compounddef/"_s + tag.second;
QString doc = getDocumentation(xquery, classQuery,
metaClass->typeEntry()->docModifications());
if (doc.isEmpty())
@@ -123,37 +127,37 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
//Functions Documentation
const auto &funcs = DocParser::documentableFunctions(metaClass);
for (const auto &func : funcs) {
- QString query = QLatin1String("/doxygen/compounddef/sectiondef");
+ QString query = u"/doxygen/compounddef/sectiondef"_s;
// properties
if (func->isPropertyReader() || func->isPropertyWriter()
|| func->isPropertyResetter()) {
const auto prop = metaClass->propertySpecs().at(func->propertySpecIndex());
- query += QLatin1String("[@kind=\"property\"]/memberdef/name[text()=\"")
- + prop.name() + QLatin1String("\"]");
+ query += u"[@kind=\"property\"]/memberdef/name[text()=\""_s
+ + prop.name() + u"\"]"_s;
isProperty = true;
} else { // normal methods
QString kind = getSectionKindAttr(func);
- query += QLatin1String("[@kind=\"") + kind
- + QLatin1String("-func\"]/memberdef/name[text()=\"")
- + func->originalName() + QLatin1String("\"]");
+ query += u"[@kind=\""_s + kind
+ + u"-func\"]/memberdef/name[text()=\""_s
+ + func->originalName() + u"\"]"_s;
if (func->arguments().isEmpty()) {
- QString args = func->isConstant() ? QLatin1String("() const ") : QLatin1String("()");
- query += QLatin1String("/../argsstring[text()=\"") + args + QLatin1String("\"]");
+ QString args = func->isConstant() ? u"() const "_s : u"()"_s;
+ query += u"/../argsstring[text()=\""_s + args + u"\"]"_s;
} else {
int i = 1;
const AbstractMetaArgumentList &arguments = func->arguments();
for (const AbstractMetaArgument &arg : arguments) {
if (!arg.type().isPrimitive()) {
- query += QLatin1String("/../param[") + QString::number(i)
- + QLatin1String("]/type/ref[text()=\"")
+ query += u"/../param["_s + QString::number(i)
+ + u"]/type/ref[text()=\""_s
+ arg.type().cppSignature().toHtmlEscaped()
- + QLatin1String("\"]/../..");
+ + u"\"]/../.."_s;
} else {
- query += QLatin1String("/../param[") + QString::number(i)
- + QLatin1String("]/type[text(), \"")
+ query += u"/../param["_s + QString::number(i)
+ + u"]/type[text(), \""_s
+ arg.type().cppSignature().toHtmlEscaped()
- + QLatin1String("\"]/..");
+ + u"\"]/.."_s;
}
++i;
}
@@ -163,10 +167,10 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
for (const auto &tag : docTags) {
QString funcQuery(query);
if (!isProperty) {
- funcQuery += QLatin1String("/../") + tag.second;
+ funcQuery += u"/../"_s + tag.second;
} else {
funcQuery = u'(' + funcQuery;
- funcQuery += u"/../"_qs + tag.second + u")[1]"_qs;
+ funcQuery += u"/../"_s + tag.second + u")[1]"_s;
}
QString doc = getDocumentation(xquery, funcQuery, DocModificationList());
@@ -189,8 +193,8 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
Documentation fieldDoc;
for (const auto &tag : docTags) {
- QString query = QLatin1String("/doxygen/compounddef/sectiondef/memberdef/name[text()=\"")
- + field.name() + QLatin1String("\"]/../") + tag.second;
+ QString query = u"/doxygen/compounddef/sectiondef/memberdef/name[text()=\""_s
+ + field.name() + u"\"]/../"_s + tag.second;
QString doc = getDocumentation(xquery, query, DocModificationList());
if (doc.isEmpty()) {
qCWarning(lcShibokenDoc, "%s",
@@ -205,8 +209,8 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
//Enums
for (AbstractMetaEnum &meta_enum : metaClass->enums()) {
- QString query = QLatin1String("/doxygen/compounddef/sectiondef/memberdef[@kind=\"enum\"]/name[text()=\"")
- + meta_enum.name() + QLatin1String("\"]/..");
+ QString query = u"/doxygen/compounddef/sectiondef/memberdef[@kind=\"enum\"]/name[text()=\""_s
+ + meta_enum.name() + u"\"]/.."_s;
QString doc = getDocumentation(xquery, query, DocModificationList());
if (doc.isEmpty()) {
qCWarning(lcShibokenDoc, "%s",
@@ -219,7 +223,7 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
Documentation DoxygenParser::retrieveModuleDocumentation(const QString& name){
- QString sourceFile = documentationDataDirectory() + QLatin1String("/indexpage.xml");
+ QString sourceFile = documentationDataDirectory() + u"/indexpage.xml"_s;
if (!QFile::exists(sourceFile)) {
qCWarning(lcShibokenDoc).noquote().nospace()
@@ -236,7 +240,7 @@ Documentation DoxygenParser::retrieveModuleDocumentation(const QString& name){
}
// Module documentation
- QString query = QLatin1String("/doxygen/compounddef/detaileddescription");
+ QString query = u"/doxygen/compounddef/detaileddescription"_s;
const QString doc = getDocumentation(xquery, query, DocModificationList());
return Documentation(doc, {});
}