summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2020-01-02 10:42:33 +0100
committerTopi Reiniƶ <topi.reinio@qt.io>2020-01-05 11:01:04 +0000
commitd4064dd83eca3df5c766d1c456fa060233a1288d (patch)
tree4419bc5015d99e099e4bf308191ff07c8a7cd7d1
parent4dcc7a3d10a223ddd111eaaac6665609add7c46f (diff)
qdoc: Fix regression in C++ functions sharing a documentation comment
After a recent refactoring, the function that distributes c++ documentation nodes failed to do anything with a function node that was sharing a comment with other nodes. Fix the issue and add a testcase for shared c++ \fn documentation comments. Fixes: QTBUG-81005 Change-Id: I6320bab232671f8cd969a37136708fc172de8409 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
-rw-r--r--src/qdoc/sections.cpp6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml7
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html12
-rw-r--r--tests/auto/qdoc/generatedoutput/testcpp.cpp8
-rw-r--r--tests/auto/qdoc/generatedoutput/testcpp.h4
7 files changed, 37 insertions, 6 deletions
diff --git a/src/qdoc/sections.cpp b/src/qdoc/sections.cpp
index 7d5bcf03f..edfa212ce 100644
--- a/src/qdoc/sections.cpp
+++ b/src/qdoc/sections.cpp
@@ -826,10 +826,8 @@ void Sections::distributeNodeInDetailsVector(SectionVector &dv, Node *n)
}
if (fn->isIgnored())
return;
- if (!fn->isSharingComment()) {
- if (!fn->hasAssociatedProperties() || !fn->doc().isEmpty())
- dv[DetailsMemberFunctions].insert(n);
- }
+ if (!fn->hasAssociatedProperties() || !fn->doc().isEmpty())
+ dv[DetailsMemberFunctions].insert(n);
return;
}
if (t->isRelatedNonmember()) {
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
index 028921a6e..5d88b6e7c 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
@@ -31,6 +31,13 @@
<para>Use <link raw="someFunction()" href="testqdoc-test.html#someFunction" type="function">someFunction()</link> instead.</para>
</description>
</function>
+ <function name="overload" fullname="TestQDoc::Test::overload" href="testqdoc-test.html#overload" status="active" access="protected" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="45" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void overload()">
+ <description path="" line="0" column="0"/>
+ </function>
+ <function name="overload" fullname="TestQDoc::Test::overload" href="testqdoc-test.html#overload-1" status="active" access="protected" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="46" meta="plain" virtual="non" const="false" static="false" final="false" override="false" overload="true" overload-number="1" type="void" signature="void overload(bool b)">
+ <parameter type="bool" name="b" default=""/>
+ <description path="" line="0" column="0"/>
+ </function>
<function name="someFunction" fullname="TestQDoc::Test::someFunction" href="testqdoc-test.html#someFunction" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="36" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="int" signature="int someFunction(int v)">
<parameter type="int" name="v" default=""/>
<description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="111" column="4">
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml
index 07b6c4caf..c0c8d852f 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<WebXML>
<document>
- <class name="TestDerived" fullname="TestQDoc::TestDerived" href="testqdoc-testderived.html" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="45" documented="true" bases="TestQDoc::Test" module="TestCPP" brief="A derived class in a namespace">
+ <class name="TestDerived" fullname="TestQDoc::TestDerived" href="testqdoc-testderived.html" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="49" documented="true" bases="TestQDoc::Test" module="TestCPP" brief="A derived class in a namespace">
<description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="55" column="4">
<brief>A derived class in a namespace.</brief>
</description>
- <function name="virtualFun" fullname="TestQDoc::TestDerived::virtualFun" href="testqdoc-testderived.html#virtualFun" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="47" documented="true" meta="plain" virtual="virtual" const="false" static="false" final="false" override="true" type="void" signature="void virtualFun() override">
+ <function name="virtualFun" fullname="TestQDoc::TestDerived::virtualFun" href="testqdoc-testderived.html#virtualFun" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="51" documented="true" meta="plain" virtual="virtual" const="false" static="false" final="false" override="true" type="void" signature="void virtualFun() override">
<description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="134" column="4"/>
</function>
</class>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html
index a52123a32..3900ff8cb 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html
@@ -13,6 +13,8 @@
<p>This is the complete list of members for <a href="testqdoc-test.html">TestQDoc::Test</a>, including inherited members.</p>
<ul>
<li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li>
+<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload">overload</a></b></span>()</li>
+<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload-1">overload</a></b></span>(bool )</li>
<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b></span>(int ) : int</li>
<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b></span>(int , bool )</li>
<li class="fn"><span class="name"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b></span>()</li>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
index f172a10e7..c4fb4ad0a 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
@@ -13,6 +13,7 @@
<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>
@@ -38,6 +39,12 @@
<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">
@@ -51,6 +58,11 @@
<!-- @@@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>
diff --git a/tests/auto/qdoc/generatedoutput/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testcpp.cpp
index 3277d496d..f33a6a83c 100644
--- a/tests/auto/qdoc/generatedoutput/testcpp.cpp
+++ b/tests/auto/qdoc/generatedoutput/testcpp.cpp
@@ -139,4 +139,12 @@ void TestDerived::virtualFun()
return;
}
+/*!
+ \fn TestQDoc::Test::overload()
+ \fn TestQDoc::Test::overload(bool b)
+
+ Overloads that share a documentation comment, optionally taking
+ a parameter \a b.
+*/
+
} // namespace TestQDoc
diff --git a/tests/auto/qdoc/generatedoutput/testcpp.h b/tests/auto/qdoc/generatedoutput/testcpp.h
index 733f9e751..c34ada99b 100644
--- a/tests/auto/qdoc/generatedoutput/testcpp.h
+++ b/tests/auto/qdoc/generatedoutput/testcpp.h
@@ -40,6 +40,10 @@ public:
void deprecatedMember();
inline void inlineFunction() {};
virtual void virtualFun();
+
+protected:
+ void overload() {}
+ void overload(bool b) { if (!b) return; }
};
class TestDerived : public Test {