diff options
Diffstat (limited to 'src/tools/qdoc/htmlgenerator.cpp')
-rw-r--r-- | src/tools/qdoc/htmlgenerator.cpp | 270 |
1 files changed, 16 insertions, 254 deletions
diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index 9b886564c4..b8ad119466 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -273,13 +273,12 @@ void HtmlGenerator::generateTree(const Tree *tree) findAllNamespaces(tree->root()); findAllSince(tree->root()); - PageGenerator::generateTree(tree); + Generator::generateTree(tree); reportOrphans(tree->root()); generateDisambiguationPages(); QString fileBase = project.toLower().simplified().replace(" ", "-"); generateIndex(fileBase, projectUrl, projectDescription); - generatePageIndex(outputDir() + QLatin1Char('/') + fileBase + ".pageindex"); helpProjectWriter->generate(myTree); generateManifestFiles(); @@ -1223,7 +1222,7 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, CodeMarker::Compat); if (!compatLink.isEmpty()) out() << "<li><a href=\"" << compatLink << "\">" - << "Qt 3 support members</a></li>\n"; + << "Compatibility members</a></li>\n"; out() << "</ul>\n"; @@ -1331,6 +1330,8 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, names << prop->setters().first()->name(); if (!prop->resetters().isEmpty()) names << prop->resetters().first()->name(); + if (!prop->notifiers().isEmpty()) + names << prop->notifiers().first()->name(); } else if ((*m)->type() == Node::Enum) { const EnumNode *enume = reinterpret_cast<const EnumNode*>(*m); @@ -1375,7 +1376,7 @@ void HtmlGenerator::generateDisambiguationPages() for (int i=0; i<collisionNodes.size(); ++i) { NameCollisionNode* ncn = collisionNodes.at(i); ncn->clearCurrentChild(); - beginSubPage(ncn, PageGenerator::fileName(ncn)); + beginSubPage(ncn, Generator::fileName(ncn)); QString fullTitle = "Name Collision: " + ncn->fullTitle(); QString htmlTitle = fullTitle; CodeMarker* marker = CodeMarker::markerForFileName(ncn->location().filePath()); @@ -1529,7 +1530,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) CodeMarker::Compat); if (!compatLink.isEmpty()) out() << "<li><a href=\"" << compatLink << "\">" - << "Qt 3 support members</a></li>\n"; + << "Compatibility members</a></li>\n"; out() << "</ul>\n"; } @@ -2138,8 +2139,8 @@ QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner, QString fileName; if (status == CodeMarker::Compat) { - title = "Qt 3 Support Members for " + inner->name(); - fileName = fileBase(inner) + "-qt3." + fileExtension(inner); + title = "Compatibility Members for " + inner->name(); + fileName = fileBase(inner) + "-compat." + fileExtension(inner); } else { title = "Obsolete Members for " + inner->name(); @@ -2152,8 +2153,7 @@ QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner, if (status == CodeMarker::Compat) { out() << "<p><b>The following class members are part of the " - "<a href=\"qt3support.html\">Qt 3 support layer</a>.</b> " - "They are provided to help you port old code to Qt 4. We advise against " + "Qt compatibility layer.</b> We advise against " "using them in new code.</p>\n"; } else { @@ -3270,12 +3270,12 @@ QString HtmlGenerator::fileBase(const Node *node) const { QString result; - result = PageGenerator::fileBase(node); + result = Generator::fileBase(node); if (!node->isInnerNode()) { switch (node->status()) { case Node::Compat: - result += "-qt3"; + result += "-compat"; break; case Node::Obsolete: result += "-obsolete"; @@ -3295,7 +3295,7 @@ QString HtmlGenerator::fileName(const Node *node) if (static_cast<const FakeNode *>(node)->subType() == Node::Image) return node->name(); } - return PageGenerator::fileName(node); + return Generator::fileName(node); } QString HtmlGenerator::refForNode(const Node *node) @@ -3719,7 +3719,7 @@ const QPair<QString,QString> HtmlGenerator::anchorForNode(const Node *node) { QPair<QString,QString> anchorPair; - anchorPair.first = PageGenerator::fileName(node); + anchorPair.first = Generator::fileName(node); if (node->type() == Node::Fake) { const FakeNode *fakeNode = static_cast<const FakeNode*>(node); anchorPair.second = fakeNode->title(); @@ -4228,25 +4228,6 @@ void HtmlGenerator::generateQmlInherits(const QmlClassNode* qcn, CodeMarker* mar } /*! - Output the "Inherit by" list for the QML element, - if it is inherited by any other elements. - */ -void HtmlGenerator::generateQmlInheritedBy(const QmlClassNode* qcn, CodeMarker* marker) -{ - if (qcn) { - NodeList subs; - QmlClassNode::subclasses(qcn->name(),subs); - if (!subs.isEmpty()) { - Text text; - text << Atom::ParaLeft << "Inherited by "; - appendSortedQmlNames(text,qcn,subs,marker); - text << Atom::ParaRight; - generateText(text, qcn, marker); - } - } -} - -/*! Output the "[Xxx instantiates the C++ class QmlGraphicsXxx]" line for the QML element, if there should be one. @@ -4307,225 +4288,6 @@ void HtmlGenerator::generateInstantiatedBy(const ClassNode* cn, CodeMarker* mark } } -/*! - Generate the <page> element for the given \a node using the \a writer. - Return true if a <page> element was written; otherwise return false. - */ -bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, - const Node* node, - CodeMarker* marker) const -{ - if (node->pageType() == Node::NoPageType) - return false; - if (node->name().isEmpty()) - return true; - if (node->access() == Node::Private) - return false; - - QString guid = QUuid::createUuid().toString(); - QString title; - QString rawTitle; - QString fullTitle; - QStringList pageWords; - QXmlStreamAttributes attributes; - - QString url = node->outputSubdirectory(); - if (!url.isEmpty()) - url.append(QLatin1Char('/')); - url.append(PageGenerator::fileName(node)); - - writer.writeStartElement("page"); - - if (node->isInnerNode()) { - const InnerNode* inner = static_cast<const InnerNode*>(node); - if (!inner->pageKeywords().isEmpty()) - pageWords << inner->pageKeywords(); - - switch (node->type()) { - case Node::Fake: - { - const FakeNode* fake = static_cast<const FakeNode*>(node); - title = fake->fullTitle(); - pageWords << title; - break; - } - case Node::Class: - { - title = node->name() + " Class"; - pageWords << node->name() << "class" << "reference"; - break; - } - case Node::Namespace: - { - rawTitle = marker->plainName(inner); - fullTitle = marker->plainFullName(inner); - title = rawTitle + " Namespace"; - pageWords << rawTitle << "namespace" << "reference"; - break; - } - default: - title = node->name(); - pageWords << title; - break; - } - } - else { - switch (node->type()) { - case Node::Enum: - { - title = node->name() + " Enum"; - pageWords << node->name() << "enum" << "type"; - url += QLatin1Char('#') + node->name() + "-enum"; - break; - } - case Node::Function: - { - title = node->name() + " Function"; - pageWords << node->name() << "function"; - url += QLatin1Char('#') + node->name(); - break; - } - case Node::Property: - { - title = node->name() + " Property"; - pageWords << node->name() << "property"; - url += QLatin1Char('#') + node->name() + "-prop"; - break; - } - case Node::Typedef: - { - title = node->name() + " Type"; - pageWords << node->name() << "typedef" << "type"; - url += QLatin1Char('#') + node->name(); - break; - } - default: - title = node->name(); - pageWords << title; - break; - } - - Node* parent = node->parent(); - if (parent && ((parent->type() == Node::Class) || - (parent->type() == Node::Namespace))) { - pageWords << parent->name(); - } - } - - writer.writeAttribute("id",guid); - writer.writeStartElement("pageWords"); - writer.writeCharacters(pageWords.join(" ")); - - writer.writeEndElement(); - writer.writeStartElement("pageTitle"); - writer.writeCharacters(title); - writer.writeEndElement(); - writer.writeStartElement("pageUrl"); - writer.writeCharacters(url); - writer.writeEndElement(); - writer.writeStartElement("pageType"); - QString ptype = "Article"; - switch (node->pageType()) { - case Node::ApiPage: - ptype = "APIPage"; - break; - case Node::ArticlePage: - ptype = "Article"; - break; - case Node::ExamplePage: - ptype = "Example"; - break; - case Node::HowToPage: - ptype = "HowTo"; - break; - case Node::OverviewPage: - ptype = "Overview"; - break; - case Node::TutorialPage: - ptype = "Tutorial"; - break; - case Node::FAQPage: - ptype = "FAQ"; - break; - default: - break; - } - writer.writeCharacters(ptype); - writer.writeEndElement(); - writer.writeEndElement(); - - if (node->type() == Node::Fake && node->doc().hasTableOfContents()) { - QList<Atom*> toc = node->doc().tableOfContents(); - if (!toc.isEmpty()) { - for (int i = 0; i < toc.size(); ++i) { - Text headingText = Text::sectionHeading(toc.at(i)); - QString s = headingText.toString(); - writer.writeStartElement("page"); - guid = QUuid::createUuid().toString(); - QString internalUrl = url + QLatin1Char('#') + Doc::canonicalTitle(s); - writer.writeAttribute("id",guid); - writer.writeStartElement("pageWords"); - writer.writeCharacters(pageWords.join(" ")); - writer.writeCharacters(" "); - writer.writeCharacters(s); - writer.writeEndElement(); - writer.writeStartElement("pageTitle"); - writer.writeCharacters(s); - writer.writeEndElement(); - writer.writeStartElement("pageUrl"); - writer.writeCharacters(internalUrl); - writer.writeEndElement(); - writer.writeStartElement("pageType"); - writer.writeCharacters("Article"); - writer.writeEndElement(); - writer.writeEndElement(); - } - } - } - return true; -} - -/*! - Traverse the tree recursively and generate the <keyword> - elements. - */ -void HtmlGenerator::generatePageElements(QXmlStreamWriter& writer, const Node* node, CodeMarker* marker) const -{ - if (generatePageElement(writer, node, marker)) { - - if (node->isInnerNode()) { - const InnerNode *inner = static_cast<const InnerNode *>(node); - - // Recurse to write an element for this child node and all its children. - foreach (const Node *child, inner->childNodes()) - generatePageElements(writer, child, marker); - } - } -} - -/*! - Outputs the file containing the index used for searching the html docs. - */ -void HtmlGenerator::generatePageIndex(const QString& fileName) const -{ - QFile file(fileName); - if (!file.open(QFile::WriteOnly | QFile::Text)) - return ; - - CodeMarker *marker = CodeMarker::markerForFileName(fileName); - - QXmlStreamWriter writer(&file); - writer.setAutoFormatting(true); - writer.writeStartDocument(); - writer.writeStartElement("qtPageIndex"); - - generatePageElements(writer, myTree->root(), marker); - - writer.writeEndElement(); // qtPageIndex - writer.writeEndDocument(); - file.close(); -} - void HtmlGenerator::generateExtractionMark(const Node *node, ExtractionMarkType markType) { if (markType != EndMark) { @@ -4719,7 +4481,7 @@ QString HtmlGenerator::fullDocumentLocation(const Node *node, bool subdir) if (node->type() != Node::Class && node->type() != Node::Namespace) { switch (node->status()) { case Node::Compat: - parentName.replace(".html", "-qt3.html"); + parentName.replace(".html", "-compat.html"); break; case Node::Obsolete: parentName.replace(".html", "-obsolete.html"); @@ -5042,7 +4804,7 @@ QXmlStreamWriter& HtmlGenerator::xmlWriter() */ void HtmlGenerator::beginDitamapPage(const InnerNode* node, const QString& fileName) { - PageGenerator::beginSubPage(node,fileName); + Generator::beginSubPage(node,fileName); QXmlStreamWriter* writer = new QXmlStreamWriter(out().device()); xmlWriterStack.push(writer); writer->setAutoFormatting(true); @@ -5061,7 +4823,7 @@ void HtmlGenerator::endDitamapPage() { xmlWriter().writeEndDocument(); delete xmlWriterStack.pop(); - PageGenerator::endSubPage(); + Generator::endSubPage(); } /*! |