QDoc: Keep member links in their intended scope
When the TemplateGenerator encounters members with the same target name,
the links their detailed descriptions and see-also lists can end up
pointing to another member's section. The containing page doesn't
identify which member's target the author intended.
This change makes QDoc resolve member links in the context of the
documentation that contains them. This preserves the intended
destination, while keeping URLs relative to the page that displays the
content.
Fixes: QTBUG-151276
Task-number: QTBUG-151277
Pick-to: 6.12
Change-Id: I54225b907ed3d2e30efbe128259ba247599b4b19
Reviewed-by: Topi Reinio <topi.reinio@qt.io>
| commit | 96c5b2900879b3275f01be64e314f3abc578988a |
| parent | 03d589c93a8c0faa842c1683de5694cba11954d5 |
| author | Paul Wicking <paul.wicking@qt.io> |
| committer | Paul Wicking <paul.wicking@qt.io> |
| commit time | Thu, 8 Oct 2026 07:33:24 +0000 |
- M src/qdoc/qdoc/src/qdoc/linkresolver.cpp
- M src/qdoc/qdoc/src/qdoc/linkresolver.h
- M src/qdoc/qdoc/src/qdoc/nodeextractor.cpp
- M src/qdoc/qdoc/src/qdoc/nodeextractor.h
- M src/qdoc/qdoc/src/qdoc/templategenerator.cpp
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/MemberLinkContext-qdoc-warnings.log
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/member-link-context.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/memberlink-module.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/memberlinkcontext-members.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/memberlinkcontext.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/memberlinkcontext.index
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/memberlinkqml-qmlmodule.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/qml-memberlinkqml-signalorigins-members.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html-legacy/qml-memberlinkqml-signalorigins.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html/member-link-context.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html/memberlink-module.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html/memberlinkcontext-members.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html/memberlinkcontext.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html/memberlinkqml-qmlmodule.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html/qml-memberlinkqml-signalorigins-members.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/html/qml-memberlinkqml-signalorigins.html
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/markdown/member-link-context.md
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/markdown/memberlink-module.md
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/markdown/memberlinkcontext-members.md
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/markdown/memberlinkcontext.md
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/markdown/memberlinkqml-qmlmodule.md
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/markdown/qml-memberlinkqml-signalorigins-members.md
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/expected/markdown/qml-memberlinkqml-signalorigins.md
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/member_link_context.qdocconf
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/src/member_link_context.h
- A src/qdoc/qdoc/tests/validatetemplategeneratoroutput/testdata/member_link_context/src/member_link_context.qdoc