summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/htmlgenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/qdoc/htmlgenerator.cpp')
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp270
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();
}
/*!