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:
}