diff options
author | Topi Reinio <topi.reinio@qt.io> | 2021-02-25 12:24:55 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-03-03 08:54:00 +0000 |
commit | 802065a4696ce0104afa5dfc9a05902aeb2da68d (patch) | |
tree | 3dc1b1f5b74d555924f488243520af2a9a7a3fcd | |
parent | 3951980e29106be586defaaa3afe4727a361297e (diff) |
qdoc: Drop \internal entities from the index
Skip nodes marked as \internal from the generated index files, unless
--showinternal option was set. This reduces the size of index files,
improves performance, and also avoids linking issues in corner cases
where QDoc is searching for a specific function overload but fails to
find it because the link target matches with an internal node.
Fixes: QTBUG-91409
Change-Id: I062e261a86e737fde0f138264244324d43091270
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 616d0b5dc3a2ad63afa2812027f91fc17c507b69)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
4 files changed, 6 insertions, 30 deletions
diff --git a/src/qdoc/qdocindexfiles.cpp b/src/qdoc/qdocindexfiles.cpp index bf9f2dbc2..2b0d01040 100644 --- a/src/qdoc/qdocindexfiles.cpp +++ b/src/qdoc/qdocindexfiles.cpp @@ -1483,8 +1483,9 @@ void QDocIndexFiles::generateFunctionSections(QXmlStreamWriter &writer, Aggregat if (!functionMap.isEmpty()) { for (auto it = functionMap.begin(); it != functionMap.end(); ++it) { FunctionNode *fn = it.value(); - while (fn != nullptr) { - generateFunctionSection(writer, fn); + while (fn) { + if (!fn->isInternal() || Config::instance().showInternal()) + generateFunctionSection(writer, fn); fn = fn->nextOverload(); } } @@ -1506,6 +1507,9 @@ void QDocIndexFiles::generateIndexSections(QXmlStreamWriter &writer, Node *node, || node->isJsModule()) return; + if (node->isInternal() && !Config::instance().showInternal()) + return; + if (generateIndexSection(writer, node, post)) { if (node->isAggregate()) { auto *aggregate = static_cast<Aggregate *>(node); 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 64f024756..949949ee9 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml +++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml @@ -26,10 +26,6 @@ <para>Use <link raw="someFunction()" href="testqdoc-test.html#someFunction" type="function">someFunction()</link> instead.</para> </description> </function> - <function name="func" fullname="TestQDoc::Test::func" href="testqdoc-test.html#func" status="internal" access="private" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void func(bool)"> - <parameter type="bool" name="" default=""/> - <description/> - </function> <function name="funcPtr" fullname="TestQDoc::Test::funcPtr" href="testqdoc-test.html#funcPtr" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void (*)(bool)" signature="void (*)(bool) funcPtr(bool b, const char *s)"> <parameter type="bool" name="b" default=""/> <parameter type="const char *" name="s" default=""/> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index index feb482503..ea9022fa3 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index @@ -20,9 +20,6 @@ <function name="Test" fullname="TestQDoc::Test::Test" href="testqdoc-test.html#Test" status="active" access="public" documented="true" meta="constructor" virtual="non" const="false" static="false" final="false" override="false" type="" signature="Test()"/> <function name="anotherObsoleteMember" fullname="TestQDoc::Test::anotherObsoleteMember" href="testqdoc-test-obsolete.html#anotherObsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void anotherObsoleteMember()"/> <function name="deprecatedMember" fullname="TestQDoc::Test::deprecatedMember" href="testqdoc-test-obsolete.html#deprecatedMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void deprecatedMember()"/> - <function name="func" fullname="TestQDoc::Test::func" href="testqdoc-test.html#func" status="internal" access="private" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void func(bool)"> - <parameter type="bool" name="" default=""/> - </function> <function name="funcPtr" fullname="TestQDoc::Test::funcPtr" href="testqdoc-test.html#funcPtr" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void (*)(bool)" signature="void (*)(bool) funcPtr(bool b, const char *s)"> <parameter type="bool" name="b" default=""/> <parameter type="const char *" name="s" default=""/> @@ -58,21 +55,6 @@ <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="metaObject" fullname="TestQDoc::TestDerived::metaObject" href="testqdoc-testderived.html#metaObject" status="internal" access="private" location="testcpp.h" meta="plain" virtual="virtual" const="true" static="false" final="false" override="false" type="const QMetaObject *" signature="const QMetaObject * metaObject() const"/> - <function name="qt_metacall" fullname="TestQDoc::TestDerived::qt_metacall" href="testqdoc-testderived.html#qt_metacall" status="internal" access="private" location="testcpp.h" meta="plain" virtual="virtual" const="false" static="false" final="false" override="false" type="int" signature="int qt_metacall(QMetaObject::Call, int, void **)"> - <parameter type="QMetaObject::Call" name="" default=""/> - <parameter type="int" name="" default=""/> - <parameter type="void **" name="" default=""/> - </function> - <function name="qt_metacast" fullname="TestQDoc::TestDerived::qt_metacast" href="testqdoc-testderived.html#qt_metacast" status="internal" access="private" location="testcpp.h" meta="plain" virtual="virtual" const="false" static="false" final="false" override="false" type="void *" signature="void * qt_metacast(const char *)"> - <parameter type="const char *" name="" default=""/> - </function> - <function name="qt_static_metacall" fullname="TestQDoc::TestDerived::qt_static_metacall" href="testqdoc-testderived.html#qt_static_metacall" status="internal" access="private" location="testcpp.h" meta="plain" virtual="non" const="false" static="true" final="false" override="false" type="void" signature="void qt_static_metacall(QObject *, QMetaObject::Call, int, void **)"> - <parameter type="QObject *" name="" default=""/> - <parameter type="QMetaObject::Call" name="" default=""/> - <parameter type="int" name="" default=""/> - <parameter type="void **" name="" default=""/> - </function> <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()"/> <function name="setBindableProp" fullname="TestQDoc::TestDerived::setBindableProp" href="testqdoc-testderived.html#bindableProp-prop" status="active" access="public" location="testcpp.h" meta="slot" virtual="non" const="false" static="false" final="false" override="false" associated-property="bindableProp" type="void" signature="void setBindableProp(const QString &s)"> <parameter type="const QString &" name="s" default=""/> @@ -80,11 +62,9 @@ <function name="setBoolProp" fullname="TestQDoc::TestDerived::setBoolProp" 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 setBoolProp(bool b)"> <parameter type="bool" name="b" default=""/> </function> - <function name="someBindableProp" fullname="TestQDoc::TestDerived::someBindableProp" href="testqdoc-testderived.html#someBindableProp" status="internal" access="private" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="QBindable<QString>" signature="QBindable<QString> someBindableProp()"/> <function name="someProp" fullname="TestQDoc::TestDerived::someProp" href="testqdoc-testderived.html#someProp-prop" status="active" access="public" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" associated-property="someProp" type="const QString &" signature="const QString & someProp()"/> <function name="staticObsoleteMember" fullname="TestQDoc::TestDerived::staticObsoleteMember" href="testqdoc-testderived-obsolete.html#staticObsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="true" final="false" override="false" type="void" signature="void staticObsoleteMember()"/> <function name="virtualFun" fullname="TestQDoc::TestDerived::virtualFun" href="testqdoc-testderived.html#virtualFun" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="virtual" const="false" static="false" final="false" override="true" type="void" signature="void virtualFun() override"/> - <struct name="QPrivateSignal" fullname="TestQDoc::TestDerived::QPrivateSignal" href="testqdoc-testderived-qprivatesignal.html" status="internal" access="private" location="testcpp.h"/> <typedef name="DerivedType" fullname="TestQDoc::TestDerived::DerivedType" href="testqdoc-testderived.html#DerivedType-typedef" status="active" access="public" location="testcpp.h" documented="true" aliasedtype="Test::SomeType"/> <typedef name="NotTypedef" fullname="TestQDoc::TestDerived::NotTypedef" href="testqdoc-testderived.html#NotTypedef-typedef" status="active" access="public" location="testcpp.h" documented="true" aliasedtype="int"/> <property name="bindableProp" fullname="TestQDoc::TestDerived::bindableProp" href="testqdoc-testderived.html#bindableProp-prop" status="active" access="public" location="testcpp.h" documented="true" bindable="true"> @@ -104,7 +84,6 @@ <property name="someProp" fullname="TestQDoc::TestDerived::someProp" href="testqdoc-testderived.html#someProp-prop" status="active" access="public" location="testcpp.h" documented="true" bindable="true"> <getter name="someProp"/> </property> - <variable name="staticMetaObject" fullname="TestQDoc::TestDerived::staticMetaObject" href="testqdoc-testderived.html#staticMetaObject-var" status="internal" access="private" location="testcpp.h" type="const QMetaObject" static="true"/> </class> </namespace> <group name="testgroup" href="testgroup.html" status="internal" seen="false" title="" members="Test,QDOCTEST_MACRO2,someFunctionDefaultArg"/> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index index 38fb04a73..d0b2309b4 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index @@ -19,9 +19,6 @@ <function name="Test" fullname="TestQDoc::Test::Test" href="testqdoc-test.html#Test" status="active" access="public" documented="true" meta="constructor" virtual="non" const="false" static="false" final="false" override="false" type="" signature="Test()"/> <function name="anotherObsoleteMember" fullname="TestQDoc::Test::anotherObsoleteMember" href="testqdoc-test-obsolete.html#anotherObsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void anotherObsoleteMember()"/> <function name="deprecatedMember" fullname="TestQDoc::Test::deprecatedMember" href="testqdoc-test-obsolete.html#deprecatedMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void deprecatedMember()"/> - <function name="func" fullname="TestQDoc::Test::func" href="testqdoc-test.html#func" status="internal" access="private" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void func(bool)"> - <parameter type="bool" name="" default=""/> - </function> <function name="funcPtr" fullname="TestQDoc::Test::funcPtr" href="testqdoc-test.html#funcPtr" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void (*)(bool)" signature="void (*)(bool) funcPtr(bool b, const char *s)"> <parameter type="bool" name="b" default=""/> <parameter type="const char *" name="s" default=""/> |