tools/qdoc3/codeparser.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/tools/qdoc3/codeparser.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/tools/qdoc3/codeparser.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -43,11 +43,11 @@
   codeparser.cpp
 */
 
-#include <QtCore>
 #include "codeparser.h"
 #include "node.h"
 #include "tree.h"
 #include "config.h"
+#include <QDebug>
 
 QT_BEGIN_NAMESPACE
 
@@ -59,6 +59,7 @@
 #define COMMAND_MAINCLASS               Doc::alias(QLatin1String("mainclass"))
 #define COMMAND_NONREENTRANT            Doc::alias(QLatin1String("nonreentrant"))
 #define COMMAND_OBSOLETE                Doc::alias(QLatin1String("obsolete"))
+#define COMMAND_PAGEKEYWORDS            Doc::alias(QLatin1String("pagekeywords"))
 #define COMMAND_PRELIMINARY             Doc::alias(QLatin1String("preliminary"))
 #define COMMAND_INPUBLICGROUP           Doc::alias(QLatin1String("inpublicgroup"))
 #define COMMAND_REENTRANT               Doc::alias(QLatin1String("reentrant"))
@@ -69,6 +70,7 @@
 
 QList<CodeParser *> CodeParser::parsers;
 bool CodeParser::showInternal = false;
+QMap<QString,QString> CodeParser::nameToTitle;
 
 /*!
   The constructor adds this code parser to the static
@@ -170,6 +172,7 @@
                            << COMMAND_MAINCLASS
                            << COMMAND_NONREENTRANT
                            << COMMAND_OBSOLETE
+                           << COMMAND_PAGEKEYWORDS
                            << COMMAND_PRELIMINARY
                            << COMMAND_INPUBLICGROUP
                            << COMMAND_REENTRANT
@@ -230,6 +233,9 @@
     else if (command == COMMAND_SINCE) {
         node->setSince(arg);
     }
+    else if (command == COMMAND_PAGEKEYWORDS) {
+        node->addPageKeywords(arg);
+    }
     else if (command == COMMAND_SUBTITLE) {
 	if (node->type() == Node::Fake) {
 	    FakeNode *fake = static_cast<FakeNode *>(node);
@@ -245,10 +251,20 @@
 	if (node->type() == Node::Fake) {
 	    FakeNode *fake = static_cast<FakeNode *>(node);
             fake->setTitle(arg);
+            nameToTitle.insert(fake->name(),arg);
         }
         else
 	    location.warning(tr("Ignored '\\%1'").arg(COMMAND_TITLE));
     }
 }
 
+/*!
+  Find the page title given the page \a name and return it.
+ */
+const QString CodeParser::titleFromName(const QString& name)
+{
+    const QString t = nameToTitle.value(name);
+    return t;
+}
+
 QT_END_NAMESPACE