diff options
author | David Boddie <david.boddie@nokia.com> | 2011-03-08 16:38:50 (GMT) |
---|---|---|
committer | David Boddie <david.boddie@nokia.com> | 2011-03-08 16:38:50 (GMT) |
commit | 50671831eb42423db3e41852b68187d8833c2a0c (patch) | |
tree | 9a80999fb6953c30d776674631a54bf2a491b8bc /tools | |
parent | 7e9c0cbf02be5f7c426a81e53b5b0df39b5328ce (diff) | |
parent | 25f3fbc516aad3cbd08deaa890a3f5a93582a13b (diff) | |
download | Qt-50671831eb42423db3e41852b68187d8833c2a0c.zip Qt-50671831eb42423db3e41852b68187d8833c2a0c.tar.gz Qt-50671831eb42423db3e41852b68187d8833c2a0c.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-doc-team into 4.7
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qdoc3/ditaxmlgenerator.cpp | 131 | ||||
-rw-r--r-- | tools/qdoc3/ditaxmlgenerator.h | 30 | ||||
-rw-r--r-- | tools/qdoc3/node.cpp | 8 | ||||
-rw-r--r-- | tools/qdoc3/node.h | 3 |
4 files changed, 162 insertions, 10 deletions
diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp index affe9e1..66f4a91 100644 --- a/tools/qdoc3/ditaxmlgenerator.cpp +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -96,11 +96,21 @@ QString DitaXmlGenerator::ditaTags[] = "apiDesc", "APIMap", "apiName", + "audience", + "author", "b", "body", "bodydiv", + "brand", + "category", "codeblock", "comment", + "component", + "copyrholder", + "copyright", + "copyryear", + "created", + "critdates", "cxxAPIMap", "cxxClass", "cxxClassAbstract", @@ -194,6 +204,8 @@ QString DitaXmlGenerator::ditaTags[] = "cxxVariableReimplemented", "cxxVariableScopedName", "cxxVariableStorageClassSpecifierStatic", + "data", + "data-about", "dd", "dl", "dlentry", @@ -203,21 +215,33 @@ QString DitaXmlGenerator::ditaTags[] = "i", "image", "keyword", + "keywords", "li", "link", "linktext", "lq", + "metadata", "ol", + "othermeta", "p", "parameter", + "permissions", "ph", + "platform", "pre", + "prodinfo", + "prodname", + "prolog", + "publisher", "related-links", + "resourceid", + "revised", "row", "section", "sectiondiv", "shortdesc", "simpletable", + "source", "stentry", "sthead", "strow", @@ -233,8 +257,11 @@ QString DitaXmlGenerator::ditaTags[] = "topicmeta", "topicref", "tt", - "ul", "u", + "ul", + "unknown", + "vrm", + "vrmlist", "xref", "" }; @@ -1497,7 +1524,6 @@ int DitaXmlGenerator::generateAtom(const Atom *atom, } } else { - qDebug() << "ATTR:" << attr; QStringList spans = attr.split(","); if (spans.size() == 2) { if ((spans[0].toInt()>1) || (spans[1].toInt()>1)) { @@ -1611,9 +1637,8 @@ DitaXmlGenerator::generateClassLikeNode(const InnerNode* inner, CodeMarker* mark */ generateHeader(inner, fullTitle); generateBrief(inner, marker); // <shortdesc> - - // not included: <prolog> - + writeProlog(inner,marker); + writeStartTag(DT_cxxClassDetail); writeStartTag(DT_cxxClassDefinition); writeLocation(nsn); @@ -1735,8 +1760,7 @@ DitaXmlGenerator::generateClassLikeNode(const InnerNode* inner, CodeMarker* mark generateHeader(inner, fullTitle); generateBrief(inner, marker); // <shortdesc> - - // not included: <prolog> + writeProlog(inner,marker); writeStartTag(DT_cxxClassDetail); writeStartTag(DT_cxxClassDefinition); @@ -1877,6 +1901,8 @@ DitaXmlGenerator::generateClassLikeNode(const InnerNode* inner, CodeMarker* mark */ generateHeader(inner, fullTitle); generateBrief(inner, marker); // <shortdesc> + writeProlog(inner,marker); + writeStartTag(DT_cxxClassDetail); writeStartTag(DT_apiDesc); xmlWriter().writeAttribute("spectitle",title); @@ -1996,9 +2022,8 @@ DitaXmlGenerator::generateClassLikeNode(const InnerNode* inner, CodeMarker* mark generateHeader(inner, fullTitle); generateBrief(inner, marker); // <shortdesc> + writeProlog(inner,marker); - // not included: <prolog> - writeStartTag(DT_cxxClassDetail); writeStartTag(DT_apiDesc); xmlWriter().writeAttribute("spectitle",title); @@ -2107,6 +2132,8 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode* fake, CodeMarker* marker generateHeader(fake, fullTitle); generateBrief(fake, marker); // <shortdesc> + writeProlog(fake, marker); + writeStartTag(DT_body); if (fake->subType() == Node::Module) { generateStatus(fake, marker); @@ -5501,4 +5528,90 @@ void DitaXmlGenerator::writeDitaMap() endSubPage(); } +/*! + Writes the <prolog> element for the \a inner node + using the \a marker. The <prolog> element contains + the <metadata> element, plus some others. This + function writes one or more of these elements: + + \list + \o <audience> + \o <author> + \o <brand> + \o <category> + \o <compomnent> + \o <copyrholder> + \o <copyright> + \o <created> + \o <copyryear> + \o <critdates> + \o <keyword> + \o <keywords> + \o <metadata> + \o <othermeta> + \o <permissions> + \o <platform> + \o <prodinfo> + \o <prodname> + \o <prolog> + \o <publisher> + \o <resourceid> + \o <revised> + \o <source> + \o <tm> + \o <unknown> + \o <vrm> + \o <vrmlist> + \endlist + + */ +void +DitaXmlGenerator::writeProlog(const InnerNode* inner, CodeMarker* marker) +{ + if (!inner) + return; + writeStartTag(DT_prolog); + + writeStartTag(DT_author); + QString author = inner->author(); + if (author.isEmpty()) + author = "Qt Development Frameworks"; + xmlWriter().writeCharacters(author); + writeEndTag(); // <author> + + writeStartTag(DT_metadata); + writeStartTag(DT_category); + QString category = "Page"; + if (inner->type() == Node::Class) + category = "C++ Class"; + else if (inner->type() == Node::Namespace) + category = "C++ Namespace"; + else if (inner->type() == Node::Fake) { + if (inner->subType() == Node::QmlBasicType) + category = "QML Class"; + else if (inner->subType() == Node::QmlClass) + category = "QML Basic Type"; + else if (inner->subType() == Node::HeaderFile) + category = "Header File"; + else if (inner->subType() == Node::Module) + category = "Module"; + else if (inner->subType() == Node::File) + category = "Example Source File"; + else if (inner->subType() == Node::Example) + category = "Example"; + else if (inner->subType() == Node::Image) + category = "Image"; + else if (inner->subType() == Node::Group) + category = "Group"; + else if (inner->subType() == Node::Page) + category = "Page"; + else if (inner->subType() == Node::ExternalPage) + category = "External Page"; // Is this necessary? + } + xmlWriter().writeCharacters(category); + writeEndTag(); // <category> + writeEndTag(); // <metadata> + writeEndTag(); // <prolog> +} + QT_END_NAMESPACE diff --git a/tools/qdoc3/ditaxmlgenerator.h b/tools/qdoc3/ditaxmlgenerator.h index fb09013..32a9b94 100644 --- a/tools/qdoc3/ditaxmlgenerator.h +++ b/tools/qdoc3/ditaxmlgenerator.h @@ -87,11 +87,21 @@ class DitaXmlGenerator : public PageGenerator DT_apiDesc, DT_APIMap, DT_apiName, + DT_audience, + DT_author, DT_b, DT_body, DT_bodydiv, + DT_brand, + DT_category, DT_codeblock, DT_comment, + DT_component, + DT_copyrholder, + DT_copyright, + DT_copyryear, + DT_created, + DT_critdates, DT_cxxAPIMap, DT_cxxClass, DT_cxxClassAbstract, @@ -185,6 +195,8 @@ class DitaXmlGenerator : public PageGenerator DT_cxxVariableReimplemented, DT_cxxVariableScopedName, DT_cxxVariableStorageClassSpecifierStatic, + DT_data, + DT_dataabout, DT_dd, DT_dl, DT_dlentry, @@ -194,21 +206,33 @@ class DitaXmlGenerator : public PageGenerator DT_i, DT_image, DT_keyword, + DT_keywords, DT_li, DT_link, DT_linktext, DT_lq, + DT_metadata, DT_ol, + DT_othermeta, DT_p, DT_parameter, + DT_permissions, DT_ph, + DT_platform, DT_pre, + DT_prodinfo, + DT_prodname, + DT_prolog, + DT_publisher, DT_relatedLinks, + DT_resourceid, + DT_revised, DT_row, DT_section, DT_sectiondiv, DT_shortdesc, DT_simpletable, + DT_source, DT_stentry, DT_sthead, DT_strow, @@ -224,8 +248,11 @@ class DitaXmlGenerator : public PageGenerator DT_topicmeta, DT_topicref, DT_tt, - DT_ul, DT_u, + DT_ul, + DT_unknown, + DT_vrm, + DT_vrmlist, DT_xref, DT_LAST }; @@ -288,6 +315,7 @@ class DitaXmlGenerator : public PageGenerator void writePropertyParameter(const QString& tag, const NodeList& nlist); void writeRelatedLinks(const FakeNode* fake, CodeMarker* marker); void writeLink(const Node* node, const QString& tex, const QString& role); + void writeProlog(const InnerNode* inner, CodeMarker* marker); private: enum SubTitleSize { SmallSubTitle, LargeSubTitle }; diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index ee050f5..161c87a 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -771,6 +771,14 @@ void InnerNode::removeChild(Node *child) } } +/*! \fn QString InnerNode::author() const + Returns the author. + */ + +/*! \fn void InnerNode::setAuthor(const QString& author) + Sets the \a author. + */ + /*! Find the module (QtCore, QtGui, etc.) to which the class belongs. We do this by obtaining the full path to the header file's location diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h index d1123dc..3869e68 100644 --- a/tools/qdoc3/node.h +++ b/tools/qdoc3/node.h @@ -262,6 +262,8 @@ class InnerNode : public Node NodeList overloads(const QString &funcName) const; const QStringList& includes() const { return inc; } + QString author() const { return author_; } + void setAuthor(const QString& author) { author_ = author; } QStringList primaryKeys(); QStringList secondaryKeys(); const QStringList& pageKeywords() const { return pageKeywds; } @@ -280,6 +282,7 @@ class InnerNode : public Node void removeChild(Node* child); void removeRelated(Node* pseudoChild); + QString author_; QStringList pageKeywds; QStringList inc; NodeList children; |