From 7d5366966e4f29b1ccf112e42bc32a3f64bfb0bb Mon Sep 17 00:00:00 2001
From: Martin Smith
Date: Thu, 9 Sep 2010 09:58:27 +0200
Subject: qdoc: Generate more xml for module pages.
---
tools/qdoc3/ditaxmlgenerator.cpp | 66 +++++++++++++++++++++++++---------------
tools/qdoc3/ditaxmlgenerator.h | 3 ++
2 files changed, 44 insertions(+), 25 deletions(-)
diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp
index d2b20a6..55e873f 100644
--- a/tools/qdoc3/ditaxmlgenerator.cpp
+++ b/tools/qdoc3/ditaxmlgenerator.cpp
@@ -657,14 +657,14 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
case Atom::Code:
writer.writeStartElement("pre");
writer.writeAttribute("outputclass","highlightedcode");
- writeText(atom->string(), marker, relative);
+ writeText(trimmedTrailing(atom->string()), marker, relative);
writer.writeEndElement(); //
break;
case Atom::Qml:
writer.writeStartElement("pre");
writer.writeAttribute("outputclass","highlightedcode");
- writeText(atom->string(), marker, relative);
- writer.writeEndElement(); // pre
+ writeText(trimmedTrailing(atom->string()), marker, relative);
+ writer.writeEndElement(); //
break;
case Atom::CodeNew:
writer.writeStartElement("p");
@@ -672,7 +672,7 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
writer.writeEndElement(); //
writer.writeStartElement("pre");
writer.writeAttribute("outputclass","highlightedcode");
- writeText(atom->string(), marker, relative);
+ writeText(trimmedTrailing(atom->string()), marker, relative);
writer.writeEndElement(); //
break;
case Atom::CodeOld:
@@ -683,7 +683,7 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
case Atom::CodeBad:
writer.writeStartElement("pre");
writer.writeAttribute("outputclass","highlightedcode");
- writer.writeCharacters(trimmedTrailing(protectEnc(plainCode(indent(codeIndent,atom->string())))));
+ writer.writeCharacters(trimmedTrailing(protectEnc(plainCode(atom->string()))));
writer.writeEndElement(); //
break;
case Atom::FootnoteLeft:
@@ -1516,6 +1516,25 @@ DitaXmlGenerator::generateClassLikeNode(const InnerNode* inner, CodeMarker* mark
}
/*!
+ Write a paragraph for the \a target and a poaragraph for
+ the \a header. Use the \a attribute for the \a header.
+ */
+void DitaXmlGenerator::writeTargetAndHeader(const QString& target,
+ const QString& header,
+ const QString& attribute)
+{
+ writer.writeStartElement("p");
+ writeGuidAttribute(registerRef(target));
+ writer.writeAttribute("outputclass","target");
+ writer.writeCharacters(header);
+ writer.writeEndElement(); //
+ writer.writeStartElement("p");
+ writer.writeAttribute("outputclass",attribute);
+ writer.writeCharacters(header);
+ writer.writeEndElement(); //
+}
+
+/*!
Generate the html page for a qdoc file that doesn't map
to an underlying c++ file.
*/
@@ -1585,10 +1604,25 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker
writer.writeEndElement(); //
generateBrief(fake, marker); //
+ if (fake->subType() == Node::Module) {
+ generateStatus(fake, marker);
+ if (moduleNamespaceMap.contains(fake->name())) {
+ writeTargetAndHeader("namespaces","Namespaces","h2");
+ generateAnnotatedList(fake, marker, moduleNamespaceMap[fake->name()]);
+ }
+ if (moduleClassMap.contains(fake->name())) {
+ writeTargetAndHeader("classes","Classes","h2");
+ generateAnnotatedList(fake, marker, moduleClassMap[fake->name()]);
+ }
+ }
if (!fake->doc().isEmpty()) {
writer.writeStartElement("body");
+ if (fake->subType() == Node::Module) {
+ writeTargetAndHeader("details","Detailed Description","h2");
+ }
generateBody(fake, marker);
+ generateAlsoList(fake, marker);
writer.writeEndElement(); //