summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/TestModule.h3
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/aaa.h4
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/bbb.h5
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/ccc.h4
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp54
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/src/qdoc/index.qdoc7
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/testmodule.qdocconf13
-rw-r--r--tests/auto/qdoc/generatedoutput/bug80259/webxml_testmodule.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/first.html32
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml15
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/index.webxml10
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-linking.webxml18
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput.webxml82
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/second.webxml10
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/test-componentset-example.webxml38
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/testcpp-module.webxml4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml54
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml13
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc.webxml75
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/third.webxml10
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/uicomponents-qmlmodule.webxml4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/index.html23
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html24
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-int.html24
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html67
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html67
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html87
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html28
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html141
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html98
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html69
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html85
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/second.html32
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/third.html32
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html5
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/DocTest.qml84
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/componentset/ProgressBar.qml (renamed from tests/auto/qdoc/generatedoutput/componentset/ProgressBar.qml)0
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/componentset/Switch.qml (renamed from tests/auto/qdoc/generatedoutput/componentset/Switch.qml)0
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/componentset/TabWidget.qml (renamed from tests/auto/qdoc/generatedoutput/componentset/TabWidget.qml)0
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/componentset/componentset.pro (renamed from tests/auto/qdoc/generatedoutput/componentset/componentset.pro)0
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/componentset/examples.qdoc (renamed from tests/auto/qdoc/generatedoutput/examples.qdoc)0
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/componentset/uicomponents.qdoc.sample (renamed from tests/auto/qdoc/generatedoutput/componentset/uicomponents.qdoc.sample)0
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/parent.qdoc59
-rw-r--r--tests/auto/qdoc/generatedoutput/qml/type.cpp87
-rw-r--r--tests/auto/qdoc/generatedoutput/testqml.qdocconf13
-rw-r--r--tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp90
-rw-r--r--tests/auto/qdoc/generatedoutput/webxml.qdocconf3
-rw-r--r--tests/auto/qdoc/generatedoutput/webxml_test.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/webxml_testcpp.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/webxml_testqml.qdocconf2
50 files changed, 1572 insertions, 9 deletions
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/TestModule.h b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/TestModule.h
new file mode 100644
index 000000000..686cbe948
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/TestModule.h
@@ -0,0 +1,3 @@
+#include "testmodule/aaa.h"
+#include "testmodule/bbb.h"
+#include "testmodule/ccc.h"
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/aaa.h b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/aaa.h
new file mode 100644
index 000000000..dea5c1841
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/aaa.h
@@ -0,0 +1,4 @@
+#pragma once
+class Third
+{
+};
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/bbb.h b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/bbb.h
new file mode 100644
index 000000000..0dc6e52c6
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/bbb.h
@@ -0,0 +1,5 @@
+#pragma once
+class First
+{
+ class Nested {};
+};
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/ccc.h b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/ccc.h
new file mode 100644
index 000000000..d3a1557e1
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/ccc.h
@@ -0,0 +1,4 @@
+#pragma once
+class Second
+{
+};
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp b/tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp
new file mode 100644
index 000000000..a8991e18f
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 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$
+**
+****************************************************************************/
+/*!
+\class First
+\inmodule TestModule
+
+This is a first class
+*/
+
+/*!
+\class First::Nested
+\inmodule TestModule
+
+This is a nested class
+*/
+
+/*!
+\class Second
+\inmodule TestModule
+
+This is a second class
+*/
+
+/*!
+\class Third
+\inmodule TestModule
+
+This is a third class
+*/
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/src/qdoc/index.qdoc b/tests/auto/qdoc/generatedoutput/bug80259/src/qdoc/index.qdoc
new file mode 100644
index 000000000..35ef7e087
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/src/qdoc/index.qdoc
@@ -0,0 +1,7 @@
+/*!
+ \page index.html
+ \title doc index
+
+ \generatelist {classesbymodule TestModule}
+
+*/
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/testmodule.qdocconf b/tests/auto/qdoc/generatedoutput/bug80259/testmodule.qdocconf
new file mode 100644
index 000000000..c02fb6fcf
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/testmodule.qdocconf
@@ -0,0 +1,13 @@
+project = TestModule
+
+moduleheader = TestModule.h
+
+headerdirs = inc
+sourcedirs = src
+includepaths += ./bug80259/inc/testmodule
+
+sources.fileextensions = "*.cpp *.qdoc"
+headers.fileextensions = "*.h"
+
+outputdir = doc
+outputformats = HTML
diff --git a/tests/auto/qdoc/generatedoutput/bug80259/webxml_testmodule.qdocconf b/tests/auto/qdoc/generatedoutput/bug80259/webxml_testmodule.qdocconf
new file mode 100644
index 000000000..642fe5c2d
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/bug80259/webxml_testmodule.qdocconf
@@ -0,0 +1,2 @@
+include(testmodule.qdocconf)
+include(../webxml.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/first.html b/tests/auto/qdoc/generatedoutput/expected_output/first.html
new file mode 100644
index 000000000..0a7f52a13
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/first.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- main.cpp -->
+ <title>First Class | TestModule</title>
+</head>
+<body>
+<li>First</li>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+</ul>
+</div>
+<div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">First Class</h1>
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;First&gt;</span>
+</td></tr></table></div><ul>
+</ul>
+<a name="details"></a>
+<!-- $$$First-description -->
+<div class="descr">
+<h2 id="details">Detailed Description</h2>
+<p>This is a first class</p>
+</div>
+<!-- @@@First -->
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml
new file mode 100644
index 000000000..1001d0c53
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <class name="First" href="first.html" status="active" access="public" location="bbb.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/bbb.h" lineno="2" documented="true" module="TestModule">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp" line="28" column="4">
+ <para>This is a first class</para>
+ </description>
+ <class name="Nested" fullname="First::Nested" href="first-nested.html" status="active" access="private" location="bbb.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/bbb.h" lineno="4" documented="true" module="TestModule">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp" line="35" column="4">
+ <para>This is a nested class</para>
+ </description>
+ </class>
+ </class>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/index.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/index.webxml
new file mode 100644
index 000000000..4e51df8d0
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/index.webxml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <page name="index.html" href="index.html" status="active" location="index.qdoc" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/src/qdoc/index.qdoc" lineno="1" documented="true" subtype="page" title="doc index" fulltitle="doc index" subtitle="" module="TestModule">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/src/qdoc/index.qdoc" line="1" column="5">
+ <generatedlist contents="classesbymodule TestModule"/>
+ </description>
+ </page>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-linking.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-linking.webxml
new file mode 100644
index 000000000..9e203d926
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-linking.webxml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <page name="qdoctests-qdocfileoutput-linking.html" href="qdoctests-qdocfileoutput-linking.html" status="active" location="qdoctests-outputfromqdocfiles.qdoc" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/qdoctests-outputfromqdocfiles.qdoc" lineno="71" documented="true" subtype="page" title="Testing QDoc's link command" fulltitle="Testing QDoc's link command" subtitle="" module="Test" brief="This is a page for testing QDoc's link command">
+ <target name="link-test-target"/>
+ <keyword name="qdoc-linking-test" title="QDoc Linking Test"/>
+ <contents name="link-targets" title="Link targets" level="1"/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/qdoctests-outputfromqdocfiles.qdoc" line="71" column="4">
+ <brief>This is a page for testing QDoc's link command.</brief>
+ <target name="link-test-target"/>
+ <section id="link-targets">
+ <heading level="1">Link targets</heading>
+ <para>Valid parameters for the link command (<teletype type="highlighted">\l</teletype>) are page and section titles, targets defined with \target or \keyword commands, and API reference keywords (types, methods, namespaces, and so on).</para>
+ </section>
+ </description>
+ </page>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput.webxml
new file mode 100644
index 000000000..c09bbe31c
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput.webxml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <page name="qdoctests-qdocfileoutput.html" href="qdoctests-qdocfileoutput.html" status="active" location="qdoctests-outputfromqdocfiles.qdoc" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/qdoctests-outputfromqdocfiles.qdoc" lineno="28" documented="true" subtype="page" title="Testing QDoc output from .qdoc files" fulltitle="Testing QDoc output from .qdoc files" subtitle="" module="Test" brief="This is a simple page for testing purposes only">
+ <contents name="supported-file-types" title="Supported file types" level="1"/>
+ <contents name="further-information" title="Further information" level="1"/>
+ <contents name="linking" title="Linking" level="1"/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/qdoctests-outputfromqdocfiles.qdoc" line="28" column="4">
+ <brief>This is a simple page for testing purposes only.</brief>
+ <para>QDoc generates documentation for software projects. It does this by extracting <italic>QDoc comments</italic> from project source files. QDoc comments are signified by a C-style-like comment tag followed by an exclamation point, like this: <teletype type="highlighted">/*!</teletype> <teletype type="highlighted">This text is contained within QDoc comment tags.</teletype> <teletype type="highlighted">*/</teletype>.</para>
+ <section id="supported-file-types">
+ <heading level="1">Supported file types</heading>
+ <para>QDoc parses <teletype type="highlighted">.cpp</teletype> and <teletype type="highlighted">.qdoc</teletype> files. It does extract comments from header (<teletype type="highlighted">.h</teletype>) files.</para>
+ </section>
+ <section id="further-information">
+ <heading level="1">Further information</heading>
+ <para>This test document is written with the purpose of testing the output QDoc generates when parsing <teletype type="highlighted">.qdoc</teletype> files. It is fairly simple and makes use of a limited subset of QDoc's command. Those commands are:</para>
+ <list type="bullet">
+ <item>
+ <para>
+ <teletype type="highlighted">\page</teletype></para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\title</teletype></para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\brief</teletype></para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\e</teletype> (for emphasizing &quot;QDoc comments&quot;)</para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\c</teletype> (for multiple monospace-formatted entries)</para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\section1</teletype></para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\list</teletype></para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\li</teletype></para>
+ </item>
+ <item>
+ <para>
+ <teletype type="highlighted">\endlist</teletype></para>
+ </item>
+ </list>
+ </section>
+ <section id="linking">
+ <heading level="1">Linking</heading>
+ <para>There are multiple ways to create hyperlinks to other topics:</para>
+ <list type="bullet">
+ <item>
+ <para>
+ <link raw="Testing QDoc's link command" href="qdoctests-qdocfileoutput-linking.html" type="page" page="Testing QDoc's link command">Linking to a page title</link></para>
+ </item>
+ <item>
+ <para>
+ <link raw="Link targets" href="qdoctests-qdocfileoutput-linking.html#link-targets" type="page" page="Testing QDoc's link command">Linking to a section title</link></para>
+ </item>
+ <item>
+ <para>
+ <link raw="link-test-target" href="qdoctests-qdocfileoutput-linking.html#link-test-target" type="page" page="Testing QDoc's link command">Linking using a \target string</link></para>
+ </item>
+ <item>
+ <para>
+ <link raw="QDoc Linking Test" href="qdoctests-qdocfileoutput-linking.html" type="page" page="Testing QDoc's link command">Linking using a \keyword string</link></para>
+ </item>
+ </list>
+ </section>
+ </description>
+ </page>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/second.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/second.webxml
new file mode 100644
index 000000000..0a4939841
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/second.webxml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <class name="Second" href="second.html" status="active" access="public" location="ccc.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/ccc.h" lineno="2" documented="true" module="TestModule">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp" line="42" column="4">
+ <para>This is a second class</para>
+ </description>
+ </class>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/test-componentset-example.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/test-componentset-example.webxml
new file mode 100644
index 000000000..8689d2e76
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/test-componentset-example.webxml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <page name="componentset" href="test-componentset-example.html" status="active" location="examples.qdoc" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/examples.qdoc" lineno="28" documented="true" subtype="example" title="QML Documentation Example" fulltitle="QML Documentation Example" subtitle="" module="Test">
+ <contents name="qml-class" title="QML Class" level="1"/>
+ <contents name="properties-signals-handlers-and-methods" title="Properties, Signals, Handlers, and Methods" level="1"/>
+ <contents name="internal-documentation" title="Internal Documentation" level="2"/>
+ <contents name="qml-types-with-c-implementation" title="QML Types with C++ Implementation" level="1"/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/examples.qdoc" line="28" column="4">
+ <para>This example demonstrates one of the ways to document QML types.</para>
+ <para>In particular, there are sample types that are documented with QDoc commands comments. There are documentation comments for the QML types and their public interfaces. The types are grouped into a module, the <link raw="UI Components" href="uicomponents-qmlmodule.html" type="">UI Components</link> module.</para>
+ <para>The uicomponents.qdoc file generates the overview page for the <link raw="UI Components" href="uicomponents-qmlmodule.html" type="">UI Components</link> module page.</para>
+ <para>The generated documentation is available in the <link raw="UI Components" href="uicomponents-qmlmodule.html" type="">UI Components</link> module.</para>
+ <section id="qml-class">
+ <heading level="1">QML Class</heading>
+ <para>The QML types use the \qmltype to document the type. In addition, they have the \inmodule command in order for QDoc to associate them to the <teletype type="highlighted">UIComponents</teletype> module.</para>
+ <para>QDoc uses the \brief command to place a basic description when listing the types.</para>
+ </section>
+ <section id="properties-signals-handlers-and-methods">
+ <heading level="1">Properties, Signals, Handlers, and Methods</heading>
+ <para>The types have their properties, signals, handlers, and methods defined in their respective QML files. QDoc associates the properties and methods to the types, therefore, you only need to place the documentation above the property, method, or signal.</para>
+ <para>To document the type of a <italic>property alias</italic>, you must use the \qmlproperty command to specify the data type.</para>
+ <code>\qmlproperty int anAliasedProperty
+An aliased property of type int.</code>
+ </section>
+ <section id="internal-documentation">
+ <heading level="2">Internal Documentation</heading>
+ <para>You may declare that a documentation is for internal use by placing the \internal command after the beginning QDoc comment <teletype type="highlighted">/*</teletype>. QDoc will prevent the internal documentation from appearing in the public API.</para>
+ <para>If you wish to omit certain parts of the documentation, you may use the \omit and \endomit command.</para>
+ </section>
+ <section id="qml-types-with-c-implementation">
+ <heading level="1">QML Types with C++ Implementation</heading>
+ <para>This example only demonstrates the documentation for types in QML files, but the regular QML commands may be placed inside C++ classes to define the public API of the QML type.</para>
+ </section>
+ </description>
+ </page>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testcpp-module.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testcpp-module.webxml
new file mode 100644
index 000000000..5d24b3077
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testcpp-module.webxml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document/>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
new file mode 100644
index 000000000..028921a6e
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <class name="Test" fullname="TestQDoc::Test" href="testqdoc-test.html" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="34" documented="true" module="TestCPP" brief="A class in a namespace">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="49" column="4">
+ <brief>A class in a namespace.</brief>
+ </description>
+ <function name="QDOCTEST_MACRO2" href="testqdoc-test.html#QDOCTEST_MACRO2" status="active" access="public" documented="true" related="true" since="Test 1.1" meta="macrowithparams" virtual="non" const="false" static="false" final="false" override="false" type="" brief="A macro with argument x" signature="QDOCTEST_MACRO2( x)">
+ <parameter type="" name="x" default=""/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="66" column="4">
+ <brief>A macro with argument <argument>x</argument>.</brief>
+ </description>
+ </function>
+ <function name="anotherObsoleteMember" fullname="TestQDoc::Test::anotherObsoleteMember" href="testqdoc-test-obsolete.html#anotherObsoleteMember" status="obsolete" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="39" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void anotherObsoleteMember()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="93" column="4">
+ <para>Use <link raw="obsoleteMember()" href="testqdoc-test-obsolete.html#obsoleteMember" type="function">obsoleteMember()</link> instead.</para>
+ </description>
+ </function>
+ <function name="deprecatedMember" fullname="TestQDoc::Test::deprecatedMember" href="testqdoc-test-obsolete.html#deprecatedMember" status="obsolete" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="40" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void deprecatedMember()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="73" column="4">
+ <para>Use <link raw="someFunction()" href="testqdoc-test.html#someFunction" type="function">someFunction()</link> instead.</para>
+ </description>
+ </function>
+ <function name="inlineFunction" fullname="TestQDoc::Test::inlineFunction" href="testqdoc-test.html#inlineFunction" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="41" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" brief="An inline function, documented using the \fn QDoc command" signature="void inlineFunction()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="120" column="4">
+ <brief>An inline function, documented using the \fn QDoc command.</brief>
+ </description>
+ </function>
+ <function name="obsoleteMember" fullname="TestQDoc::Test::obsoleteMember" href="testqdoc-test-obsolete.html#obsoleteMember" status="obsolete" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="38" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void obsoleteMember()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="83" column="4">
+ <para>Use <link raw="someFunction()" href="testqdoc-test.html#someFunction" type="function">someFunction()</link> instead.</para>
+ </description>
+ </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">
+ <para>Function that takes a parameter <argument>v</argument>. Also returns the value of <argument>v</argument>.</para>
+ </description>
+ </function>
+ <function name="someFunctionDefaultArg" fullname="TestQDoc::Test::someFunctionDefaultArg" href="testqdoc-test.html#someFunctionDefaultArg" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="37" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void someFunctionDefaultArg(int i, bool b)">
+ <parameter type="int" name="i" default=""/>
+ <parameter type="bool" name="b" default="false"/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="103" column="4">
+ <para>Function that takes a parameter <argument>i</argument> and <argument>b</argument>.</para>
+ </description>
+ </function>
+ <function name="virtualFun" fullname="TestQDoc::Test::virtualFun" href="testqdoc-test.html#virtualFun" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="42" documented="true" meta="plain" virtual="virtual" const="false" static="false" final="false" override="false" type="void" signature="void virtualFun()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="126" column="4">
+ <para>Function that must be reimplemented.</para>
+ </description>
+ </function>
+ </class>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml
new file mode 100644
index 000000000..07b6c4caf
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml
@@ -0,0 +1,13 @@
+<?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">
+ <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">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="134" column="4"/>
+ </function>
+ </class>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc.webxml
new file mode 100644
index 000000000..750f544b8
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc.webxml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <namespace name="TestQDoc" href="testqdoc.html" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="32" documented="true" module="TestCPP" brief="A namespace">
+ <contents name="usage" title="Usage" level="1"/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="39" column="4">
+ <brief>A namespace.</brief>
+ <section id="usage">
+ <heading level="1">Usage</heading>
+ <para>This namespace is for testing QDoc output.</para>
+ </section>
+ </description>
+ <function name="QDOCTEST_MACRO" href="testqdoc.html#QDOCTEST_MACRO" status="active" access="public" documented="true" related="true" meta="macrowithoutparams" virtual="non" const="false" static="false" final="false" override="false" type="" signature="QDOCTEST_MACRO">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="61" column="4"/>
+ </function>
+ <class name="Test" fullname="TestQDoc::Test" href="testqdoc-test.html" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="34" documented="true" module="TestCPP" brief="A class in a namespace">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="49" column="4">
+ <brief>A class in a namespace.</brief>
+ </description>
+ <function name="QDOCTEST_MACRO2" href="testqdoc-test.html#QDOCTEST_MACRO2" status="active" access="public" documented="true" related="true" since="Test 1.1" meta="macrowithparams" virtual="non" const="false" static="false" final="false" override="false" type="" brief="A macro with argument x" signature="QDOCTEST_MACRO2( x)">
+ <parameter type="" name="x" default=""/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="66" column="4">
+ <brief>A macro with argument <argument>x</argument>.</brief>
+ </description>
+ </function>
+ <function name="anotherObsoleteMember" fullname="TestQDoc::Test::anotherObsoleteMember" href="testqdoc-test-obsolete.html#anotherObsoleteMember" status="obsolete" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="39" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void anotherObsoleteMember()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="93" column="4">
+ <para>Use <link raw="obsoleteMember()" href="testqdoc-test-obsolete.html#obsoleteMember" type="function">obsoleteMember()</link> instead.</para>
+ </description>
+ </function>
+ <function name="deprecatedMember" fullname="TestQDoc::Test::deprecatedMember" href="testqdoc-test-obsolete.html#deprecatedMember" status="obsolete" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="40" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void deprecatedMember()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="73" column="4">
+ <para>Use <link raw="someFunction()" href="testqdoc-test.html#someFunction" type="function">someFunction()</link> instead.</para>
+ </description>
+ </function>
+ <function name="inlineFunction" fullname="TestQDoc::Test::inlineFunction" href="testqdoc-test.html#inlineFunction" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="41" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" brief="An inline function, documented using the \fn QDoc command" signature="void inlineFunction()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="120" column="4">
+ <brief>An inline function, documented using the \fn QDoc command.</brief>
+ </description>
+ </function>
+ <function name="obsoleteMember" fullname="TestQDoc::Test::obsoleteMember" href="testqdoc-test-obsolete.html#obsoleteMember" status="obsolete" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="38" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void obsoleteMember()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="83" column="4">
+ <para>Use <link raw="someFunction()" href="testqdoc-test.html#someFunction" type="function">someFunction()</link> instead.</para>
+ </description>
+ </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">
+ <para>Function that takes a parameter <argument>v</argument>. Also returns the value of <argument>v</argument>.</para>
+ </description>
+ </function>
+ <function name="someFunctionDefaultArg" fullname="TestQDoc::Test::someFunctionDefaultArg" href="testqdoc-test.html#someFunctionDefaultArg" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="37" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void someFunctionDefaultArg(int i, bool b)">
+ <parameter type="int" name="i" default=""/>
+ <parameter type="bool" name="b" default="false"/>
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="103" column="4">
+ <para>Function that takes a parameter <argument>i</argument> and <argument>b</argument>.</para>
+ </description>
+ </function>
+ <function name="virtualFun" fullname="TestQDoc::Test::virtualFun" href="testqdoc-test.html#virtualFun" status="active" access="public" location="testcpp.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.h" lineno="42" documented="true" meta="plain" virtual="virtual" const="false" static="false" final="false" override="false" type="void" signature="void virtualFun()">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="126" column="4">
+ <para>Function that must be reimplemented.</para>
+ </description>
+ </function>
+ </class>
+ <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">
+ <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">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/testcpp.cpp" line="134" column="4"/>
+ </function>
+ </class>
+ </namespace>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/third.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/third.webxml
new file mode 100644
index 000000000..d826bb421
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/third.webxml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document>
+ <class name="Third" href="third.html" status="active" access="public" location="aaa.h" filepath="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/inc/testmodule/aaa.h" lineno="2" documented="true" module="TestModule">
+ <description path="/home/levon/work/official/qttools/tests/auto/qdoc/generatedoutput/bug80259/src/main.cpp" line="49" column="4">
+ <para>This is a third class</para>
+ </description>
+ </class>
+ </document>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/uicomponents-qmlmodule.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/uicomponents-qmlmodule.webxml
new file mode 100644
index 000000000..5d24b3077
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/uicomponents-qmlmodule.webxml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebXML>
+ <document/>
+</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/index.html b/tests/auto/qdoc/generatedoutput/expected_output/index.html
new file mode 100644
index 000000000..8600e0867
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/index.html
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- index.qdoc -->
+ <title>doc index | TestModule</title>
+</head>
+<body>
+<h1 class="title">doc index</h1>
+<span class="subtitle"></span>
+<!-- $$$index.html-description -->
+<div class="descr"> <a name="details"></a>
+<div class="table"><table class="annotated">
+<tr class="odd topAlign"><td class="tblName"><p><a href="first.html">First</a></p></td></tr>
+<tr class="even topAlign"><td class="tblName"><p><a href="">First::Nested</a></p></td></tr>
+<tr class="odd topAlign"><td class="tblName"><p><a href="second.html">Second</a></p></td></tr>
+<tr class="even topAlign"><td class="tblName"><p><a href="third.html">Third</a></p></td></tr>
+</table></div>
+</div>
+<!-- @@@index.html -->
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html b/tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html
new file mode 100644
index 000000000..0d424fb73
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- type.cpp -->
+ <title>Test</title>
+</head>
+<body>
+<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
+<span class="subtitle"></span>
+<!-- $$$QDoc.Test-description -->
+<div class="descr"> <a name="details"></a>
+</div>
+<!-- @@@QDoc.Test -->
+<div class="table"><table class="annotated">
+<tr class="odd topAlign"><td class="tblName"><p><a href="qml-qdoc-test-abstractparent.html">AbstractParent</a></p></td><td class="tblDescr"><p>Abstract base QML type</p></td></tr>
+<tr class="even topAlign"><td class="tblName"><p><a href="qml-qdoc-test-child.html">Child</a></p></td><td class="tblDescr"><p>A Child inheriting its parent</p></td></tr>
+<tr class="odd topAlign"><td class="tblName"><p><a href="qml-qdoc-test-doctest.html">DocTest</a></p></td><td class="tblDescr"><p>Represents a doc test case</p></td></tr>
+<tr class="even topAlign"><td class="tblName"><p><a href="qml-qdoc-test-type.html">Type</a></p></td><td class="tblDescr"><p>A QML type documented in a .cpp file</p></td></tr>
+<tr class="odd topAlign"><td class="tblName"><p><a href="qml-int.html">int</a></p></td><td class="tblDescr"><p>An integer basic type</p></td></tr>
+</table></div>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-int.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-int.html
new file mode 100644
index 000000000..108bf6a37
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-int.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- parent.qdoc -->
+ <title>int QML Basic Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+</ul>
+</div>
+<div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">int QML Basic Type</h1>
+<span class="subtitle"></span>
+<!-- $$$int-description -->
+<div class="descr"> <a name="details"></a>
+</div>
+<!-- @@@int -->
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html
new file mode 100644
index 000000000..5b9bad572
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- parent.qdoc -->
+ <title>AbstractParent QML Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#methods">Methods</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">AbstractParent QML Type</h1>
+<span class="subtitle"></span>
+<!-- $$$AbstractParent-brief -->
+<p>Abstract base QML type. <a href="#details">More...</a></p>
+<!-- @@@AbstractParent -->
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-child.html">Child</a></p>
+</td></tr></table></div><ul>
+<li><a href="qml-qdoc-test-abstractparent-members.html">List of all members, including inherited members</a></li>
+</ul>
+<a name="properties"></a>
+<h2 id="properties">Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-abstractparent.html#children-prop">children</a></b></b> : list&lt;Child&gt;</li>
+</ul>
+<a name="methods"></a>
+<h2 id="methods">Methods</h2>
+<ul>
+<li class="fn">void <b><b><a href="qml-qdoc-test-abstractparent.html#rear-method">rear</a></b></b>(<i>child</i>)</li>
+</ul>
+<!-- $$$AbstractParent-description -->
+<a name="details"></a>
+<h2 id="details">Detailed Description</h2>
+<!-- @@@AbstractParent -->
+<h2>Property Documentation</h2>
+<!-- $$$children -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="children-prop"></a><span class="qmldefault">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span>&gt;</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Children of the type.</p>
+</div></div><!-- @@@children -->
+<br/>
+<h2>Method Documentation</h2>
+<!-- $$$rear[overload1]$$$rear -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlFuncNode"><p>
+<a name="rear-method"></a><span class="type">void</span> <span class="name">rear</span>(<i>child</i>)</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Do some abstract parenting on <i>child</i>.</p>
+</div></div><!-- @@@rear -->
+<br/>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html
new file mode 100644
index 000000000..c9cb241af
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- parent.qdoc -->
+ <title>Child QML Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#methods">Methods</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">Child QML Type</h1>
+<span class="subtitle"></span>
+<!-- $$$Child-brief -->
+<p>A Child inheriting its parent. <a href="#details">More...</a></p>
+<!-- @@@Child -->
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-abstractparent.html">AbstractParent</a></p>
+</td></tr></table></div><ul>
+<li><a href="qml-qdoc-test-child-members.html">List of all members, including inherited members</a></li>
+</ul>
+<a name="properties"></a>
+<h2 id="properties">Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-child.html#children-prop">children</a></b></b> : list&lt;Child&gt;</li>
+</ul>
+<a name="methods"></a>
+<h2 id="methods">Methods</h2>
+<ul>
+<li class="fn">void <b><b><a href="qml-qdoc-test-child.html#rear-method">rear</a></b></b>(<i>child</i>)</li>
+</ul>
+<!-- $$$Child-description -->
+<a name="details"></a>
+<h2 id="details">Detailed Description</h2>
+<!-- @@@Child -->
+<h2>Property Documentation</h2>
+<!-- $$$children -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="children-prop"></a><span class="qmldefault">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span>&gt;</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Children of the type.</p>
+</div></div><!-- @@@children -->
+<br/>
+<h2>Method Documentation</h2>
+<!-- $$$rear[overload1]$$$rear -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlFuncNode"><p>
+<a name="rear-method"></a><span class="type">void</span> <span class="name">rear</span>(<i>child</i>)</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Do some abstract parenting on <i>child</i>.</p>
+</div></div><!-- @@@rear -->
+<br/>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html
new file mode 100644
index 000000000..8ad2b4d5e
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- DocTest.qml -->
+ <title>DocTest QML Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#methods">Methods</a></li>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+<li class="level2"><a href="#introduction">Introduction</a></li>
+</ul>
+</div>
+<div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">DocTest QML Type</h1>
+<span class="subtitle"></span>
+<!-- $$$DocTest-brief -->
+<p>Represents a doc test case. <a href="#details">More...</a></p>
+<!-- @@@DocTest -->
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Since:</td><td class="memItemRight bottomAlign"> QDoc.Test 0.9</td></tr></table></div><ul>
+<li><a href="qml-qdoc-test-doctest-members.html">List of all members, including inherited members</a></li>
+</ul>
+<a name="properties"></a>
+<h2 id="properties">Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-doctest.html#active-prop">active</a></b></b> : bool</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-doctest.html#name-prop">name</a></b></b> : string</li>
+</ul>
+<a name="methods"></a>
+<h2 id="methods">Methods</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-doctest.html#fail-method">fail</a></b></b>(<i>message</i>)</li>
+</ul>
+<!-- $$$DocTest-description -->
+<a name="details"></a>
+<h2 id="details">Detailed Description</h2>
+<a name="introduction"></a>
+<h2 id="introduction">Introduction</h2>
+<p>A documentation test case, itself documented inline in DocTest.qml.</p>
+<!-- @@@DocTest -->
+<h2>Property Documentation</h2>
+<!-- $$$active -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="active-prop"></a><span class="name">active</span> : <span class="type">bool</span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Whether the test is active.</p>
+<p><b>See also </b><a href="qml-qdoc-test-doctest.html#name-prop">name</a>.</p>
+</div></div><!-- @@@active -->
+<br/>
+<!-- $$$name -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="name-prop"></a><span class="name">name</span> : <span class="type">string</span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Name of the test.</p>
+<pre class="qml"><span class="type"><a href="qml-qdoc-test-doctest.html">DocTest</a></span> {
+ <span class="name">name</span>: <span class="string">&quot;test&quot;</span>
+ <span class="comment">// ...</span>
+}</pre>
+</div></div><!-- @@@name -->
+<br/>
+<h2>Method Documentation</h2>
+<!-- $$$fail[overload1]$$$fail -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlFuncNode"><p>
+<a name="fail-method"></a><span class="name">fail</span>(<i>message</i> = &quot;oops&quot;)</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Fails the current test case, with the optional <i>message</i>.</p>
+<p>This method was introduced in QDoc.Test 1.0.</p>
+</div></div><!-- @@@fail -->
+<br/>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html
new file mode 100644
index 000000000..a227cfc0a
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- type.cpp -->
+ <title>List of All Members for Type | Test</title>
+</head>
+<body>
+<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">List of All Members for Type</h1>
+<p>This is the complete list of members for <a href="qml-qdoc-test-type.html">Type</a>, including inherited members.</p>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group-prop">group</a></b></b><ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group.first-prop">group.first</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group.second-prop">group.second</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group.third-prop">group.third</a></b></b> : int</li>
+</ul>
+</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#id-prop">id</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#name-prop">name</a></b></b> : string</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#type-attached-prop">type</a></b></b> : enumeration [attached]</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#completed-signal">completed</a></b></b>(<i>status</i>)</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#configured-signal">configured</a></b></b>() [attached]</li>
+<li class="fn">Type <b><b><a href="qml-qdoc-test-type.html#copy-method">copy</a></b></b>(<i>a</i>)</li>
+</ul>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html
new file mode 100644
index 000000000..8bd343fa1
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- type.cpp -->
+ <title>Type QML Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#attached-properties">Attached Properties</a></li>
+<li class="level1"><a href="#signals">Signals</a></li>
+<li class="level1"><a href="#attached-signals">Attached Signals</a></li>
+<li class="level1"><a href="#methods">Methods</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">Type QML Type</h1>
+<span class="subtitle"></span>
+<!-- $$$Type-brief -->
+<p>A QML type documented in a .cpp file. <a href="#details">More...</a></p>
+<!-- @@@Type -->
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Instantiates:</td><td class="memItemRight bottomAlign"> <a href="qml-qdoc-test-type.html"><a href="testqdoc-test.html">Test</a></td></tr></table></div><ul>
+<li><a href="qml-qdoc-test-type-members.html">List of all members, including inherited members</a></li>
+</ul>
+<a name="properties"></a>
+<h2 id="properties">Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group-prop">group</a></b></b><ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group.first-prop">group.first</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group.second-prop">group.second</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#group.third-prop">group.third</a></b></b> : int</li>
+</ul>
+</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#id-prop">id</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#name-prop">name</a></b></b> : string</li>
+</ul>
+<a name="attached-properties"></a>
+<h2 id="attached-properties">Attached Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#type-attached-prop">type</a></b></b> : enumeration</li>
+</ul>
+<a name="signals"></a>
+<h2 id="signals">Signals</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#completed-signal">completed</a></b></b>(<i>status</i>)</li>
+</ul>
+<a name="attached-signals"></a>
+<h2 id="attached-signals">Attached Signals</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-qdoc-test-type.html#configured-signal">configured</a></b></b>()</li>
+</ul>
+<a name="methods"></a>
+<h2 id="methods">Methods</h2>
+<ul>
+<li class="fn">Type <b><b><a href="qml-qdoc-test-type.html#copy-method">copy</a></b></b>(<i>a</i>)</li>
+</ul>
+<!-- $$$Type-description -->
+<a name="details"></a>
+<h2 id="details">Detailed Description</h2>
+<!-- @@@Type -->
+<h2>Property Documentation</h2>
+<!-- $$$group -->
+<div class="qmlitem"><div class="qmlproto"><div class="table"><table class="qmlname"><tr valign="top" class="even" id="group-prop"><th class="centerAlign"><p><a name="group-prop"></a><b>group group</b></p></th></tr><tr valign="top" class="odd" id="group.first-prop"><td class="tblQmlPropNode"><p><a name="group.first-prop"></a><span class="name">group.first</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr><tr valign="top" class="odd" id="group.second-prop"><td class="tblQmlPropNode"><p><a name="group.second-prop"></a><span class="name">group.second</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr><tr valign="top" class="odd" id="group.third-prop"><td class="tblQmlPropNode"><p><a name="group.third-prop"></a><span class="name">group.third</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr></table></div></div><div class="qmldoc"><p>A property group.</p>
+</div></div><!-- @@@group -->
+<br/>
+<!-- $$$id -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="id-prop"></a><span class="qmlreadonly">[read-only] </span><span class="name">id</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>A read-only property.</p>
+</div></div><!-- @@@id -->
+<br/>
+<!-- $$$name -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="name-prop"></a><span class="name">name</span> : <span class="type">string</span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Name of the Test.</p>
+</div></div><!-- @@@name -->
+<br/>
+<h2>Attached Property Documentation</h2>
+<!-- $$$type -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="type-attached-prop"></a><span class="name">Type.type</span> : <span class="type">enumeration</span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><div class="table"><table class="valuelist"><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tbldscr">Description</th></tr>
+<tr><td class="topAlign"><code>Type.NoType</code></td><td class="topAlign">Nothing</td></tr>
+<tr><td class="topAlign"><code>Type.SomeType</code></td><td class="topAlign">Something</td></tr>
+</table></div>
+</div></div><!-- @@@type -->
+<br/>
+<h2>Signal Documentation</h2>
+<!-- $$$completed[overload1]$$$completed -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlFuncNode"><p>
+<a name="completed-signal"></a><span class="name">completed</span>(<i>status</i>)</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>This signal is emitted when the operation completed with <i>status</i>.</p>
+</div></div><!-- @@@completed -->
+<br/>
+<h2>Attached Signal Documentation</h2>
+<!-- $$$configured[overload1]$$$configured -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlFuncNode"><p>
+<a name="configured-signal"></a><span class="name">configured</span>()</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>This attached signal is emitted when the type was configured.</p>
+</div></div><!-- @@@configured -->
+<br/>
+<h2>Method Documentation</h2>
+<!-- $$$copy[overload1]$$$copy -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlFuncNode"><p>
+<a name="copy-method"></a><span class="type"><a href="qml-qdoc-test-type.html">Type</a></span> <span class="name">copy</span>(<i>a</i>)</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Returns another Type based on <i>a</i>.</p>
+</div></div><!-- @@@copy -->
+<br/>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html
new file mode 100644
index 000000000..5a25e2ff1
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- ProgressBar.qml -->
+ <title>ProgressBar QML Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</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">ProgressBar QML Type</h1>
+<span class="subtitle"></span>
+<!-- $$$ProgressBar-brief -->
+<p>A component that shows the progress of an event. <a href="#details">More...</a></p>
+<!-- @@@ProgressBar -->
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import UIComponents 1.0</td></tr></table></div><ul>
+<li><a href="qml-uicomponents-progressbar-members.html">List of all members, including inherited members</a></li>
+</ul>
+<a name="properties"></a>
+<h2 id="properties">Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-uicomponents-progressbar.html#color-prop">color</a></b></b> : color</li>
+<li class="fn"><b><b><a href="qml-uicomponents-progressbar.html#maximum-prop">maximum</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-uicomponents-progressbar.html#minimum-prop">minimum</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-uicomponents-progressbar.html#secondColor-prop">secondColor</a></b></b> : color</li>
+<li class="fn"><b><b><a href="qml-uicomponents-progressbar.html#value-prop">value</a></b></b> : int</li>
+</ul>
+<!-- $$$ProgressBar-description -->
+<a name="details"></a>
+<h2 id="details">Detailed Description</h2>
+<p>A ProgressBar shows the linear progress of an event as its <a href="qml-uicomponents-progressbar.html#value-prop">value</a>. The range is specified using the <a href="qml-uicomponents-progressbar.html#minimum-prop">minimum</a> and the <a href="qml-uicomponents-progressbar.html#maximum-prop">maximum</a> values.</p>
+<p>The ProgressBar component is part of the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
+<p>This documentation is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
+<!-- @@@ProgressBar -->
+<h2>Property Documentation</h2>
+<!-- $$$color -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="color-prop"></a><span class="name">color</span> : <span class="type">color</span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>The color of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a>'s gradient. Must bind to a color type.</p>
+<p><b>See also </b><a href="qml-uicomponents-progressbar.html#secondColor-prop">secondColor</a>.</p>
+</div></div><!-- @@@color -->
+<br/>
+<!-- $$$maximum -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="maximum-prop"></a><span class="name">maximum</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>The maximum value of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a> range. The <a href="qml-uicomponents-progressbar.html#value-prop">value</a> must not be more than this value.</p>
+</div></div><!-- @@@maximum -->
+<br/>
+<!-- $$$minimum -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="minimum-prop"></a><span class="name">minimum</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>The minimum value of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a> range. The <a href="qml-uicomponents-progressbar.html#value-prop">value</a> must not be less than this value.</p>
+</div></div><!-- @@@minimum -->
+<br/>
+<!-- $$$secondColor -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="secondColor-prop"></a><span class="name">secondColor</span> : <span class="type">color</span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>The second color of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a>'s gradient. Must bind to a color type.</p>
+<p><b>See also </b><a href="qml-uicomponents-progressbar.html#color-prop">color</a>.</p>
+</div></div><!-- @@@secondColor -->
+<br/>
+<!-- $$$value -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="value-prop"></a><span class="name">value</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>The value of the progress.</p>
+</div></div><!-- @@@value -->
+<br/>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html
new file mode 100644
index 000000000..06d7ab184
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- Switch.qml -->
+ <title>Switch QML Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#methods">Methods</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">Switch QML Type</h1>
+<span class="subtitle"></span>
+<!-- $$$Switch-brief -->
+<p>A component that can be turned on or off. <a href="#details">More...</a></p>
+<!-- @@@Switch -->
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import UIComponents 1.0</td></tr></table></div><ul>
+<li><a href="qml-uicomponents-switch-members.html">List of all members, including inherited members</a></li>
+</ul>
+<a name="properties"></a>
+<h2 id="properties">Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-uicomponents-switch.html#on-prop">on</a></b></b> : bool</li>
+</ul>
+<a name="methods"></a>
+<h2 id="methods">Methods</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-uicomponents-switch.html#toggle-method">toggle</a></b></b>()</li>
+</ul>
+<!-- $$$Switch-description -->
+<a name="details"></a>
+<h2 id="details">Detailed Description</h2>
+<p>A toggle switch has two states: an <code>on</code> and an <code>off</code> state. The <code>off</code> state is when the <a href="qml-uicomponents-switch.html#on-prop">on</a> property is set to <code>false</code>.</p>
+<p>The ToggleSwitch component is part of the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
+<p>This documentation is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
+<!-- @@@Switch -->
+<h2>Property Documentation</h2>
+<!-- $$$on -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="on-prop"></a><span class="name">on</span> : <span class="type">bool</span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>Indicates the state of the switch. If <code>false</code>, then the switch is in the <code>off</code> state.</p>
+</div></div><!-- @@@on -->
+<br/>
+<h2>Method Documentation</h2>
+<!-- $$$toggle[overload1]$$$toggle -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlFuncNode"><p>
+<a name="toggle-method"></a><span class="name">toggle</span>()</p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>A method to toggle the switch. If the switch is <code>on</code>, the toggling it will turn it <code>off</code>. Toggling a switch in the <code>off</code> position will turn it <code>on</code>.</p>
+</div></div><!-- @@@toggle -->
+<br/>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html
new file mode 100644
index 000000000..991737785
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- TabWidget.qml -->
+ <title>TabWidget QML Type | Test</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#properties">Properties</a></li>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+<li class="level2"><a href="#adding-tabs">Adding Tabs</a></li>
+</ul>
+</div>
+<div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">TabWidget QML Type</h1>
+<span class="subtitle"></span>
+<!-- $$$TabWidget-brief -->
+<p>A widget that places its children as tabs. <a href="#details">More...</a></p>
+<!-- @@@TabWidget -->
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import UIComponents 1.0</td></tr></table></div><ul>
+<li><a href="qml-uicomponents-tabwidget-members.html">List of all members, including inherited members</a></li>
+</ul>
+<a name="properties"></a>
+<h2 id="properties">Properties</h2>
+<ul>
+<li class="fn"><b><b><a href="qml-uicomponents-tabwidget.html#current-prop">current</a></b></b> : int</li>
+<li class="fn"><b><b><a href="qml-uicomponents-tabwidget.html#sampleReadOnlyProperty-prop">sampleReadOnlyProperty</a></b></b> : int</li>
+</ul>
+<!-- $$$TabWidget-description -->
+<a name="details"></a>
+<h2 id="details">Detailed Description</h2>
+<p>A TabWidget places its children as tabs in a view. Selecting a tab involves selecting the tab at the top.</p>
+<p>The TabWidget component is part of the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
+<p>This documentation is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
+<a name="adding-tabs"></a>
+<h2 id="adding-tabs">Adding Tabs</h2>
+<p>To add a tab, declare the tab as a child of the TabWidget.</p>
+<pre class="cpp">TabWidget {
+ id: tabwidget
+
+ Rectangle {
+ id: tab1
+ color: <span class="string">&quot;red&quot;</span>
+ <span class="comment">//... omitted</span>
+ }
+ Rectangle {
+ id: tab2
+ color: <span class="string">&quot;blue&quot;</span>
+ <span class="comment">//... omitted</span>
+ }
+
+}</pre>
+<!-- @@@TabWidget -->
+<h2>Property Documentation</h2>
+<!-- $$$current -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="current-prop"></a><span class="name">current</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>The currently active tab in the <a href="qml-uicomponents-tabwidget.html">TabWidget</a>.</p>
+</div></div><!-- @@@current -->
+<br/>
+<!-- $$$sampleReadOnlyProperty -->
+<div class="qmlitem"><div class="qmlproto">
+<div class="table"><table class="qmlname">
+<tr valign="top" class="odd" id="">
+<td class="tblQmlPropNode"><p>
+<a name="sampleReadOnlyProperty-prop"></a><span class="qmlreadonly">[read-only] </span><span class="name">sampleReadOnlyProperty</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+</table></div>
+</div><div class="qmldoc"><p>A sample <code>read-only</code> property. A contrived property to demonstrate QDoc's ability to detect read-only properties.</p>
+<p>The signature is:</p>
+<pre class="cpp">readonly property <span class="type"><a href="qml-int.html">int</a></span> sampleReadOnlyProperty: <span class="number">0</span></pre>
+<p>Note that the property must be initialized to a value.</p>
+</div></div><!-- @@@sampleReadOnlyProperty -->
+<br/>
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/second.html b/tests/auto/qdoc/generatedoutput/expected_output/second.html
new file mode 100644
index 000000000..c3d76d0f8
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/second.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- main.cpp -->
+ <title>Second Class | TestModule</title>
+</head>
+<body>
+<li>Second</li>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+</ul>
+</div>
+<div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">Second Class</h1>
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Second&gt;</span>
+</td></tr></table></div><ul>
+</ul>
+<a name="details"></a>
+<!-- $$$Second-description -->
+<div class="descr">
+<h2 id="details">Detailed Description</h2>
+<p>This is a second class</p>
+</div>
+<!-- @@@Second -->
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/third.html b/tests/auto/qdoc/generatedoutput/expected_output/third.html
new file mode 100644
index 000000000..93dc5a1c1
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/third.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!-- main.cpp -->
+ <title>Third Class | TestModule</title>
+</head>
+<body>
+<li>Third</li>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+</ul>
+</div>
+<div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">Third Class</h1>
+<div class="table"><table class="alignedsummary">
+<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Third&gt;</span>
+</td></tr></table></div><ul>
+</ul>
+<a name="details"></a>
+<!-- $$$Third-description -->
+<div class="descr">
+<h2 id="details">Detailed Description</h2>
+<p>This is a third class</p>
+</div>
+<!-- @@@Third -->
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html b/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html
index 8c577ab7f..5aa475abc 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html
@@ -16,5 +16,10 @@
<p>This module is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
</div>
<!-- @@@UIComponents -->
+<div class="table"><table class="annotated">
+<tr class="odd topAlign"><td class="tblName"><p><a href="qml-uicomponents-progressbar.html">ProgressBar</a></p></td><td class="tblDescr"><p>A component that shows the progress of an event</p></td></tr>
+<tr class="even topAlign"><td class="tblName"><p><a href="qml-uicomponents-switch.html">Switch</a></p></td><td class="tblDescr"><p>A component that can be turned on or off</p></td></tr>
+<tr class="odd topAlign"><td class="tblName"><p><a href="qml-uicomponents-tabwidget.html">TabWidget</a></p></td><td class="tblDescr"><p>A widget that places its children as tabs</p></td></tr>
+</table></div>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/qml/DocTest.qml b/tests/auto/qdoc/generatedoutput/qml/DocTest.qml
new file mode 100644
index 000000000..1ddafcfe4
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/qml/DocTest.qml
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 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$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+/*!
+ \qmltype DocTest
+ \inherits Test
+ \inqmlmodule QDoc.Test
+ \brief Represents a doc test case.
+ \since QDoc.Test 0.9
+
+ \section1 Introduction
+
+ A documentation test case, itself documented inline in DocTest.qml.
+*/
+Item {
+ id: testCase
+
+ /*!
+ \qmlproperty string DocTest::name
+
+ Name of the test.
+ \qml
+ DocTest {
+ name: "test"
+ // ...
+ }
+ \endqml
+ */
+ property string name
+
+ /*!
+ Whether the test is active.
+
+ \sa name
+ */
+ property bool active: true
+
+ /*! \internal */
+ property int doctest_internal: -1
+
+ /*!
+ \qmlmethod DocTest::fail(message = "oops")
+ \since QDoc.Test 1.0
+
+ Fails the current test case, with the optional \a message.
+ */
+ function fail(msg) {
+ if (msg === undefined)
+ msg = "oops";
+ }
+
+ /*! \internal */
+ function doctest_fail(msg) {
+ if (msg === undefined)
+ msg = "";
+ }
+}
diff --git a/tests/auto/qdoc/generatedoutput/componentset/ProgressBar.qml b/tests/auto/qdoc/generatedoutput/qml/componentset/ProgressBar.qml
index 2a40cc488..2a40cc488 100644
--- a/tests/auto/qdoc/generatedoutput/componentset/ProgressBar.qml
+++ b/tests/auto/qdoc/generatedoutput/qml/componentset/ProgressBar.qml
diff --git a/tests/auto/qdoc/generatedoutput/componentset/Switch.qml b/tests/auto/qdoc/generatedoutput/qml/componentset/Switch.qml
index db9616b69..db9616b69 100644
--- a/tests/auto/qdoc/generatedoutput/componentset/Switch.qml
+++ b/tests/auto/qdoc/generatedoutput/qml/componentset/Switch.qml
diff --git a/tests/auto/qdoc/generatedoutput/componentset/TabWidget.qml b/tests/auto/qdoc/generatedoutput/qml/componentset/TabWidget.qml
index 07fd40db9..07fd40db9 100644
--- a/tests/auto/qdoc/generatedoutput/componentset/TabWidget.qml
+++ b/tests/auto/qdoc/generatedoutput/qml/componentset/TabWidget.qml
diff --git a/tests/auto/qdoc/generatedoutput/componentset/componentset.pro b/tests/auto/qdoc/generatedoutput/qml/componentset/componentset.pro
index 5b44737c2..5b44737c2 100644
--- a/tests/auto/qdoc/generatedoutput/componentset/componentset.pro
+++ b/tests/auto/qdoc/generatedoutput/qml/componentset/componentset.pro
diff --git a/tests/auto/qdoc/generatedoutput/examples.qdoc b/tests/auto/qdoc/generatedoutput/qml/componentset/examples.qdoc
index 7c780eca8..7c780eca8 100644
--- a/tests/auto/qdoc/generatedoutput/examples.qdoc
+++ b/tests/auto/qdoc/generatedoutput/qml/componentset/examples.qdoc
diff --git a/tests/auto/qdoc/generatedoutput/componentset/uicomponents.qdoc.sample b/tests/auto/qdoc/generatedoutput/qml/componentset/uicomponents.qdoc.sample
index 0c6d187ed..0c6d187ed 100644
--- a/tests/auto/qdoc/generatedoutput/componentset/uicomponents.qdoc.sample
+++ b/tests/auto/qdoc/generatedoutput/qml/componentset/uicomponents.qdoc.sample
diff --git a/tests/auto/qdoc/generatedoutput/qml/parent.qdoc b/tests/auto/qdoc/generatedoutput/qml/parent.qdoc
new file mode 100644
index 000000000..e0bed66c0
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/qml/parent.qdoc
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 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 AbstractParent
+ \inqmlmodule QDoc.Test
+ \qmlabstract
+ \brief Abstract base QML type.
+*/
+
+/*!
+ \qmlproperty list<Child> AbstractParent::children
+ \default
+ \brief Children of the type.
+*/
+
+/*!
+ \qmlmethod void AbstractParent::rear(Child child)
+ \brief Do some abstract parenting on \a child.
+*/
+
+/*!
+ \qmltype Child
+ \inqmlmodule QDoc.Test
+ \inherits AbstractParent
+ \brief A Child inheriting its parent.
+*/
+
+/*!
+ \qmlbasictype int
+ \inqmlmodule QDoc.Test
+
+ \brief An integer basic type.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/qml/type.cpp b/tests/auto/qdoc/generatedoutput/qml/type.cpp
new file mode 100644
index 000000000..db3dd1047
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/qml/type.cpp
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 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$
+**
+****************************************************************************/
+
+#include "testcpp.h"
+
+/*!
+ \qmlmodule QDoc.Test \QDocTestVer
+ \brief QML Types for the Test module.
+*/
+
+/*!
+ \qmltype Type
+ \instantiates TestQDoc::Test
+ \inqmlmodule QDoc.Test
+ \brief A QML type documented in a .cpp file.
+*/
+
+/*!
+ \qmlproperty int Type::id
+ \readonly
+ \brief A read-only property.
+*/
+
+/*!
+ \qmlproperty string QDoc.Test::Type::name
+ \brief Name of the Test.
+*/
+
+/*!
+ \qmlattachedproperty enumeration Type::type
+
+ \value Type.NoType
+ Nothing
+ \value Type.SomeType
+ Something
+*/
+
+/*!
+ \qmlproperty int Type::group.first
+ \qmlproperty int Type::group.second
+ \qmlproperty int Type::group.third
+
+ \brief A property group.
+*/
+
+/*!
+ \qmlmethod Type Type::copy(a)
+
+ Returns another Type based on \a a.
+*/
+
+/*!
+ \qmlsignal Type::completed(int status)
+
+ This signal is emitted when the operation completed with \a status.
+*/
+
+/*!
+ \qmlattachedsignal Type::configured()
+
+ This attached signal is emitted when the type was configured.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testqml.qdocconf b/tests/auto/qdoc/generatedoutput/testqml.qdocconf
index 769c3d627..00d12a463 100644
--- a/tests/auto/qdoc/generatedoutput/testqml.qdocconf
+++ b/tests/auto/qdoc/generatedoutput/testqml.qdocconf
@@ -1,10 +1,15 @@
+include(testcpp.qdocconf)
project = Test
description = "A test project for QDoc build artifacts"
-moduleheader=
outputdir = ./html
-exampledirs = .
-sources.fileextensions = \
- examples.qdoc
+exampledirs = qml
+
+headerdirs += .
+sourcedirs += qml
+
+sources.fileextensions = "*.qml *.cpp *.qdoc"
+headers.fileextensions = "*.h"
macro.begincomment = "\\c{/*}"
+macro.QDocTestVer = "1.1"
diff --git a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
index 09709ac6c..17f930981 100644
--- a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
+++ b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
@@ -40,16 +40,24 @@ private slots:
void htmlFromQDocFile();
void htmlFromCpp();
void htmlFromQml();
+ void htmlFromCppBug80259();
+
+ void webXmlFromQDocFile();
+ void webXmlFromCpp();
+ void webXmlFromQml();
+ void webXmlFromCppBug80259();
private:
QScopedPointer<QTemporaryDir> m_outputDir;
QString m_qdoc;
+ void removeFullPathStrings(QString& str);
void runQDocProcess(const QStringList &arguments);
void compareLineByLine(const QStringList &expectedFiles);
void testAndCompare(const char *input,
const char *outNames,
- const char *extraParams = nullptr);
+ const char *extraParams = nullptr,
+ const char *outputPathPrefix = nullptr);
};
void tst_generatedOutput::initTestCase()
@@ -93,6 +101,13 @@ void tst_generatedOutput::runQDocProcess(const QStringList &arguments)
QFAIL("Running QDoc failed. See output above.");
}
+void tst_generatedOutput::removeFullPathStrings(QString &str)
+{
+ QRegularExpression re("(location|path|filepath)=\"[^\"]+\"");
+ QRegularExpressionMatch match = re.match(str);
+ str.replace(re, match.captured(1) + "=\"REMOVED_BY_TEST\"");
+}
+
void tst_generatedOutput::compareLineByLine(const QStringList &expectedFiles)
{
for (const auto &file : expectedFiles) {
@@ -116,6 +131,8 @@ void tst_generatedOutput::compareLineByLine(const QStringList &expectedFiles)
QString prefix = file + delim + QString::number(lineNumber) + delim;
QString expectedLine = prefix + expectedIn.readLine();
QString actualLine = prefix + actualIn.readLine();
+ removeFullPathStrings(actualLine);
+ removeFullPathStrings(expectedLine);
QCOMPARE(actualLine, expectedLine);
}
}
@@ -123,17 +140,28 @@ void tst_generatedOutput::compareLineByLine(const QStringList &expectedFiles)
void tst_generatedOutput::testAndCompare(const char *input,
const char *outNames,
- const char *extraParams)
+ const char *extraParams,
+ const char *outputPathPrefix)
{
- QStringList args{ "-outputdir", m_outputDir->path(), QFINDTESTDATA(input) };
+ QStringList args{ "-outputdir", m_outputDir->path() + "/" + outputPathPrefix,
+ QFINDTESTDATA(input) };
if (extraParams)
args << QString(QLatin1String(extraParams)).split(QChar(' '));
+
runQDocProcess(args);
+
if (QTest::currentTestFailed())
return;
- compareLineByLine(QString(QLatin1String(outNames)).split(QChar(' ')));
+
+ QStringList expectedOuts(QString(QLatin1String(outNames)).split(QChar(' ')));
+ if (outputPathPrefix)
+ for (auto &expectedOut : expectedOuts)
+ expectedOut = QString(outputPathPrefix) + "/" + expectedOut;
+
+ compareLineByLine(expectedOuts);
}
+
void tst_generatedOutput::htmlFromQDocFile()
{
testAndCompare("test.qdocconf",
@@ -141,6 +169,13 @@ void tst_generatedOutput::htmlFromQDocFile()
"qdoctests-qdocfileoutput-linking.html");
}
+void tst_generatedOutput::webXmlFromQDocFile()
+{
+ testAndCompare("webxml_test.qdocconf",
+ "html/qdoctests-qdocfileoutput.webxml "
+ "html/qdoctests-qdocfileoutput-linking.webxml");
+}
+
void tst_generatedOutput::htmlFromCpp()
{
testAndCompare("testcpp.qdocconf",
@@ -150,11 +185,56 @@ void tst_generatedOutput::htmlFromCpp()
"testqdoc.html");
}
+
+void tst_generatedOutput::webXmlFromCpp()
+{
+ testAndCompare("webxml_testcpp.qdocconf",
+ "html/testcpp-module.webxml "
+ "html/testqdoc-test.webxml "
+ "html/testqdoc-testderived.webxml");
+}
+
+
void tst_generatedOutput::htmlFromQml()
{
testAndCompare("testqml.qdocconf",
"test-componentset-example.html "
- "uicomponents-qmlmodule.html");
+ "uicomponents-qmlmodule.html "
+ "qdoc-test-qmlmodule.html "
+ "qml-qdoc-test-abstractparent.html "
+ "qml-qdoc-test-child.html "
+ "qml-qdoc-test-doctest.html "
+ "qml-qdoc-test-type-members.html "
+ "qml-qdoc-test-type.html "
+ "qml-uicomponents-progressbar.html "
+ "qml-uicomponents-switch.html "
+ "qml-uicomponents-tabwidget.html "
+ "qml-int.html");
+}
+
+void tst_generatedOutput::webXmlFromQml()
+{
+ testAndCompare("webxml_testqml.qdocconf",
+ "html/test-componentset-example.webxml "
+ "html/uicomponents-qmlmodule.webxml");
+}
+
+void tst_generatedOutput::htmlFromCppBug80259()
+{
+ testAndCompare("bug80259/testmodule.qdocconf",
+ "first.html "
+ "second.html "
+ "third.html "
+ "index.html");
+}
+
+void tst_generatedOutput::webXmlFromCppBug80259()
+{
+ testAndCompare("bug80259/webxml_testmodule.qdocconf",
+ "html/first.webxml "
+ "html/second.webxml "
+ "html/third.webxml "
+ "html/index.webxml");
}
QTEST_APPLESS_MAIN(tst_generatedOutput)
diff --git a/tests/auto/qdoc/generatedoutput/webxml.qdocconf b/tests/auto/qdoc/generatedoutput/webxml.qdocconf
new file mode 100644
index 000000000..d6e6290b8
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/webxml.qdocconf
@@ -0,0 +1,3 @@
+outputformats = WebXML
+WebXML.quotinginformation = true
+WebXML.nosubdirs = true
diff --git a/tests/auto/qdoc/generatedoutput/webxml_test.qdocconf b/tests/auto/qdoc/generatedoutput/webxml_test.qdocconf
new file mode 100644
index 000000000..bac4f3b4e
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/webxml_test.qdocconf
@@ -0,0 +1,2 @@
+include(test.qdocconf)
+include(webxml.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/webxml_testcpp.qdocconf b/tests/auto/qdoc/generatedoutput/webxml_testcpp.qdocconf
new file mode 100644
index 000000000..e242cef27
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/webxml_testcpp.qdocconf
@@ -0,0 +1,2 @@
+include(testcpp.qdocconf)
+include(webxml.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/webxml_testqml.qdocconf b/tests/auto/qdoc/generatedoutput/webxml_testqml.qdocconf
new file mode 100644
index 000000000..537685700
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/webxml_testqml.qdocconf
@@ -0,0 +1,2 @@
+include(testqml.qdocconf)
+include(webxml.qdocconf)