summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3
diff options
context:
space:
mode:
authorMartin Smith <msmith@trolltech.com>2009-09-21 08:41:46 (GMT)
committerMartin Smith <msmith@trolltech.com>2009-09-21 08:43:14 (GMT)
commit42563fa22cfe7d6be252df69244c8196f498444d (patch)
tree13c2df2f6d4a52fabdbdeca36926b6c94e764f27 /tools/qdoc3
parent951915edc6f863724d83502e7486c73d25892d1d (diff)
downloadQt-42563fa22cfe7d6be252df69244c8196f498444d.zip
Qt-42563fa22cfe7d6be252df69244c8196f498444d.tar.gz
Qt-42563fa22cfe7d6be252df69244c8196f498444d.tar.bz2
qdoc: Added "since" 4.6 lists to the "What's New" page.
In test/qt.qdocconf, change %VERSION% to 4.6, for example.
Diffstat (limited to 'tools/qdoc3')
-rw-r--r--tools/qdoc3/atom.cpp2
-rw-r--r--tools/qdoc3/atom.h4
-rw-r--r--tools/qdoc3/doc.cpp12
-rw-r--r--tools/qdoc3/htmlgenerator.cpp57
-rw-r--r--tools/qdoc3/htmlgenerator.h3
-rw-r--r--tools/qdoc3/main.cpp1
6 files changed, 71 insertions, 8 deletions
diff --git a/tools/qdoc3/atom.cpp b/tools/qdoc3/atom.cpp
index 69204d4..834a5d7 100644
--- a/tools/qdoc3/atom.cpp
+++ b/tools/qdoc3/atom.cpp
@@ -143,6 +143,7 @@ QString Atom::UPPERROMAN_ ("upperroman");
\value SectionHeadingRight
\value SidebarLeft
\value SidebarRight
+ \value SinceList
\value String
\value TableLeft
\value TableRight
@@ -220,6 +221,7 @@ static const struct {
{ "SectionHeadingRight", Atom::SectionHeadingRight },
{ "SidebarLeft", Atom::SidebarLeft },
{ "SidebarRight", Atom::SidebarRight },
+ { "SinceList", Atom::SinceList },
{ "SnippetCommand", Atom::SnippetCommand },
{ "SnippetIdentifier", Atom::SnippetIdentifier },
{ "SnippetLocation", Atom::SnippetLocation },
diff --git a/tools/qdoc3/atom.h b/tools/qdoc3/atom.h
index 95faa8f..99f9b57 100644
--- a/tools/qdoc3/atom.h
+++ b/tools/qdoc3/atom.h
@@ -112,7 +112,9 @@ class Atom
SectionRight,
SectionHeadingLeft,
SectionHeadingRight,
- SidebarLeft, SidebarRight,
+ SidebarLeft,
+ SidebarRight,
+ SinceList,
SnippetCommand,
SnippetIdentifier,
SnippetLocation,
diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp
index b918fa5..e27209c 100644
--- a/tools/qdoc3/doc.cpp
+++ b/tools/qdoc3/doc.cpp
@@ -90,10 +90,10 @@ enum {
CMD_PRINTUNTIL, CMD_QUOTATION, CMD_QUOTEFILE,
CMD_QUOTEFROMFILE, CMD_QUOTEFUNCTION, CMD_RAW, CMD_ROW,
CMD_SA, CMD_SECTION1, CMD_SECTION2, CMD_SECTION3,
- CMD_SECTION4, CMD_SIDEBAR, CMD_SKIPLINE, CMD_SKIPTO,
- CMD_SKIPUNTIL, CMD_SNIPPET, CMD_SUB, CMD_SUP, CMD_TABLE,
- CMD_TABLEOFCONTENTS, CMD_TARGET, CMD_TT, CMD_UNDERLINE,
- CMD_UNICODE, CMD_VALUE, CMD_WARNING,
+ CMD_SECTION4, CMD_SIDEBAR, CMD_SINCELIST, CMD_SKIPLINE,
+ CMD_SKIPTO, CMD_SKIPUNTIL, CMD_SNIPPET, CMD_SUB, CMD_SUP,
+ CMD_TABLE, CMD_TABLEOFCONTENTS, CMD_TARGET, CMD_TT,
+ CMD_UNDERLINE, CMD_UNICODE, CMD_VALUE, CMD_WARNING,
#ifdef QDOC_QML
CMD_QML, CMD_ENDQML, CMD_CPP, CMD_ENDCPP, CMD_QMLTEXT,
CMD_ENDQMLTEXT, CMD_CPPTEXT, CMD_ENDCPPTEXT,
@@ -177,6 +177,7 @@ static struct {
{ "section3", CMD_SECTION3, 0 },
{ "section4", CMD_SECTION4, 0 },
{ "sidebar", CMD_SIDEBAR, 0 }, // ### don't document for now
+ { "sincelist", CMD_SINCELIST, 0 },
{ "skipline", CMD_SKIPLINE, 0 },
{ "skipto", CMD_SKIPTO, 0 },
{ "skipuntil", CMD_SKIPUNTIL, 0 },
@@ -727,6 +728,9 @@ void DocParser::parse(const QString& source,
case CMD_ANNOTATEDLIST:
append(Atom::AnnotatedList, getArgument());
break;
+ case CMD_SINCELIST:
+ append(Atom::SinceList, getArgument());
+ break;
case CMD_GENERATELIST:
append(Atom::GeneratedList, getArgument());
break;
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index b7ed702..6a8c098 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -330,6 +330,7 @@ void HtmlGenerator::generateTree(const Tree *tree, CodeMarker *marker)
#ifdef ZZZ_QDOC_QML
findAllQmlClasses(tree->root());
#endif
+ findAllSince(tree->root(),tree->version());
PageGenerator::generateTree(tree, marker);
@@ -539,7 +540,6 @@ int HtmlGenerator::generateAtom(const Atom *atom,
break;
case Atom::AnnotatedList:
{
- //qDebug() << "ANNOTATED LIS:";
QList<Node*> values = tre->groups().values(atom->string());
QMap<QString, const Node*> nodeMap;
for (int i = 0; i < values.size(); ++i) {
@@ -653,7 +653,26 @@ int HtmlGenerator::generateAtom(const Atom *atom,
}
}
break;
- case Atom::Image:
+ case Atom::SinceList:
+ {
+ QList<Node*> values;
+ if (atom->string() == "classes") {
+ values = sinceClasses.values();
+ }
+ else if (atom->string() == "functions") {
+ values = sinceFunctions.values();
+ }
+ if (!values.isEmpty()) {
+ QMap<QString, const Node*> nodeMap;
+ for (int i=0; i<values.size(); ++i) {
+ const Node* n = values.at(i);
+ nodeMap.insert(n->nameForLists(),n);
+ }
+ generateAnnotatedList(relative, marker, nodeMap);
+ }
+ }
+ break;
+case Atom::Image:
case Atom::InlineImage:
{
QString fileName = imageFileName(relative, atom->string());
@@ -3495,6 +3514,40 @@ void HtmlGenerator::findAllClasses(const InnerNode *node)
}
}
+/*!
+ For generating the "Since x.y" page.
+ */
+void HtmlGenerator::findAllSince(const InnerNode *node, QString version)
+{
+ NodeList::const_iterator c = node->childNodes().constBegin();
+ while (c != node->childNodes().constEnd()) {
+ if (((*c)->access() != Node::Private) && ((*c)->since() == version)) {
+ if ((*c)->type() == Node::Function) {
+ FunctionNode *func = static_cast<const FunctionNode *>(*c);
+ if ((func->status() > Node::Obsolete) &&
+ (func->metaness() != FunctionNode::Ctor) &&
+ (func->metaness() != FunctionNode::Dtor)) {
+ sinceFunctions.insert(func->name(), func);
+ }
+ }
+ else if ((*c)->url().isEmpty()) {
+ if ((*c)->type() == Node::Class && !(*c)->doc().isEmpty()) {
+ QString className = (*c)->name();
+ if ((*c)->parent() &&
+ (*c)->parent()->type() == Node::Namespace &&
+ !(*c)->parent()->name().isEmpty())
+ className = (*c)->parent()->name()+"::"+className;
+ sinceClasses.insert(className, *c);
+ }
+ }
+ if ((*c)->isInnerNode()) {
+ findAllSince(static_cast<InnerNode *>(*c),version);
+ }
+ }
+ ++c;
+ }
+}
+
void HtmlGenerator::findAllFunctions(const InnerNode *node)
{
NodeList::ConstIterator c = node->childNodes().begin();
diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h
index fabe585..24e2986 100644
--- a/tools/qdoc3/htmlgenerator.h
+++ b/tools/qdoc3/htmlgenerator.h
@@ -216,6 +216,7 @@ class HtmlGenerator : public PageGenerator
#ifdef ZZZ_QDOC_QML
void findAllQmlClasses(const InnerNode *node);
#endif
+ void findAllSince(const InnerNode *node, QString version);
static int hOffset(const Node *node);
static bool isThreeColumnEnumValueTable(const Atom *atom);
virtual QString getLink(const Atom *atom,
@@ -285,6 +286,8 @@ class HtmlGenerator : public PageGenerator
#endif
QMap<QString, QMap<QString, const Node *> > funcIndex;
QMap<Text, const Node *> legaleseTexts;
+ QMap<QString, Node*> sinceClasses;
+ QMap<QString, Node*> sinceFunctions;
};
#define HTMLGENERATOR_ADDRESS "address"
diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp
index aac4ee8..8658428 100644
--- a/tools/qdoc3/main.cpp
+++ b/tools/qdoc3/main.cpp
@@ -336,7 +336,6 @@ static void processQdocconfFile(const QString &fileName)
/*
Generate the XML tag file, if it was requested.
*/
-
QString tagFile = config.getString(CONFIG_TAGFILE);
if (!tagFile.isEmpty())
tree->generateTagFile(tagFile);