This page demonstrates an issuewhere QDoc fails to generate proper links when QML types are accessed through module aliases.
When a QML module is imported with an alias:
import TestModule as TM
TM.BaseType {
title: "Example"
}
QDoc should be able to:
TM.BaseType refers to BaseType.For comparison, here's how non-aliased qualified types work:
import TestModule
TestModule.BaseType {
title: "Direct import"
}
QDoc should handle different import and qualification patterns:
import QtQuick.Controls
import QtQml.Models as Models
Item {
// Standard module qualified types
property ListModel modelData: Models.ListModel {}
// Nested property access patterns
Layout.preferredSize: Qt.size(100, 50)
// Standard QML qualified types for comparison
anchors.fill: parent
}
More complex qualified names with multiple segments:
import TestModule.SubModule.Deep as X
DeepNestedType {
// Four-segment qualified type name: X.Level1.Level2.Leaf
nested: X.Level1.Level2.Leaf {
value: 42
}
// Multi-segment property access
Layout.preferredWidth: 100
anchors.margins.left: 10
}
This tests QDoc's ability to handle qualified names with 3+ segments like X.Level1.Level2.Leaf where each segment should be properly spanned and linked as a complete type reference.
This test covers multiple scenarios for QDoc's qualified name handling:
import TestModule as TM syntax (2 segments).X.Level1.Level2.Leaf syntax (4 segments).Models.ListModel with import QtQml.Models as Models.Layout.preferredWidth, anchors.fill.<span class="type">TM.BaseType</span><span class="type">Models.ListModel</span><span class="name">Layout.preferredSize</span><a href="...">TM.BaseType</a>QDoc should also support manual linking to QML qualified names:
}