diff options
author | Topi Reinio <topi.reinio@qt.io> | 2020-01-22 11:05:50 +0100 |
---|---|---|
committer | Topi Reinio <topi.reinio@qt.io> | 2020-01-24 11:33:01 +0100 |
commit | b693122a4e08e5745d1b288ef7e1525b085c1ebd (patch) | |
tree | 88fc2238fa472809a91988d72480150ef654a066 /tests | |
parent | 447f33743c3e07d645831f07b821ad76a203fd6f (diff) |
qdoc: Fix regression in QML types inheriting property groups
Property groups from base types were not listed on 'All Members'
pages of a QML type. This was because we skipped all shared
comment nodes for base types; property group is a special type
of SCN.
Remove duplication in the code that distributes the nodes; this
ensures that there is no difference in output between members of
a type and members inherited from its base types. Use logging
category to display debug warnings instead of qDebug().
Add a test to cover this.
Fixes: QTBUG-81262
Change-Id: I46c3e6afa87c510a7929088acbd1fb354f6733af
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'tests')
4 files changed, 91 insertions, 0 deletions
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html b/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html new file mode 100644 index 000000000..557061cc0 --- /dev/null +++ b/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> +<!-- parent.qdoc --> + <title>List of All Members for AnotherChild | Test</title> +</head> +<body> +<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div> +<h1 class="title">List of All Members for AnotherChild</h1> +<p>This is the complete list of members for <a href="qml-qdoc-test-anotherchild.html">AnotherChild</a>, including inherited members.</p> +<ul> +<li class="fn"><b><b><a href="qml-qdoc-test-anotherchild.html#name-prop">name</a></b></b> : string</li> +</ul> +<p>The following members are inherited from <a href="qml-qdoc-test-parent.html">Parent</a>.</p> +<ul> +<li class="fn"><b><b><a href="qml-qdoc-test-parent.html#group-prop">group</a></b></b><ul> +<li class="fn"><b><b><a href="qml-qdoc-test-parent.html#group.c-prop">group.c</a></b></b> : int</li> +<li class="fn"><b><b><a href="qml-qdoc-test-parent.html#group.a-prop">group.a</a></b></b> : int</li> +<li class="fn"><b><b><a href="qml-qdoc-test-parent.html#group.b-prop">group.b</a></b></b> : int</li> +</ul> +</li> +</ul> +</body> +</html> diff --git a/tests/auto/qdoc/generatedoutput/qmlpropertygroups/parent.qdoc b/tests/auto/qdoc/generatedoutput/qmlpropertygroups/parent.qdoc new file mode 100644 index 000000000..c7002e96b --- /dev/null +++ b/tests/auto/qdoc/generatedoutput/qmlpropertygroups/parent.qdoc @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \qmltype Parent + \inqmlmodule QDoc.Test + \brief Base QML type. +*/ + +/*! + \qmlproperty int Parent::group.c + \qmlproperty int Parent::group.a + \qmlproperty int Parent::group.b + \brief Property group. +*/ + +/*! + \qmltype AnotherChild + \inqmlmodule QDoc.Test + \inherits Parent + \brief Just another child inheriting a parent. +*/ + +/*! + \qmlproperty string AnotherChild::name + \brief Name of this child. +*/ diff --git a/tests/auto/qdoc/generatedoutput/qmlpropertygroups/qmlpropertygroups.qdocconf b/tests/auto/qdoc/generatedoutput/qmlpropertygroups/qmlpropertygroups.qdocconf new file mode 100644 index 000000000..6ed830c82 --- /dev/null +++ b/tests/auto/qdoc/generatedoutput/qmlpropertygroups/qmlpropertygroups.qdocconf @@ -0,0 +1,7 @@ +include(../testqml.qdocconf) + +includepaths += .. +sourcedirs += . + +HTML.nosubdirs = true +HTML.outputsubdir = qmlpropertygroups diff --git a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp index a56e0fd7d..ce4aefa99 100644 --- a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp +++ b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp @@ -48,6 +48,7 @@ private slots: void webXmlFromCppBug80259(); void examplesManifestXml(); + void inheritedQmlPropertyGroups(); private: QScopedPointer<QTemporaryDir> m_outputDir; @@ -244,6 +245,12 @@ void tst_generatedOutput::examplesManifestXml() "examples-manifest.xml"); } +void tst_generatedOutput::inheritedQmlPropertyGroups() +{ + testAndCompare("qmlpropertygroups/qmlpropertygroups.qdocconf", + "qmlpropertygroups/qml-qdoc-test-anotherchild-members.html"); +} + QTEST_APPLESS_MAIN(tst_generatedOutput) #include "tst_generatedoutput.moc" |