summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2016-12-08 09:45:24 +0100
committerSimon Hausmann <simon.hausmann@qt.io>2016-12-08 09:45:45 +0100
commitc0afdf0fdc3c4572ba23bfd6a94e7fd64dd0067d (patch)
tree97711ed4ce42fe53d4653a5ef90faf085ed32f0b
parent28df30fccd3d5b1e1e0b58efb225246766d7fcd5 (diff)
parent91010f426a05232c749843143c26731511fa1cb1 (diff)
downloadqttools-c0afdf0fdc3c4572ba23bfd6a94e7fd64dd0067d.tar.gz
Merge remote-tracking branch 'origin/5.8.0' into 5.8
Change-Id: Ifc9140cd8798a1cdd59dabd18c223d33a612fa78
-rw-r--r--src/qdoc/qmlvisitor.cpp31
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);