summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/qdoc3/ditaxmlgenerator.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp
index 3fb90d2..2d8eec2 100644
--- a/tools/qdoc3/ditaxmlgenerator.cpp
+++ b/tools/qdoc3/ditaxmlgenerator.cpp
@@ -3386,9 +3386,22 @@ void DitaXmlGenerator::writeText(const QString& markedCode,
html.clear();
}
par1 = QStringRef();
- marker->resolveTarget(arg.toString(), myTree, relative);
- QString link = linkForNode(n,relative);
- addLink(link, arg);
+ QString link;
+ n = marker->resolveTarget(arg.toString(), myTree, relative);
+ if (n && n->subType() == Node::QmlBasicType) {
+ if (relative && relative->subType() == Node::QmlClass) {
+ link = linkForNode(n,relative);
+ addLink(link, arg);
+ }
+ else {
+ link = arg.toString();
+ }
+ }
+ else {
+ // (zzz) Is this correct for all cases?
+ link = linkForNode(n,relative);
+ addLink(link, arg);
+ }
}
handled = true;
break;