aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/doxygenparser.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-02-20 12:40:16 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-02-21 10:03:23 +0000
commit583375253fd7e90554ae40894cf1f69f06294b43 (patch)
tree29c018ae207f8e95de25565dc5fedcf81b77670b /sources/shiboken2/ApiExtractor/doxygenparser.cpp
parentb461e45a8e3b6f80f9e6a3b4505867ece6799355 (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/doxygenparser.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/doxygenparser.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/sources/shiboken2/ApiExtractor/doxygenparser.cpp b/sources/shiboken2/ApiExtractor/doxygenparser.cpp
index 0361445fd..1cffa3b67 100644
--- a/sources/shiboken2/ApiExtractor/doxygenparser.cpp
+++ b/sources/shiboken2/ApiExtractor/doxygenparser.cpp
@@ -96,12 +96,11 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
xquery.setFocus(QUrl(doxyFilePath));
// Get class documentation
- QString classDoc = getDocumentation(xquery, QLatin1String("/doxygen/compounddef/detaileddescription"),
+ const QString classQuery = QLatin1String("/doxygen/compounddef/detaileddescription");
+ QString classDoc = getDocumentation(xquery, classQuery,
metaClass->typeEntry()->docModifications());
- if (classDoc.isEmpty()) {
- qCWarning(lcShiboken).noquote().nospace()
- << "Can't find documentation for class \"" << metaClass->name() << "\".";
- }
+ if (classDoc.isEmpty())
+ qCWarning(lcShiboken(), "%s", qPrintable(msgCannotFindDocumentation(doxyFilePath, "class", metaClass->name(), classQuery)));
metaClass->setDocumentation(classDoc);
//Functions Documentation
@@ -147,6 +146,10 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
query += QLatin1String("/../detaileddescription)[1]");
}
QString doc = getDocumentation(xquery, query, DocModificationList());
+ if (doc.isEmpty()) {
+ qCWarning(lcShiboken(), "%s",
+ qPrintable(msgCannotFindDocumentation(doxyFilePath, metaClass, func, query)));
+ }
func->setDocumentation(doc);
isProperty = false;
}
@@ -160,6 +163,10 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
QString query = QLatin1String("/doxygen/compounddef/sectiondef/memberdef/name[text()=\"")
+ field->name() + QLatin1String("\"]/../detaileddescription");
QString doc = getDocumentation(xquery, query, DocModificationList());
+ if (doc.isEmpty()) {
+ qCWarning(lcShiboken(), "%s",
+ qPrintable(msgCannotFindDocumentation(doxyFilePath, metaClass, field, query)));
+ }
field->setDocumentation(doc);
}
@@ -169,6 +176,10 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
QString query = QLatin1String("/doxygen/compounddef/sectiondef/memberdef[@kind=\"enum\"]/name[text()=\"")
+ meta_enum->name() + QLatin1String("\"]/..");
QString doc = getDocumentation(xquery, query, DocModificationList());
+ if (doc.isEmpty()) {
+ qCWarning(lcShiboken(), "%s",
+ qPrintable(msgCannotFindDocumentation(doxyFilePath, metaClass, meta_enum, query)));
+ }
meta_enum->setDocumentation(doc);
}