summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3/helpprojectwriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qdoc3/helpprojectwriter.cpp')
-rw-r--r--tools/qdoc3/helpprojectwriter.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/tools/qdoc3/helpprojectwriter.cpp b/tools/qdoc3/helpprojectwriter.cpp
index f2e2f04786..1c7fcbf549 100644
--- a/tools/qdoc3/helpprojectwriter.cpp
+++ b/tools/qdoc3/helpprojectwriter.cpp
@@ -350,6 +350,14 @@ bool HelpProjectWriter::generateSection(HelpProject &project,
}
break;
+ case Node::Variable:
+ {
+ QString location = HtmlGenerator::fullDocumentLocation(node);
+ project.files.insert(location.left(location.lastIndexOf(QLatin1Char('#'))));
+ project.keywords.append(keywordDetails(node));
+ }
+ break;
+
// Fake nodes (such as manual pages) contain subtypes, titles and other
// attributes.
case Node::Fake: {
@@ -694,6 +702,8 @@ void HelpProjectWriter::generateProject(HelpProject &project)
}
} else {
// Find a contents node and navigate from there, using the NextLink values.
+ QSet<QString> visited;
+
foreach (const Node *node, subproject.nodes) {
QString nextTitle = node->links().value(Node::NextLink).first;
if (!nextTitle.isEmpty() &&
@@ -707,9 +717,10 @@ void HelpProjectWriter::generateProject(HelpProject &project)
while (nextPage) {
writeNode(project, writer, nextPage);
nextTitle = nextPage->links().value(Node::NextLink).first;
- if(nextTitle.isEmpty())
+ if (nextTitle.isEmpty() || visited.contains(nextTitle))
break;
nextPage = const_cast<FakeNode *>(tree->findFakeNodeByTitle(nextTitle));
+ visited.insert(nextTitle);
}
break;
}