diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/qdoc/htmlgenerator.cpp | 5 | ||||
-rw-r--r-- | src/tools/qdoc/node.cpp | 28 | ||||
-rw-r--r-- | src/tools/qdoc/node.h | 2 | ||||
-rw-r--r-- | src/tools/qdoc/qmlvisitor.cpp | 9 |
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) { |