summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2009-06-09 00:34:04 (GMT)
committerMichael Brasser <michael.brasser@nokia.com>2009-06-09 00:34:04 (GMT)
commitb8c8c87587bcc0312f0efbb2028885adb8419fee (patch)
tree4857b4ff79acb48953c9a2a7c3a62c6dfeafdda3 /tools/qdoc3
parent9410eb0630e0f3b80ffd335002efbd7ce532e826 (diff)
parent70283a0a87e46a8aa9d2e6296f4ed7c93cc230d6 (diff)
downloadQt-b8c8c87587bcc0312f0efbb2028885adb8419fee.zip
Qt-b8c8c87587bcc0312f0efbb2028885adb8419fee.tar.gz
Qt-b8c8c87587bcc0312f0efbb2028885adb8419fee.tar.bz2
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt into kinetic-declarativeui
Conflicts: configure.exe tools/qdoc3/htmlgenerator.cpp tools/qdoc3/tree.cpp
Diffstat (limited to 'tools/qdoc3')
-rw-r--r--tools/qdoc3/htmlgenerator.cpp75
-rw-r--r--tools/qdoc3/htmlgenerator.h1
-rw-r--r--tools/qdoc3/qdoc3.pro4
-rw-r--r--tools/qdoc3/test/classic.css5
-rw-r--r--tools/qdoc3/tree.cpp83
5 files changed, 98 insertions, 70 deletions
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 007f62a..7a64f5f 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -470,27 +470,24 @@ int HtmlGenerator::generateAtom(const Atom *atom,
out() << formattingRightMap()[ATOM_FORMATTING_TELETYPE];
break;
case Atom::Code:
- out() << "<pre>" << trimmedTrailing(highlightedCode(indent(codeIndent, atom->string()),
- marker, relative))
+ out() << "<pre>"
+ << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()),
+ marker,relative))
<< "</pre>\n";
break;
#ifdef QDOC_QML
case Atom::Qml:
out() << "<pre>"
- << trimmedTrailing(highlightedCode(indent(codeIndent,
- atom->string()),
- marker,
- relative))
+ << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()),
+ marker,relative))
<< "</pre>\n";
break;
#endif
case Atom::CodeNew:
out() << "<p>you can rewrite it as</p>\n"
<< "<pre>"
- << trimmedTrailing(highlightedCode(indent(codeIndent,
- atom->string()),
- marker,
- relative))
+ << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()),
+ marker,relative))
<< "</pre>\n";
break;
case Atom::CodeOld:
@@ -498,7 +495,7 @@ int HtmlGenerator::generateAtom(const Atom *atom,
// fallthrough
case Atom::CodeBad:
out() << "<pre><font color=\"#404040\">"
- << trimmedTrailing(protect(plainCode(indent(codeIndent, atom->string()))))
+ << trimmedTrailing(protect(plainCode(indent(codeIndent,atom->string()))))
<< "</font></pre>\n";
break;
case Atom::FootnoteLeft:
@@ -1104,12 +1101,11 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner,
if (s->members.isEmpty()) {
if (!s->inherited.isEmpty())
needOtherSection = true;
- }
- else {
- out() << "<a name=\"" << registerRef((*s).name.toLower())
+ } else {
+ out() << "<a name=\""
+ << registerRef((*s).name.toLower())
<< "\"></a>\n";
- out() << "<h3>" << protect((*s).name) << "</h3>\n";
-
+ out() << "<h2>" << protect((*s).name) << "</h2>\n";
generateSectionList(*s, inner, marker, CodeMarker::Summary);
}
++s;
@@ -1347,7 +1343,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
s = sections.begin();
while (s != sections.end()) {
out() << "<a name=\"" << registerRef((*s).name) << "\"></a>\n";
- out() << "<h3>" << protect((*s).name) << "</h3>\n";
+ out() << "<h2>" << protect((*s).name) << "</h2>\n";
generateSectionList(*s, fake, marker, CodeMarker::Summary);
++s;
}
@@ -1611,17 +1607,19 @@ void HtmlGenerator::generateBrief(const Node *node, CodeMarker *marker,
void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker)
{
if (!inner->includes().isEmpty()) {
- out() << "<pre>" << trimmedTrailing(highlightedCode(indent(codeIndent,
- marker->markedUpIncludes(
- inner->includes())),
- marker, inner))
+ out() << "<pre>"
+ << trimmedTrailing(highlightedCode(indent(codeIndent,
+ marker->markedUpIncludes(inner->includes())),
+ marker,inner))
<< "</pre>";
}
}
-void HtmlGenerator::generateTableOfContents(const Node *node, CodeMarker *marker,
+void HtmlGenerator::generateTableOfContents(const Node *node,
+ CodeMarker *marker,
Doc::SectioningUnit sectioningUnit,
- int numColumns, const Node *relative)
+ int numColumns,
+ const Node *relative)
{
if (!node->doc().hasTableOfContents())
@@ -1804,13 +1802,13 @@ QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner,
}
out() << "<p><ul><li><a href=\""
- << linkForNode(inner, 0)
- << "\">" << protect(inner->name())
+ << linkForNode(inner, 0) << "\">"
+ << protect(inner->name())
<< " class reference</a></li></ul></p>\n";
for (i = 0; i < sections.size(); ++i) {
- out() << "<h3>" << protect(sections.at(i).name) << "</h3>\n";
- generateSectionList(sections.at(i),inner,marker,CodeMarker::Summary);
+ out() << "<h2>" << protect(sections.at(i).name) << "</h2>\n";
+ generateSectionList(sections.at(i), inner, marker, CodeMarker::Summary);
}
sections = marker->sections(inner, CodeMarker::Detailed, status);
@@ -1833,8 +1831,7 @@ QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner,
void HtmlGenerator::generateClassHierarchy(const Node *relative,
CodeMarker *marker,
- const QMap<QString,
- const Node *> &classMap)
+ const QMap<QString,const Node*> &classMap)
{
if (classMap.isEmpty())
return;
@@ -2056,7 +2053,9 @@ void HtmlGenerator::generateCompactList(const Node *relative,
out() << "<td align=\"right\">";
if (currentOffsetInParagraph[i] == 0) {
// start a new paragraph
- out() << "<b>" << paragraphName[currentParagraphNo[i]] << "&nbsp;</b>";
+ out() << "<b>"
+ << paragraphName[currentParagraphNo[i]]
+ << "&nbsp;</b>";
}
out() << "</td>\n";
@@ -2069,7 +2068,9 @@ void HtmlGenerator::generateCompactList(const Node *relative,
out() << "<td>";
// Previously, we used generateFullName() for this, but we
// require some special formatting.
- out() << "<a href=\"" << linkForNode(it.value(), relative) << "\">";
+ out() << "<a href=\""
+ << linkForNode(it.value(), relative)
+ << "\">";
QStringList pieces = fullName(it.value(), relative, marker).split("::");
out() << protect(pieces.last());
out() << "</a>";
@@ -2478,12 +2479,13 @@ void HtmlGenerator::generateSynopsis(const Node *node,
marked.replace("<@type>", "");
marked.replace("</@type>", "");
}
- out() << highlightedCode(marked, marker, relative, nameAlignment);
+ out() << highlightedCode(marked, marker, relative, style, nameAlignment);
}
QString HtmlGenerator::highlightedCode(const QString& markedCode,
CodeMarker *marker,
const Node *relative,
+ CodeMarker::SynopsisStyle style,
bool nameAlignment)
{
QString src = markedCode;
@@ -2496,15 +2498,22 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode,
// replace all <@link> tags: "(<@link node=\"([^\"]+)\">).*(</@link>)"
static const QString linkTag("link");
+ if (src.contains("setAcceptDrops"))
+ qDebug() << "SRC:" << src;
+ bool done = false;
for (int i = 0, n = src.size(); i < n;) {
if (src.at(i) == charLangle && src.at(i + 1).unicode() == '@') {
- if (nameAlignment) // && (i != 0)) Why was this here?
+ if (nameAlignment && !done) {// && (i != 0)) Why was this here?
html += "</td><td class=\"memItemRight\" valign=\"bottom\">";
+ done = true;
+ }
i += 2;
if (parseArg(src, linkTag, &i, n, &arg, &par1)) {
+ html += "<b>";
QString link = linkForNode(
CodeMarker::nodeForString(par1.toString()), relative);
addLink(link, arg, &html);
+ html += "</b>";
}
else {
html += charLangle;
diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h
index 3e3dbf2..9423dda 100644
--- a/tools/qdoc3/htmlgenerator.h
+++ b/tools/qdoc3/htmlgenerator.h
@@ -173,6 +173,7 @@ class HtmlGenerator : public PageGenerator
QString highlightedCode(const QString& markedCode,
CodeMarker *marker,
const Node *relative,
+ CodeMarker::SynopsisStyle style = CodeMarker::Accessors,
bool nameAlignment = false);
#else
void generateSynopsis(const Node *node,
diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro
index 2bba8fb..ed27669 100644
--- a/tools/qdoc3/qdoc3.pro
+++ b/tools/qdoc3/qdoc3.pro
@@ -1,6 +1,8 @@
DEFINES += QDOC2_COMPAT
-#DEFINES += QT_NO_CAST_TO_ASCII
+DEFINES += QT_NO_CAST_TO_ASCII
#DEFINES += QT_NO_CAST_FROM_ASCII
+#DEFINES += QT_USE_FAST_OPERATOR_PLUS
+#DEFINES += QT_USE_FAST_CONCATENATION
QT = core xml
CONFIG += console
diff --git a/tools/qdoc3/test/classic.css b/tools/qdoc3/test/classic.css
index e018dc6..45d63db 100644
--- a/tools/qdoc3/test/classic.css
+++ b/tools/qdoc3/test/classic.css
@@ -14,12 +14,11 @@ H3 {
h3.fn,span.fn
{
- background-color: #d5e1d5;
+ background-color: #e0eff6;
border-width: 1px;
border-style: solid;
- border-color: #66bc29;
+ border-color: #3388be #e0eff6 #e9f8ff #e0eff6;
font-weight: bold;
- -moz-border-radius: 8px 8px 8px 8px;
padding: 6px 0px 6px 10px;
}
diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp
index b91de65..473d1be 100644
--- a/tools/qdoc3/tree.cpp
+++ b/tools/qdoc3/tree.cpp
@@ -1891,13 +1891,16 @@ QString Tree::fullDocumentLocation(const Node *node) const
if (!node->url().isEmpty())
return node->url();
+ QString parentName;
+ QString anchorRef;
+
if (node->type() == Node::Namespace) {
// The root namespace has no name - check for this before creating
// an attribute containing the location of any documentation.
if (!node->fileBase().isEmpty())
- return node->fileBase() + ".html";
+ parentName = node->fileBase() + ".html";
else
return "";
}
@@ -1907,11 +1910,11 @@ QString Tree::fullDocumentLocation(const Node *node) const
return "qml-" + node->fileBase() + ".html";
else
#endif
- return node->fileBase() + ".html";
- } else if (node->fileBase().isEmpty())
+ parentName = node->fileBase() + ".html";
+ }
+ else if (node->fileBase().isEmpty())
return "";
- QString parentName;
Node *parentNode = 0;
if ((parentNode = node->relates()))
@@ -1923,10 +1926,11 @@ QString Tree::fullDocumentLocation(const Node *node) const
case Node::Class:
case Node::Namespace:
if (parentNode && !parentNode->name().isEmpty())
- return parentName.replace(".html", "") + "-"
- + node->fileBase().toLower() + ".html";
+ parentName = parentName.replace(".html", "") + "-"
+ + node->fileBase().toLower() + ".html";
else
- return node->fileBase() + ".html";
+ parentName = node->fileBase() + ".html";
+ break;
case Node::Function:
{
/*
@@ -1936,29 +1940,17 @@ QString Tree::fullDocumentLocation(const Node *node) const
const FunctionNode *functionNode =
static_cast<const FunctionNode *>(node);
- // Functions can be compatibility functions or be obsolete.
- switch (node->status()) {
- case Node::Compat:
- parentName.replace(".html", "-qt3.html");
- break;
- case Node::Obsolete:
- parentName.replace(".html", "-obsolete.html");
- break;
- default:
- ;
- }
-
if (functionNode->metaness() == FunctionNode::Dtor)
- return parentName + "#dtor." + functionNode->name().mid(1);
+ anchorRef = "#dtor." + functionNode->name().mid(1);
- if (functionNode->associatedProperty())
+ else if (functionNode->associatedProperty())
return fullDocumentLocation(functionNode->associatedProperty());
- if (functionNode->overloadNumber() > 1)
- return parentName + "#" + functionNode->name()
- + "-" + QString::number(functionNode->overloadNumber());
+ else if (functionNode->overloadNumber() > 1)
+ anchorRef = "#" + functionNode->name()
+ + "-" + QString::number(functionNode->overloadNumber());
else
- return parentName + "#" + functionNode->name();
+ anchorRef = "#" + functionNode->name();
}
/*
@@ -1966,27 +1958,52 @@ QString Tree::fullDocumentLocation(const Node *node) const
the latter returns the name in lower-case. For
HTML anchors, we need to preserve the case.
*/
+ break;
case Node::Enum:
- return parentName + "#" + node->name() + "-enum";
+ anchorRef = "#" + node->name() + "-enum";
+ break;
case Node::Typedef:
- return parentName + "#" + node->name() + "-typedef";
+ anchorRef = "#" + node->name() + "-typedef";
+ break;
case Node::Property:
- return parentName + "#" + node->name() + "-prop";
+ anchorRef = "#" + node->name() + "-prop";
+ break;
case Node::Variable:
- return parentName + "#" + node->name() + "-var";
+ anchorRef = "#" + node->name() + "-var";
+ break;
case Node::Target:
- return parentName + "#" + Doc::canonicalTitle(node->name());
+ anchorRef = "#" + Doc::canonicalTitle(node->name());
+ break;
case Node::Fake:
{
- QString pageName = node->name();
- return pageName.replace("/", "-").replace(".", "-") + ".html";
+ /*
+ Use node->fileBase() for fake nodes because they are represented
+ by pages whose file names are lower-case.
+ */
+ parentName = node->fileBase();
+ parentName.replace("/", "-").replace(".", "-");
+ parentName += ".html";
}
break;
default:
break;
}
- return "";
+ // Various objects can be compat (deprecated) or obsolete.
+ if (node->type() != Node::Class && node->type() != Node::Namespace) {
+ switch (node->status()) {
+ case Node::Compat:
+ parentName.replace(".html", "-qt3.html");
+ break;
+ case Node::Obsolete:
+ parentName.replace(".html", "-obsolete.html");
+ break;
+ default:
+ ;
+ }
+ }
+
+ return parentName.toLower() + anchorRef;
}
/*!