From a7bc21d010bae026bf704be5ab8805078e007a10 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 23 Apr 2012 12:41:16 +0200 Subject: qdoc: Update qdoc to use QML spec for DITA qdoc now generates DITA XML from QML docs according to the QML specialization. Change-Id: I51d93c2ab3b1deefab9bbedcd2e752f49648809f Reviewed-by: Casper van Donderen --- src/tools/qdoc/ditaxmlgenerator.cpp | 424 +++++++++++++++++++++--------------- src/tools/qdoc/ditaxmlgenerator.h | 34 ++- src/tools/qdoc/generator.cpp | 9 +- src/tools/qdoc/generator.h | 8 +- 4 files changed, 285 insertions(+), 190 deletions(-) diff --git a/src/tools/qdoc/ditaxmlgenerator.cpp b/src/tools/qdoc/ditaxmlgenerator.cpp index 9c85e7b02a..73913d335f 100644 --- a/src/tools/qdoc/ditaxmlgenerator.cpp +++ b/src/tools/qdoc/ditaxmlgenerator.cpp @@ -70,9 +70,15 @@ QString DitaXmlGenerator::ditaTags[] = { "", "alt", + "apiData", + "apiDef", + "apiDefItem", "apiDesc", + "apiDetail", + "apiItemName", "APIMap", "apiName", + "apiRef", "apiRelation", "audience", "author", @@ -215,6 +221,21 @@ QString DitaXmlGenerator::ditaTags[] = "prodname", "prolog", "publisher", + "qmlData", + "qmlDef", + "qmlDefItem", + "qmlDesc", + "qmlDetail", + "qmlItemName", + "qmlMethod", + "qmlName", + "qmlProperty", + "qmlPropertyGroup", + "qmlQualifier", + "qmlSignal", + "qmlSignalHandler", + "qmlSignature", + "qmlType", "related-links", "resourceid", "revised", @@ -335,18 +356,18 @@ DitaXmlGenerator::DitaTag DitaXmlGenerator::currentTag() } /*! - Write the start tag \c{}. if \a title is not - empty, generate a GUID from it and write the GUID as the - value of the \e{id} attribute. + Write the start \a tag. if \a title is not empty, generate + a GUID from it and write the GUID as the value of the \e{id} + attribute. Then if \a outputclass is not empty, write it as the value of the \a outputclass attribute. Fiunally, set the section nesting level to 1 and return 1. */ -int DitaXmlGenerator::enterApiDesc(const QString& outputclass, const QString& title) +int DitaXmlGenerator::enterDesc(DitaTag tag, const QString& outputclass, const QString& title) { - writeStartTag(DT_apiDesc); + writeStartTag(tag); if (!title.isEmpty()) { writeGuidAttribute(title); //Are there cases where the spectitle is required? @@ -1801,7 +1822,7 @@ DitaXmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker) writeLocation(nsn); writeEndTag(); // - enterApiDesc(QString(),title); + enterDesc(DT_apiDesc,QString(),title); #if 0 // To be removed, if really not needed. Text brief = nsn->doc().briefText(); // zzz @@ -1937,7 +1958,7 @@ DitaXmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker) writeLocation(cn); writeEndTag(); // - enterApiDesc(QString(),title); + enterDesc(DT_apiDesc,QString(),title); #if 0 // To be removed, if really not needed. Text brief = cn->doc().briefText(); // zzz @@ -2063,7 +2084,7 @@ DitaXmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker) writeProlog(inner); writeStartTag(DT_cxxClassDetail); - enterApiDesc(QString(),title); + enterDesc(DT_apiDesc,QString(),title); #if 0 // To be removed, if really not needed. Text brief = fn->doc().briefText(); // zzz @@ -2177,15 +2198,19 @@ DitaXmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker) rawTitle = marker->plainName(inner); fullTitle = marker->plainFullName(inner); title = rawTitle + " Element"; - //QString fullTitle = fake->fullTitle(); - //QString htmlTitle = fullTitle; generateHeader(inner, fullTitle); generateBrief(inner, marker); // writeProlog(inner); - writeStartTag(DT_cxxClassDetail); - enterApiDesc(QString(),title); + writeStartTag(DT_qmlDetail); + generateQmlModuleDef(qcn); + generateQmlInherits(qcn,marker); + generateQmlInstantiates(qcn,marker); + generateQmlInheritedBy(qcn, marker); + generateQmlSince(qcn); + + enterDesc(DT_qmlDesc,QString(),title); #if 0 // To be removed, if really not needed. Text brief = qcn->doc().briefText(); // zzz @@ -2195,10 +2220,6 @@ DitaXmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker) writeEndTag(); //

} #endif - generateQmlInstantiates(qcn, marker); - generateQmlInherits(qcn, marker); - generateQmlInheritedBy(qcn, marker); - generateSince(qcn, marker); enterSection("",""); generateBody(qcn, marker); if (cn) { @@ -2206,43 +2227,14 @@ DitaXmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker) generateAlsoList(cn, marker); } leaveSection(); - leaveSection(); //
- - QList
summarySections; - summarySections = marker->qmlSections(qcn,CodeMarker::Summary); - if (!summarySections.isEmpty()) { - enterSection("redundant",QString()); - s = summarySections.begin(); - while (s != summarySections.end()) { - QString attr; - if (!s->members.isEmpty()) { - writeStartTag(DT_p); - attr = cleanRef((*s).name).toLower() + " h2"; - xmlWriter().writeAttribute("outputclass",attr); - writeCharacters(protectEnc((*s).name)); - writeEndTag(); //

- generateQmlSummary(*s,qcn,marker); - //generateSection(s->members, inner, marker, CodeMarker::Summary); - //generateSectionInheritedList(*s, inner, marker); - } - ++s; - } - leaveSection(); - } + leaveSection(); // + writeEndTag(); // - QList
detailSections; - detailSections = marker->qmlSections(qcn,CodeMarker::Detailed); - if (!detailSections.isEmpty()) { - enterSection("details",QString()); - s = detailSections.begin(); - while (s != detailSections.end()) { + QList
members = marker->qmlSections(qcn,CodeMarker::Detailed); + if (!members.isEmpty()) { + s = members.begin(); + while (s != members.end()) { if (!s->members.isEmpty()) { - QString attr; - writeStartTag(DT_p); - attr = cleanRef((*s).name).toLower() + " h2"; - xmlWriter().writeAttribute("outputclass",attr); - writeCharacters(protectEnc((*s).name)); - writeEndTag(); //

NodeList::ConstIterator m = (*s).members.begin(); while (m != (*s).members.end()) { generateDetailedQmlMember(*m, qcn, marker); @@ -2251,14 +2243,11 @@ DitaXmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker) } ++s; } - leaveSection(); } - writeEndTag(); // - writeEndTag(); // + writeEndTag(); // } } - /*! Write a list item for a \a link with the given \a text. */ @@ -2491,14 +2480,14 @@ void DitaXmlGenerator::generateHeader(const Node* node, outputclass = "headerfile"; } else if (node->subType() == Node::QmlClass) { - mainTag = DT_cxxClass; + mainTag = DT_qmlType; nameTag = DT_apiName; - dtd = "dtd/cxxClass.dtd"; - version = "0.7.0"; + dtd = "dtd/qmlType.dtd"; + version = "0.1.0"; doctype = ""; - outputclass = "QML-class"; + outputclass = "QML-type"; } else { mainTag = DT_topic; @@ -4429,6 +4418,44 @@ void DitaXmlGenerator::generateQmlSummary(const Section& section, } } +/*! + Writes the QML property \a qpn to the current DITA XML file. + Assumes that the correct start tag has already been written, + but nothing has been written inside that tag. This function + begins by writing the GUID id attribute for the property. + */ +void DitaXmlGenerator::startQmlProperty(QmlPropertyNode* qpn, + const InnerNode* relative, + CodeMarker* marker) +{ + writeStartTag(DT_qmlProperty); + writeGuidAttribute((Node*)qpn); + writeStartTag(DT_apiName); + writeCharacters(qpn->name()); + writeEndTag(); // + generateBrief(qpn, marker); // + writeStartTag(DT_qmlDetail); + writeStartTag(DT_qmlDef); + if (!qpn->isReadOnlySet()) + qpn->setReadOnly(!qpn->isWritable(tree_)); + if (qpn->isReadOnly()) { + writeStartTag(DT_qmlQualifier); + xmlWriter().writeAttribute("name","read-only"); + xmlWriter().writeAttribute("value","read-only"); + writeEndTag(); // + } + if (qpn->isDefault()) { + writeStartTag(DT_qmlQualifier); + xmlWriter().writeAttribute("name","default"); + xmlWriter().writeAttribute("value","default"); + writeEndTag(); // + } + writeStartTag(DT_apiData); + generateQmlItem(qpn, relative, marker, false); + writeEndTag(); // + writeEndTag(); // +} + /*! Outputs the DITA detailed documentation for a section on a QML element reference page. @@ -4439,71 +4466,54 @@ void DitaXmlGenerator::generateDetailedQmlMember(Node* node, { QString marked; QmlPropertyNode* qpn = 0; + if (node->subType() == Node::QmlPropertyGroup) { const QmlPropGroupNode* qpgn = static_cast(node); NodeList::ConstIterator p = qpgn->childNodes().begin(); - writeStartTag(DT_ul); - while (p != qpgn->childNodes().end()) { - if ((*p)->type() == Node::QmlProperty) { - qpn = static_cast(*p); - writeStartTag(DT_li); - writeGuidAttribute((Node*)qpn); - QString attr; - if (!qpn->isReadOnlySet()) - qpn->setReadOnly(!qpn->isWritable(tree_)); - if (qpn->isReadOnly()) - attr = "read-only"; - if (qpn->isDefault()) { - if (!attr.isEmpty()) - attr += QLatin1Char(' '); - attr += "default"; + if (qpgn->childNodes().size() == 1) { + qpn = static_cast(*p); + startQmlProperty(qpn,relative,marker); + writeQmlDesc(node, marker); + writeEndTag(); // + writeEndTag(); // + } + else { + writeStartTag(DT_qmlPropertyGroup); + writeStartTag(DT_apiName); + writeCharacters("..."); + writeEndTag(); // + writeStartTag(DT_qmlDetail); + writeQmlDesc(node, marker); + writeEndTag(); // + while (p != qpgn->childNodes().end()) { + if ((*p)->type() == Node::QmlProperty) { + qpn = static_cast(*p); + startQmlProperty(qpn,relative,marker); + writeEndTag(); // + writeEndTag(); // } - if (!attr.isEmpty()) - xmlWriter().writeAttribute("outputclass",attr); - generateQmlItem(qpn, relative, marker, false); - writeEndTag(); // + ++p; } - ++p; + writeEndTag(); // } else if (node->type() == Node::QmlProperty) { qpn = static_cast(node); - /* - If the QML property node has a single subproperty, - override, replace qpn with that override node and - proceed as normal. - */ - if (qpn->qmlPropNodes().size() == 1) { + if (qpn->qmlPropNodes().isEmpty()) { + startQmlProperty(qpn,relative,marker); + writeQmlDesc(node, marker); + writeEndTag(); // + writeEndTag(); // + } + else if (qpn->qmlPropNodes().size() == 1) { Node* n = qpn->qmlPropNodes().at(0); - if (n->type() == Node::QmlProperty) + if (n->type() == Node::QmlProperty) { qpn = static_cast(n); - } - /* - Now qpn either has no overrides, or it has more - than 1. If it has none, proceed to output as nortmal. - */ - if (qpn->qmlPropNodes().isEmpty()) { - writeStartTag(DT_ul); - writeStartTag(DT_li); - writeGuidAttribute((Node*)qpn); - QString attr; - if (!qpn->isReadOnlySet()) { - if (qpn->declarativeCppNode()) - qpn->setReadOnly(!qpn->isWritable(tree_)); - } - if (qpn->isReadOnly()) - attr = "read-only"; - if (qpn->isDefault()) { - if (!attr.isEmpty()) - attr += QLatin1Char(' '); - attr += "default"; - } - if (!attr.isEmpty()) - xmlWriter().writeAttribute("outputclass",attr); - generateQmlItem(qpn, relative, marker, false); - writeEndTag(); // - writeEndTag(); // + startQmlProperty(qpn,relative,marker); + writeQmlDesc(node, marker); + writeEndTag(); // + writeEndTag(); // + } } else { /* @@ -4511,68 +4521,93 @@ void DitaXmlGenerator::generateDetailedQmlMember(Node* node, Process the whole list as we would for a QML property group. */ + writeStartTag(DT_qmlPropertyGroup); + writeStartTag(DT_apiName); + writeCharacters("..."); + writeEndTag(); // + writeStartTag(DT_qmlDetail); + writeQmlDesc(node, marker); + writeEndTag(); // NodeList::ConstIterator p = qpn->qmlPropNodes().begin(); - writeStartTag(DT_ul); while (p != qpn->qmlPropNodes().end()) { if ((*p)->type() == Node::QmlProperty) { QmlPropertyNode* q = static_cast(*p); - writeStartTag(DT_li); - writeGuidAttribute((Node*)q); - QString attr; - if (!qpn->isReadOnlySet()) - qpn->setReadOnly(!qpn->isWritable(tree_)); - if (qpn->isReadOnly()) - attr = "read-only"; - if (qpn->isDefault()) { - if (!attr.isEmpty()) - attr += QLatin1Char(' '); - attr += "default"; - } - if (!attr.isEmpty()) - xmlWriter().writeAttribute("outputclass",attr); - generateQmlItem(q, relative, marker, false); - writeEndTag(); // + startQmlProperty(q,relative,marker); + writeEndTag(); // + writeEndTag(); // } ++p; } - writeEndTag(); // + writeEndTag(); // type() == Node::QmlSignal) { - Node* n = const_cast(node); - writeStartTag(DT_ul); - writeStartTag(DT_li); - writeGuidAttribute(n); - marked = getMarkedUpSynopsis(n, relative, marker, CodeMarker::Detailed); - writeText(marked, marker, relative); - writeEndTag(); // - writeEndTag(); // - } - else if (node->type() == Node::QmlSignalHandler) { - Node* n = const_cast(node); - writeStartTag(DT_ul); - writeStartTag(DT_li); - writeGuidAttribute(n); - marked = getMarkedUpSynopsis(n, relative, marker, CodeMarker::Detailed); - writeText(marked, marker, relative); - writeEndTag(); // - writeEndTag(); // - } - else if (node->type() == Node::QmlMethod) { - Node* n = const_cast(node); - writeStartTag(DT_ul); - writeStartTag(DT_li); - writeGuidAttribute(n); - marked = getMarkedUpSynopsis(n, relative, marker, CodeMarker::Detailed); - writeText(marked, marker, relative); - writeEndTag(); // - writeEndTag(); // - } + else if (node->type() == Node::QmlSignal) + writeQmlRef(DT_qmlSignal,node,relative,marker); + else if (node->type() == Node::QmlSignalHandler) + writeQmlRef(DT_qmlSignalHandler,node,relative,marker); + else if (node->type() == Node::QmlMethod) + writeQmlRef(DT_qmlMethod,node,relative,marker); +} + +/*! + Outputs the DITA detailed documentation for a section + on a QML element reference page. + */ +void DitaXmlGenerator::writeQmlRef(DitaTag tag, + Node* node, + const InnerNode* relative, + CodeMarker* marker) +{ + writeStartTag(tag); + Node* n = const_cast(node); + writeGuidAttribute(n); + writeStartTag(DT_apiName); + writeCharacters(n->name()); + writeEndTag(); // + writeStartTag(DT_qmlDetail); + writeStartTag(DT_qmlDef); + writeStartTag(DT_apiData); + QString marked = getMarkedUpSynopsis(n, relative, marker, CodeMarker::Detailed); + writeText(marked, marker, relative); + writeEndTag(); // + writeEndTag(); // + writeQmlDesc(node, marker); + writeEndTag(); // + writeEndTag(); // tag +} + +/*! + Writes the tag and its contents for the \a node. + The \a marker is used for markeing up the text body. + */ +void DitaXmlGenerator::writeQmlDesc(Node* node, CodeMarker* marker) +{ + writeStartTag(DT_qmlDesc); generateStatus(node, marker); generateBody(node, marker); generateThreadSafeness(node, marker); generateSince(node, marker); generateAlsoList(node, marker); + writeEndTag(); // +} + +/*! + This generates an (actually ) in which the + QML module name and version number are specified. + */ +void DitaXmlGenerator::generateQmlModuleDef(QmlClassNode* qcn) +{ + writeStartTag(DT_qmlDef); + xmlWriter().writeAttribute("outputclass","import"); + writeStartTag(DT_qmlItemName); + xmlWriter().writeAttribute("outputclass","module"); + writeCharacters(qcn->qmlModuleName()); + writeEndTag(); // + writeStartTag(DT_qmlData); + xmlWriter().writeAttribute("outputclass","version"); + writeCharacters(qcn->qmlModuleVersion()); + writeEndTag(); // + writeEndTag(); // } /*! @@ -4585,17 +4620,40 @@ void DitaXmlGenerator::generateQmlInherits(const QmlClassNode* qcn, CodeMarker* return; const FakeNode* base = qcn->qmlBase(); if (base) { - writeStartTag(DT_p); + writeStartTag(DT_qmlDef); xmlWriter().writeAttribute("outputclass","inherits"); + writeStartTag(DT_qmlData); Text text; - text << "[Inherits "; text << Atom(Atom::LinkNode,CodeMarker::stringForNode(base)); text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); text << Atom(Atom::String, base->name()); text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); - text << "]"; generateText(text, qcn, marker); - writeEndTag(); //

+ writeEndTag(); // + writeEndTag(); // + } +} + +/*! + Output the "Inherit by" list for the QML element, + if it is inherited by any other elements. + */ +void DitaXmlGenerator::generateQmlInheritedBy(const QmlClassNode* qcn, CodeMarker* marker) +{ + if (qcn) { + NodeList subs; + QmlClassNode::subclasses(qcn->name(),subs); + if (!subs.isEmpty()) { + writeStartTag(DT_qmlDef); + xmlWriter().writeAttribute("outputclass","inherited-by"); + writeStartTag(DT_qmlData); + Text text; + appendSortedQmlNames(text,qcn,subs,marker); + text << Atom::ParaRight; + generateText(text, qcn, marker); + writeEndTag(); // + writeEndTag(); // + } } } @@ -4610,22 +4668,32 @@ void DitaXmlGenerator::generateQmlInstantiates(QmlClassNode* qcn, CodeMarker* ma { ClassNode* cn = qcn->classNode(); if (cn && (cn->status() != Node::Internal)) { - writeStartTag(DT_p); - xmlWriter().writeAttribute("outputclass","instantiates"); + writeStartTag(DT_qmlDef); + xmlWriter().writeAttribute("outputclass","instantiates-cpp-class"); + writeStartTag(DT_qmlData); Text text; - text << "["; - text << Atom(Atom::LinkNode,CodeMarker::stringForNode(qcn)); - text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); - text << Atom(Atom::String, qcn->name()); - text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); - text << " instantiates the C++ class "; text << Atom(Atom::LinkNode,CodeMarker::stringForNode(cn)); text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); text << Atom(Atom::String, cn->name()); text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); - text << "]"; generateText(text, qcn, marker); - writeEndTag(); //

+ writeEndTag(); // + writeEndTag(); // + } +} + +/*! + Generate a for the "since" version string, if there is one. + */ +void DitaXmlGenerator::generateQmlSince(const Node* node) +{ + if (!node->since().isEmpty()) { + writeStartTag(DT_qmlDef); + xmlWriter().writeAttribute("outputclass","since"); + writeStartTag(DT_qmlData); + writeCharacters(node->since()); + writeEndTag(); // + writeEndTag(); // } } @@ -4822,6 +4890,8 @@ void DitaXmlGenerator::writeFunctions(const Section& s, if ((*m)->type() == Node::Function) { FunctionNode* fn = const_cast(static_cast(*m)); writeStartTag(DT_cxxFunction); + if (outFileName() == "qgeoboundingbox.dita" && fn->guid() == "id-operator-") + qDebug() << "ID:" << fn->guid() << fn->name(); xmlWriter().writeAttribute("id",fn->guid()); if (fn->metaness() == FunctionNode::Signal) xmlWriter().writeAttribute("otherprops","signal"); @@ -5593,7 +5663,7 @@ void DitaXmlGenerator::writeApiDesc(const Node* node, { if (!node->doc().isEmpty()) { inDetailedDescription = true; - enterApiDesc(QString(),title); + enterDesc(DT_apiDesc,QString(),title); generateBody(node, marker); generateAlsoList(node, marker); leaveSection(); diff --git a/src/tools/qdoc/ditaxmlgenerator.h b/src/tools/qdoc/ditaxmlgenerator.h index 2ced0e0467..a9b162d098 100644 --- a/src/tools/qdoc/ditaxmlgenerator.h +++ b/src/tools/qdoc/ditaxmlgenerator.h @@ -79,9 +79,15 @@ public: enum DitaTag { DT_NONE, DT_alt, + DT_apiData, + DT_apiDef, + DT_apiDefItem, DT_apiDesc, + DT_apiDetail, + DT_apiItemName, DT_APIMap, DT_apiName, + DT_apiRef, DT_apiRelation, DT_audience, DT_author, @@ -224,6 +230,21 @@ public: DT_prodname, DT_prolog, DT_publisher, + DT_qmlData, + DT_qmlDef, + DT_qmlDefItem, + DT_qmlDesc, + DT_qmlDetail, + DT_qmlItemName, + DT_qmlMethod, + DT_qmlName, + DT_qmlProperty, + DT_qmlPropertyGroup, + DT_qmlQualifier, + DT_qmlSignal, + DT_qmlSignalHandler, + DT_qmlSignature, + DT_qmlType, DT_relatedLinks, DT_resourceid, DT_revised, @@ -377,12 +398,23 @@ private: const Node* relative, CodeMarker* marker, bool summary); + void startQmlProperty(QmlPropertyNode* qpn, + const InnerNode* relative, + CodeMarker* marker); + void writeQmlRef(DitaTag tag, + Node* node, + const InnerNode* relative, + CodeMarker* marker); + void writeQmlDesc(Node* node, CodeMarker* marker); void generateDetailedQmlMember(Node* node, const InnerNode* relative, CodeMarker* marker); void generateQmlInherits(const QmlClassNode* qcn, CodeMarker* marker); + void generateQmlInheritedBy(const QmlClassNode* qcn, CodeMarker* marker); void generateQmlInstantiates(QmlClassNode* qcn, CodeMarker* marker); void generateInstantiatedBy(ClassNode* cn, CodeMarker* marker); + void generateQmlModuleDef(QmlClassNode* qcn); + void generateQmlSince(const Node* node); void generateSection(const NodeList& nl, const Node* relative, @@ -446,7 +478,7 @@ private: bool writeEndTag(DitaTag t=DT_NONE); DitaTag currentTag(); void clearSectionNesting() { sectionNestingLevel = 0; } - int enterApiDesc(const QString& outputclass, const QString& title); + int enterDesc(DitaTag tag, const QString& outputclass, const QString& title); int enterSection(const QString& outputclass, const QString& title); int leaveSection(); bool inSection() const { return (sectionNestingLevel > 0); } diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index 16f84bb2a8..fb08c7e609 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -953,8 +953,7 @@ void Generator::generateFileList(const FakeNode* fake, generateText(text, fake, marker); } -void Generator::generateInheritedBy(const ClassNode *classe, - CodeMarker *marker) +void Generator::generateInheritedBy(const ClassNode *classe, CodeMarker *marker) { if (!classe->derivedClasses().isEmpty()) { Text text; @@ -1087,7 +1086,6 @@ void Generator::generateMaintainerList(const InnerNode* node, CodeMarker* marker } } -#ifdef QDOC_QML /*! Output the "Inherit by" list for the QML element, if it is inherited by any other elements. @@ -1107,18 +1105,14 @@ void Generator::generateQmlInheritedBy(const QmlClassNode* qcn, } } } -#endif -#ifdef QDOC_QML /*! */ void Generator::generateQmlInherits(const QmlClassNode* , CodeMarker* ) { // stub. } -#endif -#ifdef QDOC_QML /*! Extract sections of markup text surrounded by \e qmltext and \e endqmltext and output them. @@ -1150,7 +1144,6 @@ bool Generator::generateQmlText(const Text& text, } return result; } -#endif void Generator::generateReimplementedFrom(const FunctionNode *func, CodeMarker *marker) diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h index 713bfd2e51..59df66b4a7 100644 --- a/src/tools/qdoc/generator.h +++ b/src/tools/qdoc/generator.h @@ -173,6 +173,10 @@ protected: QString plainCode(const QString& markedCode); void setImageFileExtensions(const QStringList& extensions); void unknownAtom(const Atom *atom); + void appendSortedQmlNames(Text& text, + const Node* base, + const NodeList& subs, + CodeMarker *marker); QList collisionNodes; QMap editionGroupMap; @@ -222,10 +226,6 @@ private: const ClassNode *classe, const QList &classes, CodeMarker *marker); - void appendSortedQmlNames(Text& text, - const Node* base, - const NodeList& subs, - CodeMarker *marker); void generateReimplementedFrom(const FunctionNode *func, CodeMarker *marker); -- cgit v1.2.3