diff options
Diffstat (limited to 'src/tools/qdoc/helpprojectwriter.cpp')
-rw-r--r-- | src/tools/qdoc/helpprojectwriter.cpp | 48 |
1 files changed, 44 insertions, 4 deletions
diff --git a/src/tools/qdoc/helpprojectwriter.cpp b/src/tools/qdoc/helpprojectwriter.cpp index d46f887518..be81d5c8dd 100644 --- a/src/tools/qdoc/helpprojectwriter.cpp +++ b/src/tools/qdoc/helpprojectwriter.cpp @@ -131,6 +131,9 @@ void HelpProjectWriter::readSelectors(SubProject &subproject, const QStringList typeHash["function"] = Node::Function; typeHash["property"] = Node::Property; typeHash["variable"] = Node::Variable; + typeHash["group"] = Node::Group; + typeHash["module"] = Node::Module; + typeHash["qmlmodule"] = Node::QmlModule; typeHash["qmlproperty"] = Node::QmlProperty; typeHash["qmlsignal"] = Node::QmlSignal; typeHash["qmlsignalhandler"] = Node::QmlSignalHandler; @@ -141,8 +144,6 @@ void HelpProjectWriter::readSelectors(SubProject &subproject, const QStringList subTypeHash["example"] = Node::Example; subTypeHash["headerfile"] = Node::HeaderFile; subTypeHash["file"] = Node::File; - subTypeHash["group"] = Node::Group; - subTypeHash["module"] = Node::Module; subTypeHash["page"] = Node::Page; subTypeHash["externalpage"] = Node::ExternalPage; subTypeHash["qmlclass"] = Node::QmlClass; @@ -316,6 +317,34 @@ bool HelpProjectWriter::generateSection(HelpProject &project, } break; + case Node::Group: + case Node::Module: + case Node::QmlModule: + { + const CollectionNode* cn = static_cast<const CollectionNode*>(node); + if (!cn->fullTitle().isEmpty()) { + if (cn->doc().hasKeywords()) { + foreach (const Atom* keyword, cn->doc().keywords()) { + if (!keyword->string().isEmpty()) { + QStringList details; + details << keyword->string() + << keyword->string() + << gen_->fullDocumentLocation(node, Generator::useOutputSubdirs()) + + QLatin1Char('#') + Doc::canonicalTitle(keyword->string()); + project.keywords.append(details); + } + else + cn->doc().location().warning( + tr("Bad keyword in %1").arg(gen_->fullDocumentLocation(node,Generator::useOutputSubdirs())) + ); + } + } + project.keywords.append(keywordDetails(node)); + project.files.insert(gen_->fullDocumentLocation(node,Generator::useOutputSubdirs())); + } + } + break; + case Node::Property: case Node::QmlProperty: case Node::QmlSignal: @@ -601,6 +630,17 @@ void HelpProjectWriter::writeNode(HelpProject &project, QXmlStreamWriter &writer writer.writeEndElement(); // section } break; + case Node::Group: + case Node::Module: + case Node::QmlModule: + { + const CollectionNode* cn = static_cast<const CollectionNode*>(node); + writer.writeStartElement("section"); + writer.writeAttribute("ref", href); + writer.writeAttribute("title", cn->fullTitle()); + writer.writeEndElement(); // section + } + break; default: ; } @@ -612,7 +652,7 @@ void HelpProjectWriter::generateProject(HelpProject &project) if (!project.indexRoot.isEmpty()) rootNode = qdb_->findDocNodeByTitle(project.indexRoot); else - rootNode = qdb_->treeRoot(); + rootNode = qdb_->primaryTreeRoot(); if (!rootNode) return; @@ -655,7 +695,7 @@ void HelpProjectWriter::generateProject(HelpProject &project) writer.writeStartElement("section"); const Node* node = qdb_->findDocNodeByTitle(project.indexTitle); if (node == 0) - node = qdb_->findNode(QStringList("index.html")); + node = qdb_->findNodeByNameAndType(QStringList("index.html"), Node::Document, Node::Page); QString indexPath; // Never use a collision node as a landing page if (node && !node->isCollisionNode()) |