summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCasper van Donderen <casper.vandonderen@nokia.com>2012-05-04 14:51:53 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-04 17:57:46 +0200
commit9a140d65217e22324d3f75d7c6e48eeca84f5c71 (patch)
tree7e9e33b5fea6021f174da85b87fc63c6c061517f /src
parent295ec32a74502e225f6ebb606536587786708676 (diff)
QDoc: Generate unique ids for qmlMethods.
Also delete unused function. Change-Id: I8c3590d17c823bc27dcb9d9e73b7b812e078d33b Reviewed-by: Martin Smith <martin.smith@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp5
-rw-r--r--src/tools/qdoc/node.cpp28
-rw-r--r--src/tools/qdoc/node.h2
-rw-r--r--src/tools/qdoc/qmlvisitor.cpp9
4 files changed, 17 insertions, 27 deletions
diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp
index 806be0a3c6..ef3bf8db15 100644
--- a/src/tools/qdoc/htmlgenerator.cpp
+++ b/src/tools/qdoc/htmlgenerator.cpp
@@ -3383,7 +3383,10 @@ QString HtmlGenerator::refForNode(const Node *node)
ref = node->name() + "-signal-handler";
break;
case Node::QmlMethod:
- ref = node->name() + "-method";
+ func = static_cast<const FunctionNode *>(node);
+ ref = func->name() + "-method";
+ if (func->overloadNumber() != 1)
+ ref += "-" + QString::number(func->overloadNumber());
break;
case Node::Variable:
ref = node->name() + "-var";
diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp
index 4d6c58a8a3..c648c720eb 100644
--- a/src/tools/qdoc/node.cpp
+++ b/src/tools/qdoc/node.cpp
@@ -1048,20 +1048,6 @@ int InnerNode::overloadNumber(const FunctionNode *func) const
}
/*!
- Returns the number of member functions of a class such that
- the functions are all named \a funcName.
- */
-int InnerNode::numOverloads(const QString& funcName) const
-{
- if (primaryFunctionMap.contains(funcName)) {
- return secondaryFunctionMap[funcName].count() + 1;
- }
- else {
- return 0;
- }
-}
-
-/*!
Returns a node list containing all the member functions of
some class such that the functions overload the name \a funcName.
*/
@@ -1821,15 +1807,6 @@ int FunctionNode::overloadNumber() const
}
/*!
- Returns the number of times this function name has been
- overloaded, obtained from the parent.
- */
-int FunctionNode::numOverloads() const
-{
- return parent()->numOverloads(name());
-}
-
-/*!
Returns the list of parameter names.
*/
QStringList FunctionNode::parameterNames() const
@@ -2745,7 +2722,10 @@ QString Node::idForNode() const
str = "qml-signal-handler-" + name();
break;
case Node::QmlMethod:
- str = "qml-method-" + name();
+ func = static_cast<const FunctionNode*>(this);
+ str = "qml-method-" + func->name();
+ if (func->overloadNumber() != 1)
+ str += "-" + QString::number(func->overloadNumber());
break;
case Node::Variable:
str = "var-" + name();
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index b0be5f0be8..2cb93a830f 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -335,7 +335,6 @@ public:
const NodeList & relatedNodes() const { return related_; }
int count() const { return children.size(); }
int overloadNumber(const FunctionNode* func) const;
- int numOverloads(const QString& funcName) const;
NodeList overloads(const QString &funcName) const;
const QStringList& includes() const { return inc; }
@@ -777,7 +776,6 @@ public:
bool isReimp() const { return reimp; }
bool isFunction() const { return true; }
int overloadNumber() const;
- int numOverloads() const;
const QList<Parameter>& parameters() const { return params; }
QStringList parameterNames() const;
QString rawParameters(bool names = false, bool values = false) const;
diff --git a/src/tools/qdoc/qmlvisitor.cpp b/src/tools/qdoc/qmlvisitor.cpp
index 956f874cbf..36dc5cc16a 100644
--- a/src/tools/qdoc/qmlvisitor.cpp
+++ b/src/tools/qdoc/qmlvisitor.cpp
@@ -535,6 +535,15 @@ bool QmlDocVisitor::visit(QQmlJS::AST::FunctionDeclaration* fd)
if (qmlClass) {
QString name = fd->name.toString();
FunctionNode* qmlMethod = new FunctionNode(Node::QmlMethod, current, name, false);
+ int overloads = 0;
+ NodeList::ConstIterator overloadIterator = current->childNodes().begin();
+ while (overloadIterator != current->childNodes().end()) {
+ if ((*overloadIterator)->name() == name)
+ overloads++;
+ overloadIterator++;
+ }
+ if (overloads > 1)
+ qmlMethod->setOverload(true);
QList<Parameter> parameters;
QQmlJS::AST::FormalParameterList* formals = fd->formals;
if (formals) {