diff options
7 files changed, 53 insertions, 4 deletions
diff --git a/src/qdoc/docbookgenerator.cpp b/src/qdoc/docbookgenerator.cpp index 2f1fd27ff..6c7d1e81a 100644 --- a/src/qdoc/docbookgenerator.cpp +++ b/src/qdoc/docbookgenerator.cpp @@ -2343,7 +2343,7 @@ void DocBookGenerator::generateReimplementsClause(const FunctionNode *fn) m_writer->writeStartElement(dbNamespace, "para"); m_writer->writeCharacters("Reimplements an access function for property: "); QString fullName = sameName->parent()->name() + "::" + sameName->name(); - generateFullName(sameName->parent(), fullName, overrides); + generateFullName(sameName->parent(), fullName, sameName); m_writer->writeCharacters("."); return; } @@ -4246,8 +4246,6 @@ void DocBookGenerator::generateFullName(const Node *apparentNode, const QString Q_ASSERT(actualNode); // From Generator::appendFullName. - if (actualNode == nullptr) - actualNode = apparentNode; m_writer->writeStartElement(dbNamespace, "link"); m_writer->writeAttribute(xlinkNamespace, "href", fullDocumentLocation(actualNode)); m_writer->writeAttribute("type", targetType(actualNode)); diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties-docbook/testqdoc-testderived.xml b/tests/auto/qdoc/generatedoutput/expected_output/properties-docbook/testqdoc-testderived.xml index 5dd6c8886..757b475df 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties-docbook/testqdoc-testderived.xml +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties-docbook/testqdoc-testderived.xml @@ -195,6 +195,21 @@ <db:note> <db:para>This is a private signal. It can be used in signal connections but cannot be emitted by the user.</db:para></db:note> </db:section> +<db:section xml:id="id"> +<db:title>[override virtual] TestDerived::int id()</db:title> +<db:methodsynopsis> +<db:modifier>virtual</db:modifier> +<db:type>int</db:type> +<db:methodname>id</db:methodname> +<db:modifier>override</db:modifier> +<db:void/> +<db:synopsisinfo db:role="meta">plain</db:synopsisinfo> +<db:synopsisinfo db:role="signature">int id() override</db:synopsisinfo> +<db:synopsisinfo db:role="access">public</db:synopsisinfo> +<db:synopsisinfo db:role="status">active</db:synopsisinfo> +<db:synopsisinfo db:role="threadsafeness">unspecified</db:synopsisinfo> +</db:methodsynopsis> +<db:para>Reimplements an access function for property: <db:link xlink:href="testqdoc-test.xml#id-prop" type="property">Test::id</db:link>.</db:para> <db:section xml:id="invokeMe"> <db:title>[invokable] TestDerived::void invokeMe() const</db:title> <db:methodsynopsis> @@ -252,4 +267,4 @@ </db:section> </db:section> </db:section> -</db:section></db:article> +</db:section></db:section></db:article> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index index 4ac50b93e..4a6de7b7d 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index @@ -57,6 +57,7 @@ </function> <function name="virtualFun" fullname="TestQDoc::Test::virtualFun" href="testqdoc-test.html#virtualFun" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="virtual" const="false" static="false" final="false" override="false" type="void" signature="void virtualFun()"/> <typedef name="SomeType" fullname="TestQDoc::Test::SomeType" href="testqdoc-test.html#SomeType-typedef" status="active" access="public" location="testcpp.h" documented="true"/> + <property name="id" fullname="TestQDoc::Test::id" href="testqdoc-test.html#id-prop" status="active" access="public" location="testcpp.h" documented="true"/> </class> <class name="TestDerived" fullname="TestQDoc::TestDerived" href="testqdoc-testderived.html" status="active" access="public" location="testcpp.h" documented="true" bases="TestQDoc::Test" module="TestCPP" brief="A derived class in a namespace"> <function name="bindableProp" fullname="TestQDoc::TestDerived::bindableProp" href="testqdoc-testderived.html#bindableProp-prop" status="active" access="public" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" associated-property="bindableProp" type="QBindable<QString>" signature="QBindable<QString> bindableProp()"/> @@ -65,6 +66,7 @@ <function name="boolPropChanged" fullname="TestQDoc::TestDerived::boolPropChanged" href="testqdoc-testderived.html#boolProp-prop" status="active" access="public" location="testcpp.h" meta="signal" virtual="non" const="false" static="false" final="false" override="false" associated-property="boolProp" type="void" signature="void boolPropChanged()"/> <function name="emitSomething" fullname="TestQDoc::TestDerived::emitSomething" href="testqdoc-testderived.html#emitSomething" status="active" access="public" location="testcpp.h" documented="true" meta="signal" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void emitSomething()"/> <function name="getInt" fullname="TestQDoc::TestDerived::getInt" href="testqdoc-testderived.html#intProp-prop" status="active" access="public" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" associated-property="intProp" type="int *" signature="int * getInt()"/> + <function name="id" fullname="TestQDoc::TestDerived::id" href="testqdoc-testderived.html#id" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="virtual" const="false" static="false" final="false" override="true" type="int" signature="int id() override"/> <function name="invokeMe" fullname="TestQDoc::TestDerived::invokeMe" href="testqdoc-testderived.html#invokeMe" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="true" static="false" final="false" override="false" type="void" brief="Something invokable" signature="void invokeMe() const"/> <function name="name" fullname="TestQDoc::TestDerived::name" href="testqdoc-testderived.html#name-prop" status="active" access="public" location="testcpp.h" meta="plain" virtual="non" const="true" static="false" final="false" override="false" associated-property="name" type="const QString *" signature="const QString * name() const"/> <function name="resetBoolProp" fullname="TestQDoc::TestDerived::resetBoolProp" href="testqdoc-testderived.html#boolProp-prop" status="active" access="public" location="testcpp.h" meta="slot" virtual="non" const="false" static="false" final="false" override="false" associated-property="boolProp" type="void" signature="void resetBoolProp()"/> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html index 44ac132be..f10eec781 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html @@ -27,6 +27,7 @@ </ul></td><td class="topAlign"><ul> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#intProp-prop">getInt</a></b></span>() : int *</li> +<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#id">id</a></b></span>() : int</li> <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-testderived.html#invokeMe">invokeMe</a></b></span>() const</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#name-prop">name</a></b></span>() const : const QString *</li> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html index f6fd4a662..f18860982 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html @@ -62,6 +62,7 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me </table></div> <h2 id="reimplemented-public-functions">Reimplemented Public Functions</h2> <div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> virtual int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#id">id</a></b>() override</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#virtualFun">virtualFun</a></b>() override</td></tr> </table></div> <h2 id="public-slots">Public Slots</h2> @@ -142,6 +143,10 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me <p>Emitted when things happen.</p> <p><b>Note: </b>This is a private signal. It can be used in signal connections but cannot be emitted by the user.</p> <!-- @@@emitSomething --> +<!-- $$$id[overload1]$$$id --> +<h3 class="fn" id="id"><code>[override virtual] </code><span class="type">int</span> TestDerived::<span class="name">id</span>()</h3> +<p>Reimplements an access function for property: <a href="testqdoc-test.html#id-prop">Test::id</a>.</p> +<!-- @@@id --> <!-- $$$invokeMe[overload1]$$$invokeMe --> <h3 class="fn" id="invokeMe"><code>[invokable] </code><span class="type">void</span> TestDerived::<span class="name">invokeMe</span>() const</h3> <p>Something invokable.</p> diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp index d80267154..9d321c65c 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp +++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp @@ -130,6 +130,14 @@ namespace TestQDoc { */ /*! +\if defined(test_properties) + \property Test::id +\else + \nothing +\endif +*/ + +/*! \deprecated [6.0] Use someFunction() instead. */ void Test::deprecatedMember() @@ -277,6 +285,18 @@ void TestDerived::staticObsoleteMember() */ /*! +\if defined(test_properties) + \reimp +\else + \nothing +\endif +*/ +int TestDerived::id() +{ + return 1; +} + +/*! \if defined(test_template) \fn template <typename T1, typename T2> void TestQDoc::Test::funcTemplate(T1 a, T2 b) \brief Function template with two parameters, \a a and \a b. diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h index 80077da63..fd80b8c99 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h +++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h @@ -39,6 +39,10 @@ namespace TestQDoc { class Test { +#ifdef test_properties + Q_OBJECT + Q_PROPERTY(int id READ id) +#endif public: #ifdef test_template @@ -95,6 +99,9 @@ protected: a = b; } #endif +#ifdef test_properties + virtual int id() { return 0; } +#endif }; class TestDerived : public Test { @@ -122,6 +129,7 @@ public: const QString *name() const; Q_INVOKABLE void invokeMe() const {} + int id() override; Q_SIGNALS: void emitSomething(QPrivateSignal); |