@@ -250,6 +250,14 @@ bool HelpProjectWriter::generateSection(HelpProject &project, QXmlStreamWriter &
250
250
}
251
251
}
252
252
253
+ auto appendDocKeywords = [&](const Node *n) {
254
+ for (const auto *kw : n->doc ().keywords ()) {
255
+ if (!kw->string ().isEmpty ()) {
256
+ project.m_keywords .append (Keyword (kw->string (), kw->string (),
257
+ m_gen->fullDocumentLocation (n)));
258
+ }
259
+ }
260
+ };
253
261
// Unseen group nodes require no further processing as they have no documentation
254
262
if (unseenGroup)
255
263
return false ;
@@ -263,19 +271,7 @@ bool HelpProjectWriter::generateSection(HelpProject &project, QXmlStreamWriter &
263
271
break ;
264
272
case Node::QmlType:
265
273
case Node::QmlValueType:
266
- if (node->doc ().hasKeywords ()) {
267
- const auto keywords = node->doc ().keywords ();
268
- for (const Atom *keyword : keywords) {
269
- if (!keyword->string ().isEmpty ()) {
270
- project.m_keywords .append (Keyword (keyword->string (), keyword->string (),
271
- m_gen->fullDocumentLocation (node)));
272
- }
273
- else
274
- node->doc ().location ().warning (
275
- QStringLiteral (" Bad keyword in %1" )
276
- .arg (m_gen->fullDocumentLocation (node)));
277
- }
278
- }
274
+ appendDocKeywords (node);
279
275
project.m_keywords .append (keywordDetails (node));
280
276
break ;
281
277
@@ -308,21 +304,8 @@ bool HelpProjectWriter::generateSection(HelpProject &project, QXmlStreamWriter &
308
304
case Node::Group:
309
305
case Node::Module:
310
306
case Node::QmlModule: {
311
- const auto *cn = static_cast <const CollectionNode *>(node);
312
- if (!cn->fullTitle ().isEmpty ()) {
313
- if (cn->doc ().hasKeywords ()) {
314
- const auto keywords = cn->doc ().keywords ();
315
- for (const Atom *keyword : keywords) {
316
- if (!keyword->string ().isEmpty ()) {
317
- project.m_keywords .append (
318
- Keyword (keyword->string (), keyword->string (),
319
- m_gen->fullDocumentLocation (node)));
320
- } else
321
- cn->doc ().location ().warning (
322
- QStringLiteral (" Bad keyword in %1" )
323
- .arg (m_gen->fullDocumentLocation (node)));
324
- }
325
- }
307
+ if (!node->fullTitle ().isEmpty ()) {
308
+ appendDocKeywords (node);
326
309
project.m_keywords .append (keywordDetails (node));
327
310
}
328
311
} break ;
@@ -379,21 +362,8 @@ bool HelpProjectWriter::generateSection(HelpProject &project, QXmlStreamWriter &
379
362
// Page nodes (such as manual pages) contain subtypes, titles and other
380
363
// attributes.
381
364
case Node::Page: {
382
- const auto *pn = static_cast <const PageNode *>(node);
383
- if (!pn->fullTitle ().isEmpty ()) {
384
- if (pn->doc ().hasKeywords ()) {
385
- const auto keywords = pn->doc ().keywords ();
386
- for (const Atom *keyword : keywords) {
387
- if (!keyword->string ().isEmpty ()) {
388
- project.m_keywords .append (
389
- Keyword (keyword->string (), keyword->string (),
390
- m_gen->fullDocumentLocation (node)));
391
- } else {
392
- QString loc = m_gen->fullDocumentLocation (node);
393
- pn->doc ().location ().warning (QStringLiteral (" Bad keyword in %1" ).arg (loc));
394
- }
395
- }
396
- }
365
+ if (!node->fullTitle ().isEmpty ()) {
366
+ appendDocKeywords (node);
397
367
project.m_keywords .append (keywordDetails (node));
398
368
}
399
369
break ;
0 commit comments