diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-02-20 12:40:16 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-02-21 10:03:23 +0000 |
commit | 583375253fd7e90554ae40894cf1f69f06294b43 (patch) | |
tree | 29c018ae207f8e95de25565dc5fedcf81b77670b /sources/shiboken2/ApiExtractor/qtdocparser.cpp | |
parent | b461e45a8e3b6f80f9e6a3b4505867ece6799355 (diff) |
Documentation extraction: Add error handling
Trim the strings returned by the XPath queries and warn about
failing queries.
Task-number: PYSIDE-363
Change-Id: Ia0233d490497597cb78aa16b0908fe226270705c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/shiboken2/ApiExtractor/qtdocparser.cpp')
-rw-r--r-- | sources/shiboken2/ApiExtractor/qtdocparser.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/sources/shiboken2/ApiExtractor/qtdocparser.cpp b/sources/shiboken2/ApiExtractor/qtdocparser.cpp index b8a718ddc..508faa6dc 100644 --- a/sources/shiboken2/ApiExtractor/qtdocparser.cpp +++ b/sources/shiboken2/ApiExtractor/qtdocparser.cpp @@ -68,7 +68,8 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass) } QXmlQuery xquery; - xquery.setFocus(QUrl::fromLocalFile(sourceFile.absoluteFilePath())); + const QString sourceFileName = sourceFile.absoluteFilePath(); + xquery.setFocus(QUrl::fromLocalFile(sourceFileName)); QString className = metaClass->name(); @@ -87,6 +88,8 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass) } Documentation doc(getDocumentation(xquery, query, classModifs)); + if (doc.isEmpty()) + qCWarning(lcShiboken(), "%s", qPrintable(msgCannotFindDocumentation(sourceFileName, "class", className, query))); metaClass->setDocumentation(doc); @@ -134,6 +137,10 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass) funcModifs.append(funcModif); } doc.setValue(getDocumentation(xquery, query, funcModifs)); + if (doc.isEmpty()) { + qCWarning(lcShiboken(), "%s", + qPrintable(msgCannotFindDocumentation(sourceFileName, metaClass, func, query))); + } func->setDocumentation(doc); } #if 0 @@ -156,6 +163,10 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass) + className + QLatin1String("\"]/enum[@name=\"") + meta_enum->name() + QLatin1String("\"]/description"); doc.setValue(getDocumentation(xquery, query, DocModificationList())); + if (doc.isEmpty()) { + qCWarning(lcShiboken(), "%s", + qPrintable(msgCannotFindDocumentation(sourceFileName, metaClass, meta_enum, query))); + } meta_enum->setDocumentation(doc); } } @@ -184,5 +195,8 @@ Documentation QtDocParser::retrieveModuleDocumentation(const QString& name) // Module documentation QString query = QLatin1String("/WebXML/document/page[@name=\"") + moduleName + QLatin1String("\"]/description"); - return Documentation(getDocumentation(xquery, query, DocModificationList())); + const Documentation doc = getDocumentation(xquery, query, DocModificationList()); + if (doc.isEmpty()) + qCWarning(lcShiboken(), "%s", qPrintable(msgCannotFindDocumentation(sourceFile, "module", name, query))); + return doc; } |