diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2016-12-08 09:45:24 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2016-12-08 09:45:45 +0100 |
commit | c0afdf0fdc3c4572ba23bfd6a94e7fd64dd0067d (patch) | |
tree | 97711ed4ce42fe53d4653a5ef90faf085ed32f0b | |
parent | 28df30fccd3d5b1e1e0b58efb225246766d7fcd5 (diff) | |
parent | 91010f426a05232c749843143c26731511fa1cb1 (diff) | |
download | qttools-c0afdf0fdc3c4572ba23bfd6a94e7fd64dd0067d.tar.gz |
Merge remote-tracking branch 'origin/5.8.0' into 5.8
Change-Id: Ifc9140cd8798a1cdd59dabd18c223d33a612fa78
-rw-r--r-- | src/qdoc/qmlvisitor.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/qdoc/qmlvisitor.cpp b/src/qdoc/qmlvisitor.cpp index 033b37e43..ac64348d6 100644 --- a/src/qdoc/qmlvisitor.cpp +++ b/src/qdoc/qmlvisitor.cpp @@ -652,6 +652,30 @@ void QmlDocVisitor::endVisit(QQmlJS::AST::UiArrayBinding *) { } +template <typename T> +QString qualifiedIdToString(T node); + +template <> +QString qualifiedIdToString(QStringRef node) +{ + return node.toString(); +} + +template <> +QString qualifiedIdToString(QQmlJS::AST::UiQualifiedId *node) +{ + QString s; + + for (QQmlJS::AST::UiQualifiedId *it = node; it; it = it->next) { + s.append(it->name); + + if (it->next) + s.append(QLatin1Char('.')); + } + + return s; +} + /*! Visits the public \a member declaration, which can be a signal or a property. It is a custom signal or property. @@ -674,8 +698,9 @@ bool QmlDocVisitor::visit(QQmlJS::AST::UiPublicMember *member) QVector<Parameter> parameters; for (QQmlJS::AST::UiParameterList *it = member->parameters; it; it = it->next) { - if (!it->type.isEmpty() && !it->name.isEmpty()) - parameters.append(Parameter(it->type.toString(), QString(), it->name.toString())); + const QString type = qualifiedIdToString(it->type); + if (!type.isEmpty() && !it->name.isEmpty()) + parameters.append(Parameter(type, QString(), it->name.toString())); } qmlSignal->setParameters(parameters); @@ -686,7 +711,7 @@ bool QmlDocVisitor::visit(QQmlJS::AST::UiPublicMember *member) } case QQmlJS::AST::UiPublicMember::Property: { - QString type = member->memberType.toString(); + QString type = qualifiedIdToString(member->memberType); QString name = member->name.toString(); if (current->isQmlType() || current->isJsType()) { QmlTypeNode *qmlType = static_cast<QmlTypeNode *>(current); |