Skip to content

Commit f368b8a

Browse files
shiboken6/Documentation: Return documention source file from the DocParser (doxygen/qdoc)
As a drive-by skip private fields in doxygen instead of quitting. Task-number: PYSIDE-2620 Task-number: PYSIDE-1106 Change-Id: Ieb488e6168d736aa1b11e2737eb118fdb3f485cd Reviewed-by: Shyamnath Premnadh <[email protected]>
1 parent fb2596a commit f368b8a

File tree

5 files changed

+15
-12
lines changed

5 files changed

+15
-12
lines changed

sources/shiboken6/ApiExtractor/docparser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class DocParser
2727

2828
DocParser();
2929
virtual ~DocParser();
30-
virtual void fillDocumentation(const AbstractMetaClassPtr &metaClass) = 0;
30+
virtual QString fillDocumentation(const AbstractMetaClassPtr &metaClass) = 0;
3131
virtual void fillGlobalFunctionDocumentation(const AbstractMetaFunctionPtr &f);
3232
virtual void fillGlobalEnumDocumentation(AbstractMetaEnum &e);
3333

sources/shiboken6/ApiExtractor/doxygenparser.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ Documentation DoxygenParser::retrieveModuleDocumentation()
4141
return retrieveModuleDocumentation(packageName());
4242
}
4343

44-
void DoxygenParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
44+
QString DoxygenParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
4545
{
4646
if (!metaClass)
47-
return;
47+
return {};
4848

4949
QString doxyFileSuffix;
5050
if (metaClass->enclosingClass()) {
@@ -70,14 +70,14 @@ void DoxygenParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
7070
<< "Can't find doxygen file for class " << metaClass->name() << ", tried: "
7171
<< QDir::toNativeSeparators(documentationDataDirectory())
7272
<< "/{struct|class|namespace}"<< doxyFileSuffix;
73-
return;
73+
return {};
7474
}
7575

7676
QString errorMessage;
7777
XQueryPtr xquery = XQuery::create(doxyFilePath, &errorMessage);
7878
if (!xquery) {
7979
qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
80-
return;
80+
return {};
8181
}
8282

8383
static const QList<std::pair<Documentation::Type, QString>> docTags = {
@@ -166,7 +166,7 @@ void DoxygenParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
166166
//Fields
167167
for (AbstractMetaField &field : metaClass->fields()) {
168168
if (field.isPrivate())
169-
return;
169+
continue;
170170

171171
Documentation fieldDoc;
172172
for (const auto &tag : docTags) {
@@ -196,6 +196,7 @@ void DoxygenParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
196196
meta_enum.setDocumentation(Documentation(doc, {}));
197197
}
198198

199+
return doxyFilePath;
199200
}
200201

201202
Documentation DoxygenParser::retrieveModuleDocumentation(const QString& name){

sources/shiboken6/ApiExtractor/doxygenparser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class DoxygenParser : public DocParser
1010
{
1111
public:
1212
DoxygenParser() = default;
13-
void fillDocumentation(const AbstractMetaClassPtr &metaClass) override;
13+
QString fillDocumentation(const AbstractMetaClassPtr &metaClass) override;
1414
Documentation retrieveModuleDocumentation() override;
1515
Documentation retrieveModuleDocumentation(const QString& name) override;
1616
};

sources/shiboken6/ApiExtractor/qtdocparser.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,10 +299,10 @@ void QtDocParser::fillGlobalEnumDocumentation(AbstractMetaEnum &e)
299299
}
300300
}
301301

302-
void QtDocParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
302+
QString QtDocParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
303303
{
304304
if (!metaClass)
305-
return;
305+
return {};
306306

307307
auto context = metaClass->enclosingClass();
308308
while (context) {
@@ -320,7 +320,7 @@ void QtDocParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
320320
qCWarning(lcShibokenDoc).noquote().nospace()
321321
<< "Can't find qdoc file for class " << metaClass->name() << ", tried: "
322322
<< QDir::toNativeSeparators(sourceFile.absoluteFilePath());
323-
return;
323+
return {};
324324
}
325325

326326
const QString sourceFileName = sourceFile.absoluteFilePath();
@@ -329,7 +329,7 @@ void QtDocParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
329329
const auto classDocumentationO = parseWebXml(sourceFileName, &errorMessage);
330330
if (!classDocumentationO.has_value()) {
331331
qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
332-
return;
332+
return {};
333333
}
334334

335335
const auto &classDocumentation = classDocumentationO.value();
@@ -384,6 +384,8 @@ void QtDocParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
384384
qPrintable(msgCannotFindDocumentation(sourceFileName, metaClass, meta_enum, {})));
385385
}
386386
}
387+
388+
return sourceFileName;
387389
}
388390

389391
bool QtDocParser::extractEnumDocumentation(const ClassDocumentation &classDocumentation,

sources/shiboken6/ApiExtractor/qtdocparser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class QtDocParser : public DocParser
1212
{
1313
public:
1414
QtDocParser() = default;
15-
void fillDocumentation(const AbstractMetaClassPtr &metaClass) override;
15+
QString fillDocumentation(const AbstractMetaClassPtr &metaClass) override;
1616
void fillGlobalFunctionDocumentation(const AbstractMetaFunctionPtr &f) override;
1717
void fillGlobalEnumDocumentation(AbstractMetaEnum &e) override;
1818

0 commit comments

Comments
 (0)