diff options
author | Topi Reinio <topi.reinio@qt.io> | 2020-01-04 22:59:26 +0100 |
---|---|---|
committer | Topi Reinio <topi.reinio@qt.io> | 2020-01-13 14:52:52 +0100 |
commit | 8bfd6204d4e5c31b728e6d26db404183c9f9a6c0 (patch) | |
tree | 46bb98954533bef84ca98aa92737038966015d5d /tests | |
parent | ccdbf30b6ac9180ead6fc22c858b6fac112d493c (diff) |
qdoc: Introduce ignoresince configuration variable
Qt has a long history, with lots of classes and functions
documented being introduced in a specific version. This
\since information for decade-old features is not relevant
anymore, producing noise about ancient Qt releases that
have been long unsupported.
In preparation for Qt 6, introduce a feature where we can set
a cutoff value for \since information that can be ignored in
the generated documentation.
Fixes: QTBUG-81090
Change-Id: Ib35a2a4d8bc3a6cb9719223a45b02f0e63f337ea
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'tests')
5 files changed, 188 insertions, 0 deletions
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html new file mode 100644 index 000000000..0cb766e42 --- /dev/null +++ b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html @@ -0,0 +1,93 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> +<!-- testcpp.cpp --> + <title>Test Class | TestCPP</title> +</head> +<body> +<li>Test</li> +<div class="sidebar"> +<div class="toc"> +<h3><a name="toc">Contents</a></h3> +<ul> +<li class="level1"><a href="#public-functions">Public Functions</a></li> +<li class="level1"><a href="#protected-functions">Protected Functions</a></li> +<li class="level1"><a href="#macros">Macros</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">Test Class</h1> +<span class="small-subtitle">(<a href="testqdoc-test.html">TestQDoc::Test</a>)<br/></span> +<!-- $$$Test-brief --> +<p>A class in a namespace. <a href="#details">More...</a></p> +<!-- @@@Test --> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include <Test></span> +</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p> +</td></tr></table></div><ul> +<li><a href="testqdoc-test-members.html">List of all members, including inherited members</a></li> +<li><a href="testqdoc-test-obsolete.html">Obsolete members</a></li> +</ul> +<a name="public-functions"></a> +<h2 id="public-functions">Public Functions</h2> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i>)</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr> +</table></div> +<a name="protected-functions"></a> +<h2 id="protected-functions">Protected Functions</h2> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload">overload</a></b>()</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1">overload</a></b>(bool <i>b</i>)</td></tr> +</table></div> +<a name="macros"></a> +<h2 id="macros">Macros</h2> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a></b>(<i>x</i>)</td></tr> +</table></div> +<a name="details"></a> +<!-- $$$Test-description --> +<div class="descr"> +<h2 id="details">Detailed Description</h2> +</div> +<!-- @@@Test --> +<div class="func"> +<h2>Member Function Documentation</h2> +<!-- $$$ --> +<div class="fngroup"> +<h3 class="fn fngroupitem" id="overload"><a name="overload"></a><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><a name="overload-1"></a><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div> +<p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p> +<!-- @@@ --> +<!-- $$$inlineFunction[overload1]$$$inlineFunction --> +<h3 class="fn" id="inlineFunction"><a name="inlineFunction"></a><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3> +<p>An inline function, documented using the \fn QDoc command.</p> +<!-- @@@inlineFunction --> +<!-- $$$someFunction[overload1]$$$someFunctionint --> +<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i>)</h3> +<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p> +<p>This function was introduced in Test 1.0.</p> +<!-- @@@someFunction --> +<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool --> +<h3 class="fn" id="someFunctionDefaultArg"><a name="someFunctionDefaultArg"></a><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3> +<p>Function that takes a parameter <i>i</i> and <i>b</i>.</p> +<p>This function was introduced in Qt 2.0.</p> +<!-- @@@someFunctionDefaultArg --> +<!-- $$$virtualFun[overload1]$$$virtualFun --> +<h3 class="fn" id="virtualFun"><a name="virtualFun"></a><code>[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3> +<p>Function that must be reimplemented.</p> +<!-- @@@virtualFun --> +</div> +<div class="macros"> +<h2>Macro Documentation</h2> +<!-- $$$QDOCTEST_MACRO2[overload1]$$$QDOCTEST_MACRO2 --> +<h3 class="fn" id="QDOCTEST_MACRO2"><a name="QDOCTEST_MACRO2"></a><span class="name">QDOCTEST_MACRO2</span>(<i>x</i>)</h3> +<p>A macro with argument <i>x</i>.</p> +<p>This function was introduced in Test 1.1.</p> +<!-- @@@QDOCTEST_MACRO2 --> +</div> +</body> +</html> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html new file mode 100644 index 000000000..a259e40af --- /dev/null +++ b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> +<!-- testcpp.cpp --> + <title>TestQDoc Namespace | TestCPP</title> +</head> +<body> +<div class="sidebar"> +<div class="toc"> +<h3><a name="toc">Contents</a></h3> +<ul> +<li class="level1"><a href="#classes">Classes</a></li> +<li class="level1"><a href="#macros">Macros</a></li> +<li class="level1"><a href="#details">Detailed Description</a></li> +<li class="level2"><a href="#usage">Usage</a></li> +</ul> +</div> +<div class="sidebar-content" id="sidebar-content"></div></div> +<h1 class="title">TestQDoc Namespace</h1> +<!-- $$$TestQDoc-brief --> +<p>A namespace. <a href="#details">More...</a></p> +<!-- @@@TestQDoc --> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include <TestCPP></span> +</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div><ul> +</ul> +<a name="classes"></a> +<h2 id="classes">Classes</h2> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html">Test</a></b></td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html">TestDerived</a></b></td></tr> +</table></div> +<a name="macros"></a> +<h2 id="macros">Macros</h2> +<div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc.html#QDOCTEST_MACRO">QDOCTEST_MACRO</a></b></td></tr> +</table></div> +<a name="details"></a> +<!-- $$$TestQDoc-description --> +<div class="descr"> +<h2 id="details">Detailed Description</h2> +<a name="usage"></a> +<h3 id="usage">Usage</h3> +<p>This namespace is for testing QDoc output.</p> +</div> +<!-- @@@TestQDoc --> +<div class="classes"> +<h2>Classes</h2> +<h3> class <a href="testqdoc-test.html">Test</a></h3><!-- $$$Test-brief --> +<p>A class in a namespace. <a href="testqdoc-test.html#details">More...</a></p> +<!-- @@@Test --> +<h3> class <a href="testqdoc-testderived.html">TestDerived</a></h3><!-- $$$TestDerived-brief --> +<p>A derived class in a namespace. <a href="testqdoc-testderived.html#details">More...</a></p> +<!-- @@@TestDerived --> +</div> +<div class="macros"> +<h2>Macro Documentation</h2> +<!-- $$$QDOCTEST_MACRO[overload1]$$$QDOCTEST_MACRO --> +<h3 class="fn" id="QDOCTEST_MACRO"><a name="QDOCTEST_MACRO"></a><span class="name">QDOCTEST_MACRO</span></h3> +<!-- @@@QDOCTEST_MACRO --> +</div> +</body> +</html> diff --git a/tests/auto/qdoc/generatedoutput/ignoresince.qdocconf b/tests/auto/qdoc/generatedoutput/ignoresince.qdocconf new file mode 100644 index 000000000..0aa0dbc45 --- /dev/null +++ b/tests/auto/qdoc/generatedoutput/ignoresince.qdocconf @@ -0,0 +1,8 @@ +include(testcpp.qdocconf) +defines += test_ignoresince + +ignoresince = 2.0 +ignoresince.Test = 1.0 + +HTML.nosubdirs = true +HTML.outputsubdir = ignoresince diff --git a/tests/auto/qdoc/generatedoutput/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testcpp.cpp index f33a6a83c..3073148c2 100644 --- a/tests/auto/qdoc/generatedoutput/testcpp.cpp +++ b/tests/auto/qdoc/generatedoutput/testcpp.cpp @@ -50,6 +50,11 @@ namespace TestQDoc { \class TestQDoc::Test \inmodule TestCPP \brief A class in a namespace. + +\if defined(test_ignoresince) + //! omitted by ignoresince + \since 1.1 +\endif */ /*! @@ -61,6 +66,10 @@ namespace TestQDoc { /*! \macro QDOCTEST_MACRO \relates TestQDoc +\if defined(test_ignoresince) + //! omitted by ignoresince.Test + \since Test 0.9 +\endif */ /*! @@ -102,6 +111,9 @@ void Test::anotherObsoleteMember() /*! Function that takes a parameter \a i and \a b. +\if defined(test_ignoresince) + \since 2.0 +\endif */ void Test::someFunctionDefaultArg(int i, bool b = false) { @@ -111,6 +123,9 @@ void Test::someFunctionDefaultArg(int i, bool b = false) /*! Function that takes a parameter \a v. Also returns the value of \a v. +\if defined(test_ignoresince) + \since Test 1.0 +\endif */ int Test::someFunction(int v) { diff --git a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp index 762c18d12..62052e453 100644 --- a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp +++ b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp @@ -56,6 +56,7 @@ private slots: // Output format independent tests void examplesManifestXml(); + void ignoresinceVariable(); private: QScopedPointer<QTemporaryDir> m_outputDir; @@ -277,6 +278,13 @@ void tst_generatedOutput::examplesManifestXml() testAndCompare("examples-qhp.qdocconf", "examples-manifest.xml"); } +void tst_generatedOutput::ignoresinceVariable() +{ + testAndCompare("ignoresince.qdocconf", + "ignoresince/testqdoc.html " + "ignoresince/testqdoc-test.html"); +} + QTEST_APPLESS_MAIN(tst_generatedOutput) #include "tst_generatedoutput.moc" |