From 896de79554060aadf4963d8285ef3f5d8740428b Mon Sep 17 00:00:00 2001
From: Martin Smith <martin.smith@nokia.com>
Date: Wed, 7 Jul 2010 14:21:55 +0200
Subject: qdoc: Fixed a few links to QtObject (QML:QtObject)

---
 doc/src/declarative/elements.qdoc          |  2 +-
 src/declarative/qml/qdeclarativeengine.cpp |  6 +++---
 tools/qdoc3/cppcodeparser.cpp              | 15 ++-------------
 tools/qdoc3/htmlgenerator.cpp              |  5 ++++-
 tools/qdoc3/tree.cpp                       |  6 ++++--
 5 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc
index 48eb09f..349a8ed 100644
--- a/doc/src/declarative/elements.qdoc
+++ b/doc/src/declarative/elements.qdoc
@@ -114,7 +114,7 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt
 \row \o \l {Connections} \o Explicitly connects signals and signal handlers
 \row \o \l {Component} \o Encapsulate QML items as a component
 \row \o \l {Timer} \o Provides timed triggers 
-\row \o \l {QtObject} \o Basic element containing only the objectName property
+\row \o \l {QML:QtObject} {QtObject} \o Basic element containing only the objectName property
 \row \o \l {WorkerScript} \o Enables the use of threads in QML
 \row \o \l {Loader} \o Controls the loading of items or components
 \row \o \l {Repeater} \o Uses a model to create multiples of components
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 8b15ae9..036c854 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -125,7 +125,7 @@ QT_BEGIN_NAMESPACE
   QObject. See the QObject documentation for further details.
 */
 /*!
-  \qmlproperty string QtObject::objectName
+  \qmlproperty string QML:QtObject::objectName
   This property allows you to give a name to this specific object instance.
 
   See \l{scripting.html#accessing-child-qobjects}{Accessing Child QObjects}
@@ -236,8 +236,8 @@ QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e)
 }
 
 /*!
-\qmlmethod url Qt::resolvedUrl(url)
-Returns \c url resolved relative to the URL of the caller.
+  \qmlmethod url Qt::resolvedUrl(url)
+  Returns \c url resolved relative to the URL of the caller.
 */
 QUrl QDeclarativeScriptEngine::resolvedUrl(QScriptContext *context, const QUrl& url)
 {
diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp
index e4870e3..d5108fd 100644
--- a/tools/qdoc3/cppcodeparser.cpp
+++ b/tools/qdoc3/cppcodeparser.cpp
@@ -728,23 +728,12 @@ Node *CppCodeParser::processTopicCommand(const Doc& doc,
             if (n)
                 classNode = static_cast<const ClassNode*>(n);
         }
-        if (names[0].startsWith("Q"))
+        if (names[0].startsWith("Qt"))
             return new QmlClassNode(tre->root(), QLatin1String("QML:")+names[0], classNode);
         else
             return new QmlClassNode(tre->root(), names[0], classNode);
     }
     else if (command == COMMAND_QMLBASICTYPE) {
-#if 0
-        QStringList parts = arg.split(" ");
-        qDebug() << command << parts;
-        if (parts.size() > 1) {
-            FakeNode* pageNode = static_cast<FakeNode*>(tre->root()->findNode(parts[1], Node::Fake));
-            if (pageNode) {
-                qDebug() << "FOUND";
-                return new QmlBasicTypeNode(pageNode, parts[0]);
-            }
-        }
-#endif
         return new QmlBasicTypeNode(tre->root(), arg);
     }
     else if ((command == COMMAND_QMLSIGNAL) ||
@@ -755,7 +744,7 @@ Node *CppCodeParser::processTopicCommand(const Doc& doc,
         QString type;
         QmlClassNode* qmlClass = 0;
         if (splitQmlMethodArg(doc,arg,type,element)) {
-            if (element.startsWith(QLatin1String("Q")))
+            if (element.startsWith(QLatin1String("Qt")))
                 element = QLatin1String("QML:") + element;
             Node* n = tre->findNode(QStringList(element),Node::Fake);
             if (n && n->subType() == Node::QmlClass) {
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index b7ab4d6..441cfc6 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -4197,7 +4197,10 @@ void HtmlGenerator::generateQmlInstantiates(const QmlClassNode* qcn,
         text << "[";
         text << Atom(Atom::LinkNode,CodeMarker::stringForNode(qcn));
         text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK);
-        text << Atom(Atom::String, qcn->name());
+        QString name = qcn->name();
+        if (name.startsWith(QLatin1String("QML:")))
+            name = name.mid(4); // remove the "QML:" prefix
+        text << Atom(Atom::String, name);
         text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK);
         text << " instantiates the C++ class ";
         text << Atom(Atom::LinkNode,CodeMarker::stringForNode(cn));
diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp
index 022e1c2..d22a09a 100644
--- a/tools/qdoc3/tree.cpp
+++ b/tools/qdoc3/tree.cpp
@@ -173,9 +173,11 @@ const Node* Tree::findNode(const QStringList &path,
         }
         if (node && i == path.size()
                 && (!(findFlags & NonFunction) || node->type() != Node::Function
-                    || ((FunctionNode *)node)->metaness() == FunctionNode::MacroWithoutParams))
-            if ((node != self) && (node->subType() != Node::QmlPropertyGroup))
+                    || ((FunctionNode *)node)->metaness() == FunctionNode::MacroWithoutParams)) {
+            if ((node != self) && (node->subType() != Node::QmlPropertyGroup)) {
                 return node;
+            }
+        }
         current = current->parent();
     } while (current);
 
-- 
cgit v0.12