aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/qtdocparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/ApiExtractor/qtdocparser.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/qtdocparser.cpp51
1 files changed, 27 insertions, 24 deletions
diff --git a/sources/shiboken2/ApiExtractor/qtdocparser.cpp b/sources/shiboken2/ApiExtractor/qtdocparser.cpp
index f1421ff91..99cf15e48 100644
--- a/sources/shiboken2/ApiExtractor/qtdocparser.cpp
+++ b/sources/shiboken2/ApiExtractor/qtdocparser.cpp
@@ -46,7 +46,6 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
if (!metaClass)
return;
- QString scope = metaClass->name();
const AbstractMetaClass* context = metaClass->enclosingClass();
while(context) {
if (context->enclosingClass() == 0)
@@ -54,22 +53,22 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
context = context->enclosingClass();
}
- QString filename = metaClass->qualifiedCppName().toLower();
- filename.replace(QLatin1String("::"), QLatin1String("-"));
- QString sourceFile = documentationDataDirectory() + QLatin1Char('/')
- + filename + QLatin1String(".xml");
- if (metaClass->enclosingClass())
- sourceFile.replace(QLatin1String("::"), QLatin1String("-"));
+ QString sourceFileRoot = documentationDataDirectory() + QLatin1Char('/')
+ + metaClass->qualifiedCppName().toLower();
+ sourceFileRoot.replace(QLatin1String("::"), QLatin1String("-"));
- if (!QFile::exists(sourceFile)) {
+ QFileInfo sourceFile(sourceFileRoot + QStringLiteral(".webxml"));
+ if (!sourceFile.exists())
+ sourceFile.setFile(sourceFileRoot + QStringLiteral(".xml"));
+ if (!sourceFile.exists()) {
qCWarning(lcShiboken).noquote().nospace()
- << "Can't find qdoc3 file for class " << metaClass->name() << ", tried: "
- << QDir::toNativeSeparators(sourceFile);
+ << "Can't find qdoc file for class " << metaClass->name() << ", tried: "
+ << QDir::toNativeSeparators(sourceFile.absoluteFilePath());
return;
}
QXmlQuery xquery;
- xquery.setFocus(QUrl(sourceFile));
+ xquery.setFocus(QUrl::fromLocalFile(sourceFile.absoluteFilePath()));
QString className = metaClass->name();
@@ -79,7 +78,8 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
+ className + QLatin1String("\"]/description");
DocModificationList signedModifs, classModifs;
- foreach (DocModification docModif, metaClass->typeEntry()->docModifications()) {
+ const DocModificationList &mods = metaClass->typeEntry()->docModifications();
+ for (const DocModification &docModif : mods) {
if (docModif.signature().isEmpty())
classModifs.append(docModif);
else
@@ -91,8 +91,8 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
//Functions Documentation
- AbstractMetaFunctionList funcs = metaClass->functionsInTargetLang();
- foreach (AbstractMetaFunction *func, funcs) {
+ const AbstractMetaFunctionList &funcs = metaClass->functionsInTargetLang();
+ for (AbstractMetaFunction *func : funcs) {
if (!func || func->isPrivate())
continue;
@@ -109,8 +109,9 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
+ QString::number(func->arguments().count())
+ QLatin1String(" and @const=\"") + isConst + QLatin1String("\"]");
- int i = 1;
- foreach (AbstractMetaArgument* arg, func->arguments()) {
+ const AbstractMetaArgumentList &arguments = func->arguments();
+ for (int i = 0, size = arguments.size(); i < size; ++i) {
+ const AbstractMetaArgument *arg = arguments.at(i);
QString type = arg->type()->name();
if (arg->type()->isConstant())
@@ -125,14 +126,13 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
for (int j = 0, max = arg->type()->indirections(); j < max; ++j)
type += QLatin1Char('*');
}
- query += QLatin1String("/parameter[") + QString::number(i)
+ query += QLatin1String("/parameter[") + QString::number(i + 1)
+ QLatin1String("][@left=\"") + type + QLatin1String("\"]/..");
- ++i;
}
}
query += QLatin1String("/description");
DocModificationList funcModifs;
- foreach (DocModification funcModif, signedModifs) {
+ for (const DocModification &funcModif : qAsConst(signedModifs)) {
if (funcModif.signature() == func->minimalSignature())
funcModifs.append(funcModif);
}
@@ -141,8 +141,8 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
}
#if 0
// Fields
- AbstractMetaFieldList fields = metaClass->fields();
- foreach (AbstractMetaField *field, fields) {
+ const AbstractMetaFieldList &fields = metaClass->fields();
+ for (AbstractMetaField *field : fields) {
if (field->isPrivate())
return;
@@ -152,8 +152,8 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
}
#endif
// Enums
- AbstractMetaEnumList enums = metaClass->enums();
- foreach (AbstractMetaEnum *meta_enum, enums) {
+ const AbstractMetaEnumList &enums = metaClass->enums();
+ for (AbstractMetaEnum *meta_enum : enums) {
QString query = QLatin1String("/WebXML/document/") + type
+ QLatin1String("[@name=\"")
+ className + QLatin1String("\"]/enum[@name=\"")
@@ -172,9 +172,12 @@ Documentation QtDocParser::retrieveModuleDocumentation(const QString& name)
QString sourceFile = documentationDataDirectory() + QLatin1Char('/')
+ moduleName.toLower() + QLatin1String(".xml");
+ if (!QFile::exists(sourceFile))
+ sourceFile = documentationDataDirectory() + QLatin1Char('/')
+ + moduleName.toLower() + QLatin1String("-module.webxml");
if (!QFile::exists(sourceFile)) {
qCWarning(lcShiboken).noquote().nospace()
- << "Can't find qdoc3 file for module " << name << ", tried: "
+ << "Can't find qdoc file for module " << name << ", tried: "
<< QDir::toNativeSeparators(sourceFile);
return Documentation();
}