diff options
Diffstat (limited to 'tools/qdoc3/helpprojectwriter.cpp')
-rw-r--r-- | tools/qdoc3/helpprojectwriter.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tools/qdoc3/helpprojectwriter.cpp b/tools/qdoc3/helpprojectwriter.cpp index f2e2f04..1c7fcbf 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; } |