From 68d0073707e8c3e3d7a5f93b5cf8ba9d02e2a468 Mon Sep 17 00:00:00 2001
From: Martin Smith
Date: Sat, 23 Oct 2010 11:00:46 +0200
Subject: qdoc: Output the \qmlclass as a .
Still more work to do here to make the detail sections correct.
---
tools/qdoc3/ditaxmlgenerator.cpp | 155 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 151 insertions(+), 4 deletions(-)
diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp
index 42fa40a..8ae109d 100644
--- a/tools/qdoc3/ditaxmlgenerator.cpp
+++ b/tools/qdoc3/ditaxmlgenerator.cpp
@@ -1944,8 +1944,146 @@ DitaXmlGenerator::generateClassLikeNode(const InnerNode* inner, CodeMarker* mark
#endif
xmlWriter().writeEndElement(); //
}
+ else if ((inner->type() == Node::Fake) && (inner->subType() == Node::QmlClass)) {
+ const QmlClassNode* qcn = const_cast(static_cast(inner));
+ const ClassNode* cn = qcn->classNode();
+ rawTitle = marker->plainName(inner);
+ fullTitle = marker->plainFullName(inner);
+ title = rawTitle + " Element Reference";
+ //QString fullTitle = fake->fullTitle();
+ //QString htmlTitle = fullTitle;
+
+ generateHeader(inner, fullTitle);
+ generateBrief(inner, marker); //
+
+ // not included:
+
+ xmlWriter().writeStartElement(CXXCLASSDETAIL);
+ xmlWriter().writeStartElement("apiDesc");
+ xmlWriter().writeAttribute("spectitle",title);
+ Text brief = qcn->doc().briefText(); // zzz
+ if (!brief.isEmpty()) {
+ xmlWriter().writeStartElement("p");
+ generateText(brief, qcn, marker);
+ xmlWriter().writeEndElement(); //
+ }
+ generateQmlInstantiates(qcn, marker);
+ generateQmlInherits(qcn, marker);
+ generateQmlInheritedBy(qcn, marker);
+ generateSince(qcn, marker);
+ xmlWriter().writeEndElement(); //
+
+ QList summarySections;
+ summarySections = marker->qmlSections(qcn,CodeMarker::Summary,0);
+ s = summarySections.begin();
+ while (s != summarySections.end()) {
+ QString attr;
+ if (!s->members.isEmpty()) {
+ xmlWriter().writeStartElement("section");
+ attr = cleanRef((*s).name).toLower() + " redundant";
+ xmlWriter().writeAttribute("outputclass",attr);
+ xmlWriter().writeStartElement("title");
+ xmlWriter().writeAttribute("outputclass","h2");
+ xmlWriter().writeCharacters(protectEnc((*s).name));
+ xmlWriter().writeEndElement(); //
+ generateQmlSummary(*s,qcn,marker);
+ //generateSection(s->members, inner, marker, CodeMarker::Summary);
+ //generateSectionInheritedList(*s, inner, marker);
+ xmlWriter().writeEndElement(); //
+ }
+ if (!s->reimpMembers.isEmpty()) {
+ qDebug() << "GOT HEAH!";
+ QString name = QString("Reimplemented ") + (*s).name;
+ attr = cleanRef(name).toLower() + " redundant";
+ xmlWriter().writeStartElement("section");
+ xmlWriter().writeAttribute("outputclass",attr);
+ xmlWriter().writeStartElement("title");
+ xmlWriter().writeAttribute("outputclass","h2");
+ xmlWriter().writeCharacters(protectEnc(name));
+ xmlWriter().writeEndElement(); //
+ generateSection(s->reimpMembers, inner, marker, CodeMarker::Summary);
+ generateSectionInheritedList(*s, inner, marker);
+ xmlWriter().writeEndElement(); //
+ }
+ ++s;
+ }
+
+ writeDetailedDescription(qcn, marker, false, QString("Detailed Description"));
+ if (cn)
+ generateQmlText(cn->doc().body(), cn, marker, qcn->name());
+
+ QList detailSections;
+ detailSections = marker->qmlSections(qcn,CodeMarker::Detailed,0);
+ s = detailSections.begin();
+ while (s != detailSections.end()) {
+ if (!s->members.isEmpty()) {
+ QString attr;
+ xmlWriter().writeStartElement("section");
+ attr = cleanRef((*s).name).toLower();
+ xmlWriter().writeAttribute("outputclass",attr);
+ xmlWriter().writeStartElement("title");
+ xmlWriter().writeAttribute("outputclass","h2");
+ xmlWriter().writeCharacters(protectEnc((*s).name));
+ xmlWriter().writeEndElement(); //
+ NodeList::ConstIterator m = (*s).members.begin();
+ while (m != (*s).members.end()) {
+ generateDetailedQmlMember(*m, qcn, marker);
+ ++m;
+ }
+ xmlWriter().writeEndElement(); //
+ }
+ ++s;
+ }
+
+ xmlWriter().writeEndElement(); //
+ xmlWriter().writeEndElement(); //
+ }
}
+
+#if 0
+ while (s != detailSections.end()) {
+ if ((*s).name == "Member Function Documentation") {
+ writeFunctions((*s),qcn,marker);
+ }
+ else if ((*s).name == "Member Type Documentation") {
+ writeEnumerations((*s),marker);
+ writeTypedefs((*s),marker);
+ }
+ else if ((*s).name == "Member Variable Documentation") {
+ writeDataMembers((*s),marker);
+ }
+ else if ((*s).name == "Property Documentation") {
+ writeProperties((*s),marker);
+ }
+ else if ((*s).name == "Macro Documentation") {
+ writeMacros((*s),marker);
+ }
+ ++s;
+ }
+#endif
+#if 0
+ QString membersLink = generateListOfAllMemberFile(inner, marker);
+ QString obsoleteLink = generateLowStatusMemberFile(inner,
+ marker,
+ CodeMarker::Obsolete);
+ QString compatLink = generateLowStatusMemberFile(inner,
+ marker,
+ CodeMarker::Compat);
+ if (!membersLink.isEmpty() ||
+ !obsoleteLink.isEmpty() ||
+ !compatLink.isEmpty()) {
+ xmlWriter().writeStartElement("ul");
+ if (!membersLink.isEmpty())
+ writeXrefListItem(membersLink,"List of all members, including inherited members");
+ if (!obsoleteLink.isEmpty())
+ writeXrefListItem(obsoleteLink,"Obsolete members");
+ if (!compatLink.isEmpty())
+ writeXrefListItem(compatLink,"Qt 3 support members");
+ xmlWriter().writeEndElement(); //
+ }
+#endif
+
/*!
Write a list item for a \a link with the given \a text.
*/
@@ -2035,7 +2173,6 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker
xmlWriter().writeEndElement(); //
}
}
-#endif
else if (fake->subType() == Node::QmlClass) {
const QmlClassNode* qml_cn = static_cast(fake);
const ClassNode* cn = qml_cn->classNode();
@@ -2091,6 +2228,7 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker
xmlWriter().writeEndElement(); //