diff options
author | Topi Reinio <topi.reinio@qt.io> | 2021-06-15 10:58:14 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-06-17 09:01:59 +0000 |
commit | 08ce46d0fa28dd2825df0a1b3f8ef5481de163e3 (patch) | |
tree | 72f9840e75d35f4a690bcd294dae56f5693339d0 /tests | |
parent | a6b04d7047ebc13e3955390cc72b5d2ac6ca6a31 (diff) |
qdoc: Stop documenting ignored nodes
There were multiple locations in the code where QDoc still generated
links to nodes that were marked with \internal or \dontdocument, or
generated lists that included entries (with links to non-existing
files) representing these nodes.
* Set an empty (but non-null) url for ignored nodes. This
also speeds up searching for link targets as nodes can
be dismissed early based on their url().
* Use Node::isDontDocument() as a conditional in Node::isInAPI(),
and filter CollectionNode's members based on the latter - this
removes ignored classes/functions from module pages and group
listings.
* Fix TagFileWriter to drop ignored nodes.
Fixes: QTBUG-94555
Change-Id: Icab05f7aa78e455c15ce097b9f99f5fce7267d3f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 1246e064caaa6243c941d795eb877c519bce69ad)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'tests')
11 files changed, 38 insertions, 35 deletions
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html index c8bdbdc71..5db714b9b 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html @@ -41,6 +41,7 @@ <li><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></li> <li><a href="testqdoc-test.html">Test</a> class <a href="testqdoc.html#usage">Usage</a>.</li> <li><a href="testqdoc.html#QDOCTEST_MACRO">QDOCTEST_MACRO</a></li> +<li>DontLinkToMe</li> </ul> <h3 id="generated-lists">Generated Lists</h3> <p>This is an annotated list of entries in a group: <div class="table"><table class="annotated"> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/first.html b/tests/auto/qdoc/generatedoutput/expected_output/first.html index 79ae81b7f..f46004f6e 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/first.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/first.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <!-- main.cpp --> - <title>First Class | TestModule</title> + <title>First Struct | TestModule</title> </head> <body> <li>First</li> @@ -11,14 +11,22 @@ <div class="toc"> <h3 id="toc">Contents</h3> <ul> +<li class="level1"><a href="#public-types">Public Types</a></li> <li class="level1"><a href="#details">Detailed Description</a></li> </ul> </div> <div class="sidebar-content" id="sidebar-content"></div></div> -<h1 class="title">First Class</h1> +<h1 class="title">First Struct</h1> <div class="table"><table class="alignedsummary"> <tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include <First></span> </td></tr></table></div> +<ul> +<li><a href="first-members.html">List of all members, including inherited members</a></li> +</ul> +<h2 id="public-types">Public Types</h2> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="first-nested.html">Nested</a></b></td></tr> +</table></div> <!-- $$$First-description --> <div class="descr"> <h2 id="details">Detailed Description</h2> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml index b3dc9dffa..526bbbe73 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml +++ b/tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml @@ -1,15 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> <WebXML> <document> - <class name="First" href="first.html" status="active" access="public" location="bbb.h" documented="true" module="TestModule"> + <struct name="First" href="first.html" status="active" access="public" location="bbb.h" documented="true" module="TestModule"> <description> <para>This is a first class</para> </description> - <class name="Nested" fullname="First::Nested" href="first-nested.html" status="active" access="private" location="bbb.h" documented="true" module="TestModule"> + <class name="Nested" fullname="First::Nested" href="first-nested.html" status="active" access="public" location="bbb.h" documented="true" module="TestModule"> <description> <para>This is a nested class</para> </description> </class> - </class> + </struct> </document> </WebXML> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/index.html b/tests/auto/qdoc/generatedoutput/expected_output/index.html index a17504a08..4593e3419 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/index.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/index.html @@ -11,7 +11,7 @@ <div class="descr" id="details"> <div class="table"><table class="annotated"> <tr class="odd topAlign"><td class="tblName"><p><a href="first.html">First</a></p></td></tr> -<tr class="even topAlign"><td class="tblName"><p>First::Nested</p></td></tr> +<tr class="even topAlign"><td class="tblName"><p><a href="first-nested.html">First::Nested</a></p></td></tr> <tr class="odd topAlign"><td class="tblName"><p><a href="second.html">Second</a></p></td></tr> <tr class="even topAlign"><td class="tblName"><p><a href="third.html">Third</a></p></td></tr> </table></div> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index index d140f678a..fd21f16ec 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index @@ -12,6 +12,7 @@ <namespace name="CrossModuleRef" href="crossmoduleref.html" status="active" access="public" location="testcpp.h" documented="true" module="TestCPP" brief="Namespace that has documented functions in multiple modules"> <function name="documentMe" fullname="CrossModuleRef::documentMe" href="crossmoduleref.html#documentMe" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void documentMe()"/> </namespace> + <class name="DontLinkToMe" href="dontlinktome.html" status="ignored" access="public" location="testcpp.h" documented="true" module="TestCPP" brief="Class that does not generate documentation"/> <page name="obsolete-classes.html" href="obsolete-classes.html" status="active" location="classlists.qdoc" documented="true" subtype="page" title="Obsolete Classes" fulltitle="Obsolete Classes" subtitle=""> <contents name="classes-with-obsolete-members" title="Classes with obsolete members" level="1"/> <contents name="testqdoc" title="TestQDoc" level="2"/> @@ -99,6 +100,6 @@ </class> </namespace> <group name="testgroup" href="testgroup.html" status="internal" seen="false" title="" members="Test,QDOCTEST_MACRO2,someFunctionDefaultArg"/> - <module name="TestCPP" href="testcpp-module.html" status="active" documented="true" seen="true" title="QDoc Test C++ Classes" module="TestCPP" members="TestQDoc,Test,TestDerived,CrossModuleRef" brief="A test module page"/> + <module name="TestCPP" href="testcpp-module.html" status="active" documented="true" seen="true" title="QDoc Test C++ Classes" module="TestCPP" members="TestQDoc,Test,TestDerived,CrossModuleRef,DontLinkToMe" brief="A test module page"/> </namespace> </INDEX> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index index ea122311d..6b3a1b66e 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index @@ -12,6 +12,7 @@ <namespace name="CrossModuleRef" href="crossmoduleref.html" status="active" access="public" location="testcpp.h" documented="true" module="TestCPP" brief="Namespace that has documented functions in multiple modules"> <function name="documentMe" fullname="CrossModuleRef::documentMe" href="crossmoduleref.html#documentMe" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void documentMe()"/> </namespace> + <class name="DontLinkToMe" href="dontlinktome.html" status="ignored" access="public" location="testcpp.h" documented="true" module="TestCPP" brief="Class that does not generate documentation"/> <page name="obsolete-classes.html" href="obsolete-classes.html" status="active" location="classlists.qdoc" documented="true" subtype="page" title="Obsolete Classes" fulltitle="Obsolete Classes" subtitle=""> <contents name="classes-with-obsolete-members" title="Classes with obsolete members" level="1"/> <contents name="testqdoc" title="TestQDoc" level="2"/> @@ -62,6 +63,6 @@ </class> </namespace> <group name="testgroup" href="testgroup.html" status="internal" seen="false" title="" members="Test,QDOCTEST_MACRO2,someFunctionDefaultArg"/> - <module name="TestCPP" href="testcpp-module.html" status="active" documented="true" seen="true" title="QDoc Test C++ Classes" module="TestCPP" members="TestQDoc,Test,TestDerived,CrossModuleRef" brief="A test module page"/> + <module name="TestCPP" href="testcpp-module.html" status="active" documented="true" seen="true" title="QDoc Test C++ Classes" module="TestCPP" members="TestQDoc,Test,TestDerived,CrossModuleRef,DontLinkToMe" brief="A test module page"/> </namespace> </INDEX> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags b/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags index ea88a7a0d..c4b2ad3db 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags +++ b/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags @@ -15,7 +15,7 @@ <name>name</name> <anchorfile>qml-qdoc-test-abstractparent.html</anchorfile> <anchor>name-method</anchor> - <arglist>(Child child, name)</arglist> + <arglist>(Child child, name)</arglist> </member> <member kind="function" protection="public" virtualness="non" static="no"> <type>void</type> @@ -33,7 +33,7 @@ <name>name</name> <anchorfile>qml-qdoc-test-child.html</anchorfile> <anchor>name-method</anchor> - <arglist>(Child child, name)</arglist> + <arglist>(Child child, name)</arglist> </member> </compound> <compound kind="namespace"> @@ -76,21 +76,14 @@ <name>fail</name> <anchorfile>qml-qdoc-test-doctest.html</anchorfile> <anchor>fail-method</anchor> - <arglist>( message)</arglist> - </member> - <member kind="function" protection="public" virtualness="non" static="no"> - <type></type> - <name>doctest_fail</name> - <anchorfile>qml-qdoc-test-doctest.html</anchorfile> - <anchor>doctest_fail-method</anchor> - <arglist>( msg)</arglist> + <arglist>(message)</arglist> </member> <member kind="function" protection="public" virtualness="non" static="no"> <type></type> <name>fail_hard</name> <anchorfile>qml-qdoc-test-doctest.html</anchorfile> <anchor>fail_hard-method</anchor> - <arglist>( msg, option)</arglist> + <arglist>(msg, option)</arglist> </member> </compound> <compound kind="class"> @@ -107,24 +100,10 @@ <anchor>toggle-method</anchor> <arglist>()</arglist> </member> - <member kind="function" protection="public" virtualness="non" static="no"> - <type></type> - <name>releaseSwitch</name> - <anchorfile>qml-uicomponents-switch.html</anchorfile> - <anchor>releaseSwitch-method</anchor> - <arglist>()</arglist> - </member> </compound> <compound kind="class"> <name>UIComponents.TabWidget</name> <filename>qml-uicomponents-tabwidget.html</filename> - <member kind="function" protection="public" virtualness="non" static="no"> - <type></type> - <name>setOpacities</name> - <anchorfile>qml-uicomponents-tabwidget.html</anchorfile> - <anchor>setOpacities-method</anchor> - <arglist>()</arglist> - </member> </compound> <compound kind="namespace"> <name>TestQDoc</name> @@ -293,7 +272,7 @@ <name>copy</name> <anchorfile>qml-qdoc-test-type.html</anchorfile> <anchor>copy-method</anchor> - <arglist>( a)</arglist> + <arglist>(a)</arglist> </member> <member kind="function" protection="public" virtualness="non" static="no"> <type></type> diff --git a/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h index 0dc6e52c6..ac3706e55 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h +++ b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h @@ -1,5 +1,5 @@ #pragma once -class First +struct First { class Nested {}; }; diff --git a/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp index 299e8f247..9de7b2b9e 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp +++ b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp @@ -51,6 +51,7 @@ void CrossModuleRef::documentMeToo() \li \l {TestQDoc::TestDerived} \li \l {TestQDoc::}{Test} class \l Usage. \li QDOCTEST_MACRO + \li DontLinkToMe \endlist \section1 Generated Lists diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp index 19afd4197..dd02416ac 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp +++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp @@ -316,3 +316,13 @@ void documentMe() } } // namespace CrossModuleRef + +/*! + \class DontLinkToMe + \inmodule TestCPP + \brief Class that does not generate documentation. +*/ + +/*! + \dontdocument (DontLinkToMe) +*/ diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h index 2fd85589b..3443f93fb 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h +++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h @@ -141,3 +141,5 @@ using Vec = BaseVec<T>; namespace CrossModuleRef { void documentMe(); } + +class DontLinkToMe {}; |