summaryrefslogtreecommitdiffstats
path: root/tests/auto/qdoc/generatedoutput/testdata
diff options
context:
space:
mode:
authorPaul Wicking <paul.wicking@qt.io>2020-02-14 06:46:33 +0100
committerPaul Wicking <paul.wicking@qt.io>2020-02-21 10:49:59 +0100
commitd8a971b8475035f61e1ad3baaef6a8c49556c42d (patch)
treebaa6407243212f9de796e14fcb57bc216a769af8 /tests/auto/qdoc/generatedoutput/testdata
parentd15236d9af91b32a43f3b2321eb776f6c2f2bf9c (diff)
QDoc: Reorganize expected output testv5.15.0-beta1
As the test has grown in size and scope, the lack of structure adds an unnecessary mental overhead when adding new tests, or when attempting to refactor the tests themselves. - Place all testdata in a directory aptly named testdata, following Qt convention. - Create sub-directories for all tests, so that their data is separated from each other. - Update qdocconf-files to match the new structure. - Update expected output data to match changes in qdocconf-files. - Ensure all tests still run; this requires modifications to paths in .qdocconf files mostly, but also in #include directives. Fixes: QTBUG-82159 Change-Id: I43b2333cacc75d1076a8aca86e89ccc52e4ec8a3 Reviewed-by: Levon Sargsyan <levon.sargsyan@qt.io> Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
Diffstat (limited to 'tests/auto/qdoc/generatedoutput/testdata')
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/TestModule.h3
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/aaa.h4
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h5
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/ccc.h4
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/src/main.cpp54
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/src/qdoc/index.qdoc7
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/testmodule.qdocconf13
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/bug80259/webxml_testmodule.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/docbook.qdocconf3
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/docbook_test.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testcpp.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testqml.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/examples-qhp.qdocconf20
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/ignoresince.qdocconf8
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/scopedenum.qdocconf7
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/test.qdocconf8
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/testcpp.qdocconf7
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/testqml.qdocconf22
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/testtemplate.qdocconf8
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/webxml.qdocconf4
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/webxml_test.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testcpp.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testqml.qdocconf2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/crossmodule/CrossModule2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/crossmodule/crossmodule.qdocconf10
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp56
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.h37
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/dontdocument/TestCPP2
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.cpp47
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.h41
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/dontdocument/dontdocument.qdocconf7
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/dontdocument/test.qdoc36
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/anotherindex.qdoc39
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc64
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/includefromexampledirs.qdocconf12
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/includefromparent.qdoc51
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/parent.qdocinc1
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc83
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/DocTest.qml84
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/componentset/ProgressBar.qml145
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/componentset/Switch.qml152
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/componentset/TabWidget.qml193
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/componentset/componentset.pro5
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/componentset/examples.qdoc101
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/componentset/uicomponents.qdoc.sample38
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/parent.qdoc64
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qml/type.cpp101
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/parent.qdoc52
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/qmlpropertygroups.qdocconf7
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/scopedenum/scopedenum.qdoc35
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testcpp/TestCPP5
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp175
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h67
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.cpp47
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.h53
55 files changed, 2003 insertions, 0 deletions
diff --git a/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/TestModule.h b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/TestModule.h
new file mode 100644
index 000000000..686cbe948
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/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/testdata/bug80259/inc/testmodule/aaa.h b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/aaa.h
new file mode 100644
index 000000000..dea5c1841
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/aaa.h
@@ -0,0 +1,4 @@
+#pragma once
+class Third
+{
+};
diff --git a/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h
new file mode 100644
index 000000000..0dc6e52c6
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h
@@ -0,0 +1,5 @@
+#pragma once
+class First
+{
+ class Nested {};
+};
diff --git a/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/ccc.h b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/ccc.h
new file mode 100644
index 000000000..d3a1557e1
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/ccc.h
@@ -0,0 +1,4 @@
+#pragma once
+class Second
+{
+};
diff --git a/tests/auto/qdoc/generatedoutput/testdata/bug80259/src/main.cpp b/tests/auto/qdoc/generatedoutput/testdata/bug80259/src/main.cpp
new file mode 100644
index 000000000..a8991e18f
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/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/testdata/bug80259/src/qdoc/index.qdoc b/tests/auto/qdoc/generatedoutput/testdata/bug80259/src/qdoc/index.qdoc
new file mode 100644
index 000000000..35ef7e087
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/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/testdata/bug80259/testmodule.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/bug80259/testmodule.qdocconf
new file mode 100644
index 000000000..c02fb6fcf
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/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/testdata/bug80259/webxml_testmodule.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/bug80259/webxml_testmodule.qdocconf
new file mode 100644
index 000000000..dc9234fbb
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/bug80259/webxml_testmodule.qdocconf
@@ -0,0 +1,2 @@
+include(testmodule.qdocconf)
+include(../configs/webxml.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/docbook.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook.qdocconf
new file mode 100644
index 000000000..6fe708176
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook.qdocconf
@@ -0,0 +1,3 @@
+outputformats = DocBook
+DocBook.nosubdirs = true
+DocBook.outputsubdir = docbook
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_test.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_test.qdocconf
new file mode 100644
index 000000000..e8095e405
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_test.qdocconf
@@ -0,0 +1,2 @@
+include(test.qdocconf)
+include(docbook.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testcpp.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testcpp.qdocconf
new file mode 100644
index 000000000..0abdf8169
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testcpp.qdocconf
@@ -0,0 +1,2 @@
+include(testcpp.qdocconf)
+include(docbook.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testqml.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testqml.qdocconf
new file mode 100644
index 000000000..0a0a18b07
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testqml.qdocconf
@@ -0,0 +1,2 @@
+include(testqml.qdocconf)
+include(docbook.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/examples-qhp.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/examples-qhp.qdocconf
new file mode 100644
index 000000000..b4598476e
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/examples-qhp.qdocconf
@@ -0,0 +1,20 @@
+# QML test includes a documented example
+include(testqml.qdocconf)
+
+examplesinstallpath = test
+
+# Configure .qhp generation
+qhp.projects = Test
+
+qhp.Test.file = test.qhp
+qhp.Test.namespace = org.qt-project.test.001
+qhp.Test.virtualFolder = test
+qhp.Test.indexTitle = UI Components
+qhp.Test.indexRoot =
+
+# Add some meta-data to the example
+manifestmeta.filters = test
+
+manifestmeta.test.names = *
+manifestmeta.test.attributes = isTest:true
+manifestmeta.test.tags = test
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/ignoresince.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/ignoresince.qdocconf
new file mode 100644
index 000000000..0aa0dbc45
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/ignoresince.qdocconf
@@ -0,0 +1,8 @@
+include(testcpp.qdocconf)
+defines += test_ignoresince
+
+ignoresince = 2.0
+ignoresince.Test = 1.0
+
+HTML.nosubdirs = true
+HTML.outputsubdir = ignoresince
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/scopedenum.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/scopedenum.qdocconf
new file mode 100644
index 000000000..adeaab554
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/scopedenum.qdocconf
@@ -0,0 +1,7 @@
+include(testcpp.qdocconf)
+defines += test_scopedenum
+
+sources += ../scopedenum/scopedenum.qdoc
+
+HTML.nosubdirs = true
+HTML.outputsubdir = scopedenum
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/test.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/test.qdocconf
new file mode 100644
index 000000000..f6473ccf7
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/test.qdocconf
@@ -0,0 +1,8 @@
+project = OutputFromQDocFiles
+description = "A test project for QDoc build artifacts"
+moduleheader =
+
+sources = ../outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc
+
+macro.beginqdoc = "\\c {/*!}"
+macro.endqdoc = "\\c */"
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/testcpp.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/testcpp.qdocconf
new file mode 100644
index 000000000..53f6071f9
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/testcpp.qdocconf
@@ -0,0 +1,7 @@
+project = TestCPP
+includepaths += -I.
+
+headers = ../testcpp/testcpp.h
+sources = ../testcpp/testcpp.cpp
+
+macro.CMDFN = \\\\fn
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/testqml.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/testqml.qdocconf
new file mode 100644
index 000000000..2eb2c5036
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/testqml.qdocconf
@@ -0,0 +1,22 @@
+include(testcpp.qdocconf)
+moduleheader = TestCPP
+
+project = Test
+description = "A test project for QDoc build artifacts"
+outputdir = ./html
+
+exampledirs = ../qml
+
+headerdirs += ../
+sourcedirs += ../qml
+
+# Exclude source files from other tests' subdirs
+excludedirs = ../bug80259
+
+sources.fileextensions = "*.qml *.cpp *.qdoc"
+headers.fileextensions = "*.h"
+
+examples.fileextensions = "*.qml"
+
+macro.begincomment = "\\c{/*}"
+macro.QDocTestVer = "1.1"
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/testtemplate.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/testtemplate.qdocconf
new file mode 100644
index 000000000..c53e43177
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/testtemplate.qdocconf
@@ -0,0 +1,8 @@
+include(testcpp.qdocconf)
+defines += test_template
+
+headers += ../testtemplate/testtemplate.h
+sources += ../testtemplate/testtemplate.cpp
+
+HTML.nosubdirs = true
+HTML.outputsubdir = template
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/webxml.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml.qdocconf
new file mode 100644
index 000000000..903c7fcfe
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml.qdocconf
@@ -0,0 +1,4 @@
+locationinfo = false
+outputformats = WebXML
+WebXML.quotinginformation = true
+WebXML.nosubdirs = true
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_test.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_test.qdocconf
new file mode 100644
index 000000000..bac4f3b4e
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_test.qdocconf
@@ -0,0 +1,2 @@
+include(test.qdocconf)
+include(webxml.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testcpp.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testcpp.qdocconf
new file mode 100644
index 000000000..e242cef27
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testcpp.qdocconf
@@ -0,0 +1,2 @@
+include(testcpp.qdocconf)
+include(webxml.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testqml.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testqml.qdocconf
new file mode 100644
index 000000000..537685700
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testqml.qdocconf
@@ -0,0 +1,2 @@
+include(testqml.qdocconf)
+include(webxml.qdocconf)
diff --git a/tests/auto/qdoc/generatedoutput/testdata/crossmodule/CrossModule b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/CrossModule
new file mode 100644
index 000000000..df9c82ad5
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/CrossModule
@@ -0,0 +1,2 @@
+#include "../TestCPP"
+#include "testtype.h"
diff --git a/tests/auto/qdoc/generatedoutput/testdata/crossmodule/crossmodule.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/crossmodule.qdocconf
new file mode 100644
index 000000000..fb4a6be77
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/crossmodule.qdocconf
@@ -0,0 +1,10 @@
+project = CrossModule
+includepaths += -I.
+
+depends = testcpp
+
+headers = testtype.h
+sources = testtype.cpp
+
+HTML.nosubdirs = true
+HTML.outputsubdir = crossmodule
diff --git a/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp
new file mode 100644
index 000000000..50d5d4845
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "testtype.h"
+
+/*!
+ \module CrossModule
+*/
+/*!
+ \class TestType
+ \inmodule CrossModule
+ \brief A class inheriting another class that lives in an external doc
+ module.
+
+ \section1 Linking
+
+ These links go to the parent class:
+ \list
+ \li \l {TestQDoc::TestDerived}
+ \li \l {TestQDoc::}{Test} class \l Usage.
+ \li QDOCTEST_MACRO
+ \endlist
+
+ \sa {TestQDoc::Test::}{someFunction()}
+*/
+
+/*!
+ Nothing to see here.
+*/
+void TestType::nothing()
+{
+}
diff --git a/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.h b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.h
new file mode 100644
index 000000000..4ffb0c80b
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.h
@@ -0,0 +1,37 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#pragma once
+
+#include "../testcpp/testcpp.h"
+
+class TestType : public TestQDoc::TestDerived
+{
+public:
+ TestType() {}
+ void nothing() {}
+};
diff --git a/tests/auto/qdoc/generatedoutput/testdata/dontdocument/TestCPP b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/TestCPP
new file mode 100644
index 000000000..7291e6d8f
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/TestCPP
@@ -0,0 +1,2 @@
+#include "../TestCPP"
+#include "dont.h"
diff --git a/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.cpp b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.cpp
new file mode 100644
index 000000000..33e208459
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.cpp
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "dont.h"
+
+/*!
+ \class UnseenClass
+ \inmodule TestCPP
+ \brief A public but undocumented class.
+*/
+UnseenClass::UnseenClass()
+{
+}
+
+/*!
+ \class SeenClass
+ \inmodule TestCPP
+ \brief A public but undocumented class.
+*/
+SeenClass::SeenClass()
+{
+}
diff --git a/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.h b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.h
new file mode 100644
index 000000000..5ef436b5c
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.h
@@ -0,0 +1,41 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#pragma once
+
+class UnseenClass
+{
+public:
+ UnseenClass();
+};
+
+class SeenClass : public UnseenClass
+{
+public:
+ SeenClass();
+};
diff --git a/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dontdocument.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dontdocument.qdocconf
new file mode 100644
index 000000000..117920e56
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/dontdocument.qdocconf
@@ -0,0 +1,7 @@
+include(../configs/testcpp.qdocconf)
+
+headers += dont.h
+sources += dont.cpp test.qdoc
+
+HTML.nosubdirs = true
+HTML.outputsubdir = dontdocument
diff --git a/tests/auto/qdoc/generatedoutput/testdata/dontdocument/test.qdoc b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/test.qdoc
new file mode 100644
index 000000000..3f6e0be30
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/dontdocument/test.qdoc
@@ -0,0 +1,36 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \dontdocument (UnseenClass)
+*/
+
+/*! \page classes.html
+ \title Classes
+ \generatelist annotatedclasses
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/anotherindex.qdoc b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/anotherindex.qdoc
new file mode 100644
index 000000000..75dd9197d
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/anotherindex.qdoc
@@ -0,0 +1,39 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+//! exampledirs-include
+ \page index.html
+ \title doc index
+
+ \section1 C++ Classes
+ \generatelist {classesbymodule TestCPP}
+ \section1 QML Types
+ \annotatedlist qmltypes
+//! exampledirs-include
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc
new file mode 100644
index 000000000..c95e22125
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+//! abstract-type
+ \qmltype AbstractParent
+ \ingroup qmltypes
+ \qmlabstract
+ \brief Abstract base QML type.
+//! abstract-type
+*/
+
+/*!
+//! children-qmlproperty
+ \qmlproperty list<Child> AbstractParent::children
+ \default
+ \brief Children of the type.
+//! children-qmlproperty
+*/
+
+/*!
+//! rear-qmlmethod
+ \qmlmethod void AbstractParent::rear(Child child)
+ \brief Do some abstract parenting on \a child.
+//! rear-qmlmethod
+*/
+
+/*!
+ \qmltype Child
+ \ingroup qmltypes
+ \inherits AbstractParent
+ \brief A Child inheriting its parent.
+*/
+
+/*!
+ \qmlbasictype int
+ \ingroup qmltypes
+ \brief An integer basic type.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/includefromexampledirs.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/includefromexampledirs.qdocconf
new file mode 100644
index 000000000..9c60c758f
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/includefromexampledirs.qdocconf
@@ -0,0 +1,12 @@
+include(../configs/testqml.qdocconf)
+
+includepaths += ..
+sourcedirs += src
+
+excludedirs += excludes \
+ ../qml/componentset
+
+exampledirs += excludes
+
+HTML.nosubdirs = true
+HTML.outputsubdir = includefromexampledirs
diff --git a/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/includefromparent.qdoc b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/includefromparent.qdoc
new file mode 100644
index 000000000..7b4c00b76
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/includefromparent.qdoc
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\include anotherindex.qdoc exampledirs-include
+
+\include parent.qdocinc
+*/
+
+/*!
+\include parentinclude.qdoc abstract-type
+
+\include parent.qdocinc
+*/
+
+/*!
+\include parentinclude.qdoc children-qmlproperty
+
+\include parent.qdocinc
+*/
+
+/*!
+\include parentinclude.qdoc rear-qmlmethod
+
+\include parent.qdocinc
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/parent.qdocinc b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/parent.qdocinc
new file mode 100644
index 000000000..307c39dbd
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/parent.qdocinc
@@ -0,0 +1 @@
+Test include file that is part of the sourcedirs.
diff --git a/tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc b/tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc
new file mode 100644
index 000000000..e56c447c4
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page qdoctests-qdocfileoutput.html
+ \title Testing QDoc output from .qdoc files
+ \brief This is a simple page for testing purposes only.
+
+ QDoc generates documentation for software projects. It does this by
+ extracting \e {QDoc comments} from project source files. QDoc comments are
+ signified by a C-style-like comment tag followed by an exclamation point,
+ like this:
+ \beginqdoc \c {This text is contained within QDoc comment tags.} \endqdoc.
+
+ \section1 Supported file types
+ QDoc parses \c .cpp and \c .qdoc files. It does extract comments from
+ header (\c {.h}) files.
+
+ \section1 Further information
+ This test document is written with the purpose of testing the output QDoc
+ generates when parsing \c .qdoc files. It is fairly simple and makes use of
+ a limited subset of QDoc's command. Those commands are:
+ \list
+ \li \c {\page}
+ \li \c {\title}
+ \li \c {\brief}
+ \li \c {\e} (for emphasizing "QDoc comments")
+ \li \c {\c} (for multiple monospace-formatted entries)
+ \li \c {\section1}
+ \li \c {\list}
+ \li \c {\li}
+ \li \c {\endlist}
+ \endlist
+
+ \section1 Linking
+
+ There are multiple ways to create hyperlinks to other topics:
+
+ \list
+ \li \l {Testing QDoc's link command}{Linking to a page title}
+ \li \l {Link targets}{Linking to a section title}
+ \li \l {link-test-target}{Linking using a \\target string}
+ \li \l {QDoc Linking Test}{Linking using a \\keyword string}
+ \endlist
+*/
+
+/*!
+ \keyword QDoc Linking Test
+ \page qdoctests-qdocfileoutput-linking.html
+ \title Testing QDoc's link command
+ \brief This is a page for testing QDoc's link command.
+
+ \target link-test-target
+ \section1 Link targets
+
+ Valid parameters for the link command (\c {\l}) are page and section
+ titles, targets defined with \\target or \\keyword commands, and API
+ reference keywords (types, methods, namespaces, and so on).
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/DocTest.qml b/tests/auto/qdoc/generatedoutput/testdata/qml/DocTest.qml
new file mode 100644
index 000000000..1ddafcfe4
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/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/testdata/qml/componentset/ProgressBar.qml b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/ProgressBar.qml
new file mode 100644
index 000000000..2a40cc488
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/ProgressBar.qml
@@ -0,0 +1,145 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** 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.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+
+/*!
+ \qmltype ProgressBar
+ \inqmlmodule UIComponents
+ \brief A component that shows the progress of an event.
+
+ A ProgressBar shows the linear progress of an event as its \l value.
+ The range is specified using the \l {minimum} and the \l{maximum} values.
+
+ The ProgressBar component is part of the \l {UI Components} module.
+
+ This documentation is part of the \l{componentset}{UIComponents} example.
+*/
+Item {
+ id: progressbar
+
+ /*!
+ The minimum value of the ProgressBar range.
+ The \l value must not be less than this value.
+ */
+ property int minimum: 0
+
+ /*!
+ The maximum value of the ProgressBar range.
+ The \l value must not be more than this value.
+ */
+ property int maximum: 100
+
+ /*!
+ The value of the progress.
+ */
+ property int value: 0
+
+ /*!
+ \qmlproperty color ProgressBar::color
+ The color of the ProgressBar's gradient. Must bind to a color type.
+
+ \omit
+ The "\qmlproperty <type> <property name>" is needed because
+ property alias need to have their types manually entered.
+
+ QDoc will not publish the documentation within omit and endomit.
+ \endomit
+
+ \sa secondColor
+ */
+ property alias color: gradient1.color
+
+ /*!
+ \qmlproperty color ProgressBar::secondColor
+ The second color of the ProgressBar's gradient.
+ Must bind to a color type.
+
+ \omit
+ The "\qmlproperty <type> <property name>" is needed because
+ property alias need to have their types manually entered.
+
+ QDoc will not publish the documentation within omit and endomit.
+ \endomit
+
+ \sa color
+ */
+ property alias secondColor: gradient2.color
+
+ width: 250; height: 23
+ clip: true
+
+ Rectangle {
+ id: highlight
+
+ /*!
+ An internal documentation comment. The widthDest property is not
+ a public API and therefore will not be exposed.
+ */
+ property int widthDest: ((progressbar.width * (value - minimum)) / (maximum - minimum) - 6)
+
+ width: highlight.widthDest
+ Behavior on width { SmoothedAnimation { velocity: 1200 } }
+
+ anchors { left: parent.left; top: parent.top; bottom: parent.bottom; margins: 3 }
+ radius: 1
+ gradient: Gradient {
+ GradientStop { id: gradient1; position: 0.0 }
+ GradientStop { id: gradient2; position: 1.0 }
+ }
+
+ }
+ Text {
+ anchors { right: highlight.right; rightMargin: 6; verticalCenter: parent.verticalCenter }
+ color: "white"
+ font.bold: true
+ text: Math.floor((value - minimum) / (maximum - minimum) * 100) + '%'
+ }
+}
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/Switch.qml b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/Switch.qml
new file mode 100644
index 000000000..db9616b69
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/Switch.qml
@@ -0,0 +1,152 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** 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.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+
+/*!
+ \qmltype ToggleSwitch
+ \inqmlmodule UIComponents
+ \brief A component that can be turned on or off.
+
+ A toggle switch has two states: an \c on and an \c off state. The \c off
+ state is when the \l on property is set to \c false.
+
+ The ToggleSwitch component is part of the \l {UI Components} module.
+
+ This documentation is part of the \l{componentset}{UIComponents} example.
+
+*/
+Item {
+ id: toggleswitch
+ width: background.width; height: background.height
+
+ /*!
+ Indicates the state of the switch. If \c false, then the switch is in
+ the \c off state.
+
+ \omit
+ The \qmlproperty <type> <propertyname> is not necessary as QDoc
+ will associate this property to the ToggleSwitch
+
+ QDoc will not publish the documentation within omit and endomit.
+ \endomit
+ */
+ property bool on: false
+
+
+ /*!
+ A method to toggle the switch. If the switch is \c on, the toggling it
+ will turn it \c off. Toggling a switch in the \c off position will
+ turn it \c on.
+ */
+ function toggle() {
+ if (toggleswitch.state == "on")
+ toggleswitch.state = "off";
+ else
+ toggleswitch.state = "on";
+ }
+
+
+ /*!
+ \internal
+
+ An internal function to synchronize the switch's internals. This
+ function is not for public access. The \internal command will
+ prevent QDoc from publishing this comment in the public API.
+ */
+ function releaseSwitch() {
+ if (knob.x == 1) {
+ if (toggleswitch.state == "off") return;
+ }
+ if (knob.x == 78) {
+ if (toggleswitch.state == "on") return;
+ }
+ toggle();
+ }
+
+ Rectangle {
+ id: background
+ width: 130; height: 48
+ radius: 48
+ color: "lightsteelblue"
+ MouseArea { anchors.fill: parent; onClicked: toggle() }
+ }
+
+ Rectangle {
+ id: knob
+ width: 48; height: 48
+ radius: width
+ color: "lightblue"
+
+ MouseArea {
+ anchors.fill: parent
+ drag.target: knob; drag.axis: Drag.XAxis; drag.minimumX: 1; drag.maximumX: 78
+ onClicked: toggle()
+ onReleased: releaseSwitch()
+ }
+ }
+
+ states: [
+ State {
+ name: "on"
+ PropertyChanges { target: knob; x: 78 }
+ PropertyChanges { target: toggleswitch; on: true }
+ },
+ State {
+ name: "off"
+ PropertyChanges { target: knob; x: 1 }
+ PropertyChanges { target: toggleswitch; on: false }
+ }
+ ]
+
+ transitions: Transition {
+ NumberAnimation { properties: "x"; easing.type: Easing.InOutQuad; duration: 200 }
+ }
+}
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/TabWidget.qml b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/TabWidget.qml
new file mode 100644
index 000000000..07fd40db9
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/TabWidget.qml
@@ -0,0 +1,193 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** 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.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+
+/*!
+ \qmltype TabWidget
+ \inqmlmodule UIComponents
+ \brief A widget that places its children as tabs.
+
+ A TabWidget places its children as tabs in a view. Selecting
+ a tab involves selecting the tab at the top.
+
+ The TabWidget component is part of the \l {UI Components} module.
+
+ This documentation is part of the \l{componentset}{UIComponents} example.
+
+ \section1 Adding Tabs
+
+ To add a tab, declare the tab as a child of the TabWidget.
+
+ \code
+ TabWidget {
+ id: tabwidget
+
+ Rectangle {
+ id: tab1
+ color: "red"
+ //... omitted
+ }
+ Rectangle {
+ id: tab2
+ color: "blue"
+ //... omitted
+ }
+
+ }
+ \endcode
+
+*/
+Item {
+ id: tabWidget
+
+ /*!
+ \internal
+
+ Setting the default property to stack.children means any child items
+ of the TabWidget are actually added to the 'stack' item's children.
+
+ See the \l{"Property Binding in QML"}
+ documentation for details on default properties.
+
+ This is an implementation detail, not meant for public knowledge. Putting
+ the \internal command at the beginning will cause QDoc to not publish this
+ documentation in the public API page.
+
+ Normally, a property alias needs to have a
+ "\qmlproperty <type> <propertyname>" to assign the alias a type.
+
+ */
+ default property alias content: stack.children
+
+
+ /*!
+ The currently active tab in the TabWidget.
+ */
+ property int current: 0
+
+ /*!
+ A sample \c{read-only} property.
+ A contrived property to demonstrate QDoc's ability to detect
+ read-only properties.
+
+ The signature is:
+ \code
+ readonly property int sampleReadOnlyProperty: 0
+ \endcode
+
+ Note that the property must be initialized to a value.
+
+ */
+ readonly property int sampleReadOnlyProperty: 0
+
+ /*!
+ \internal
+
+ This handler is an implementation
+ detail. The \c{\internal} command will prevent QDoc from publishing this
+ documentation on the public API.
+ */
+ onCurrentChanged: setOpacities()
+ Component.onCompleted: setOpacities()
+
+ /*!
+ \internal
+
+ An internal function to set the opacity.
+ The \internal command will prevent QDoc from publishing this
+ documentation on the public API.
+ */
+ function setOpacities() {
+ for (var i = 0; i < stack.children.length; ++i) {
+ stack.children[i].opacity = (i == current ? 1 : 0)
+ }
+ }
+
+ Row {
+ id: header
+
+ Repeater {
+ model: stack.children.length
+ delegate: Rectangle {
+ width: tabWidget.width / stack.children.length; height: 36
+
+ Rectangle {
+ width: parent.width; height: 1
+ anchors { bottom: parent.bottom; bottomMargin: 1 }
+ color: "#acb2c2"
+ }
+ BorderImage {
+ anchors { fill: parent; leftMargin: 2; topMargin: 5; rightMargin: 1 }
+ border { left: 7; right: 7 }
+ source: "tab.png"
+ visible: tabWidget.current == index
+ }
+ Text {
+ horizontalAlignment: Qt.AlignHCenter; verticalAlignment: Qt.AlignVCenter
+ anchors.fill: parent
+ text: stack.children[index].title
+ elide: Text.ElideRight
+ font.bold: tabWidget.current == index
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: tabWidget.current = index
+ }
+ }
+ }
+ }
+
+ Item {
+ id: stack
+ width: tabWidget.width
+ anchors.top: header.bottom; anchors.bottom: tabWidget.bottom
+ }
+}
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/componentset.pro b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/componentset.pro
new file mode 100644
index 000000000..5b44737c2
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/componentset.pro
@@ -0,0 +1,5 @@
+SOURCES = componentset.pro \
+ ProgressBar.qml \
+ Switch.qml \
+ TabWidget.qml \
+ uicomponents.qdoc
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/examples.qdoc b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/examples.qdoc
new file mode 100644
index 000000000..2f56c221c
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/examples.qdoc
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example componentset
+ \title QML Documentation Example
+ \brief Example for documenting QML types.
+
+ \meta tag {test,sample}
+ \meta installpath tutorials
+
+ This example demonstrates one of the ways to document QML types.
+
+ 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
+ \l{UI Components} module.
+
+ The \l{componentset/uicomponents.qdoc.sample}{uicomponents.qdoc} file generates
+ the overview page for the \l{UI Components} module page.
+
+ The generated documentation is available in the \l{UI Components} module.
+
+ \section1 QML Class
+
+ The QML types use the \l{qmltype-command}{\\qmltype} to document the
+ type. In addition, they have the \l{inmodule-command}{\\inmodule}
+ command in order for QDoc to associate them to the \c UIComponents module.
+
+ QDoc uses the \l{brief-command}{\\brief} command to place a basic
+ description when listing the types.
+
+ \section1 Properties, Signals, Handlers, and Methods
+
+ 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.
+
+ To document the type of a \e {property alias}, you must use the
+ \l{qmlproperty-command}{\\qmlproperty} command to specify the data type.
+
+ \code
+ \qmlproperty int anAliasedProperty
+ An aliased property of type int.
+ \endcode
+
+ \section2 Internal Documentation
+
+ You may declare that a documentation is for internal use by placing the
+ \l{internal-command}{\\internal} command after the beginning QDoc comment
+ \begincomment. QDoc will prevent the internal documentation from appearing
+ in the public API.
+
+ If you wish to omit certain parts of the documentation, you may use the
+ \l{omit-command}{\\omit} and \l{omit-command}{\\endomit} command.
+
+ \section1 QML Types with C++ Implementation
+
+ This example only demonstrates the documentation for types in QML
+ files, but the regular \l{qml-documentation}{QML commands} may be placed
+ inside C++ classes to define the public API of the QML type.
+
+*/
+
+
+/*!
+ \qmlmodule UIComponents 1.0
+ \title UI Components
+ \brief Basic set of UI components
+
+ This is a listing of a list of UI components implemented by QML types. These
+ files are available for general import and they are based on the
+ \l{Qt Quick Examples and Tutorials}{Qt Quick Code Samples}.
+
+ This module is part of the \l{componentset}{UIComponents} example.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/uicomponents.qdoc.sample b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/uicomponents.qdoc.sample
new file mode 100644
index 000000000..0c6d187ed
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/componentset/uicomponents.qdoc.sample
@@ -0,0 +1,38 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmlmodule UIComponents 1.0
+ \title UI Components
+ \brief Basic set of UI components
+
+ This is a listing of a list of UI components implemented by QML types. These
+ files are available for general import and they are based off the \l{Qt
+ Quick Code Samples}.
+
+ This module is part of the \l{componentset}{UIComponents} example.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/parent.qdoc b/tests/auto/qdoc/generatedoutput/testdata/qml/parent.qdoc
new file mode 100644
index 000000000..fed18491c
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/parent.qdoc
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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.
+*/
+
+/*!
+ \qmlmethod int int::abs()
+ Returns the absolute value of this integer.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qml/type.cpp b/tests/auto/qdoc/generatedoutput/testdata/qml/type.cpp
new file mode 100644
index 000000000..bf04bdb43
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qml/type.cpp
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** 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.
+*/
+
+/*!
+ \qmlproperty int Type::fourth
+ \qmlproperty int Type::fifth
+
+ \brief A group of properties sharing a documentation comment.
+*/
+
+/*!
+ \qmlmethod Type Type::copy(a)
+
+ Returns another Type based on \a a.
+*/
+
+/*!
+ \qmlmethod Type::enable()
+ \qmlmethod Type::disable()
+
+ Enables or disables this type.
+*/
+
+/*!
+ \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/testdata/qmlpropertygroups/parent.qdoc b/tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/parent.qdoc
new file mode 100644
index 000000000..c7002e96b
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/parent.qdoc
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype Parent
+ \inqmlmodule QDoc.Test
+ \brief Base QML type.
+*/
+
+/*!
+ \qmlproperty int Parent::group.c
+ \qmlproperty int Parent::group.a
+ \qmlproperty int Parent::group.b
+ \brief Property group.
+*/
+
+/*!
+ \qmltype AnotherChild
+ \inqmlmodule QDoc.Test
+ \inherits Parent
+ \brief Just another child inheriting a parent.
+*/
+
+/*!
+ \qmlproperty string AnotherChild::name
+ \brief Name of this child.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/qmlpropertygroups.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/qmlpropertygroups.qdocconf
new file mode 100644
index 000000000..c535b4032
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/qmlpropertygroups.qdocconf
@@ -0,0 +1,7 @@
+include(../configs/testqml.qdocconf)
+
+includepaths += ..
+sourcedirs += .
+
+HTML.nosubdirs = true
+HTML.outputsubdir = qmlpropertygroups
diff --git a/tests/auto/qdoc/generatedoutput/testdata/scopedenum/scopedenum.qdoc b/tests/auto/qdoc/generatedoutput/testdata/scopedenum/scopedenum.qdoc
new file mode 100644
index 000000000..4262c1ce6
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/scopedenum/scopedenum.qdoc
@@ -0,0 +1,35 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \enum TestQDoc::Test::ScopedEnum
+
+ \value This Something
+ \value That Something else
+ \value All Everything
+ \omitvalue OmittedValue
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/TestCPP b/tests/auto/qdoc/generatedoutput/testdata/testcpp/TestCPP
new file mode 100644
index 000000000..4ed786108
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/TestCPP
@@ -0,0 +1,5 @@
+#include "testcpp.h"
+
+#ifdef test_template
+# include "testtemplate.h"
+#endif
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
new file mode 100644
index 000000000..5d3055ac2
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
@@ -0,0 +1,175 @@
+/****************************************************************************
+**
+** 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"
+
+namespace TestQDoc {
+
+/*!
+ \module TestCPP
+ \qtvariable testcpp
+ \title QDoc Test C++ Classes
+ \brief A test module page.
+*/
+
+/*!
+ \namespace TestQDoc
+ \inheaderfile TestCPP
+ \inmodule TestCPP
+ \brief A namespace.
+
+ \section1 Usage
+ This namespace is for testing QDoc output.
+*/
+
+/*!
+ \class TestQDoc::Test
+ \inmodule TestCPP
+ \brief A class in a namespace.
+
+\if defined(test_ignoresince)
+ //! omitted by ignoresince
+ \since 1.1
+\endif
+*/
+
+/*!
+ \class TestQDoc::TestDerived
+ \inmodule TestCPP
+ \brief A derived class in a namespace.
+*/
+
+/*!
+ \macro QDOCTEST_MACRO
+ \relates TestQDoc
+\if defined(test_ignoresince)
+ //! omitted by ignoresince.Test
+ \since Test 0.9
+\endif
+*/
+
+/*!
+ \macro QDOCTEST_MACRO2(x)
+ \relates TestQDoc::Test
+ \since Test 1.1
+ \brief A macro with argument \a x.
+*/
+
+/*!
+ \deprecated
+
+ Use someFunction() instead.
+*/
+void Test::deprecatedMember()
+{
+ return;
+}
+
+/*!
+ \obsolete
+
+ Use someFunction() instead.
+*/
+void Test::obsoleteMember()
+{
+ return;
+}
+
+/*!
+ \obsolete
+
+ Use obsoleteMember() instead.
+*/
+void Test::anotherObsoleteMember()
+{
+ return;
+}
+
+/*!
+ Function that takes a parameter \a i and \a b.
+\if defined(test_ignoresince)
+ \since 2.0
+\endif
+*/
+void Test::someFunctionDefaultArg(int i, bool b = false)
+{
+ return;
+}
+
+/*!
+ Function that takes a parameter \a v.
+ Also returns the value of \a v.
+\if defined(test_ignoresince)
+ \since Test 1.0
+\endif
+*/
+int Test::someFunction(int v)
+{
+ return v;
+}
+
+/*!
+ \fn void TestQDoc::Test::inlineFunction()
+
+ \brief An inline function, documented using the \CMDFN QDoc command.
+*/
+
+/*!
+ Function that must be reimplemented.
+*/
+void Test::virtualFun()
+{
+ return;
+}
+
+/*!
+ \reimp
+*/
+void TestDerived::virtualFun()
+{
+ return;
+}
+
+/*!
+ \fn TestQDoc::Test::overload()
+ \fn Test::overload(bool b)
+ //! The second overload should match even without the fully qualified path
+
+ Overloads that share a documentation comment, optionally taking
+ a parameter \a b.
+*/
+
+/*!
+\if defined(test_template)
+ \fn template <typename T1, typename T2> void TestQDoc::Test::funcTemplate(T1 a, T2 b)
+ \brief Function template with two parameters, \a a and \a b.
+\else
+ //! nothing
+\endif
+*/
+
+} // namespace TestQDoc
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h
new file mode 100644
index 000000000..4ae33a404
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#pragma once
+#define QDOCTEST_MACRO test
+#define QDOCTEST_MACRO2(x) (x) < 0 ? 0 : (x))
+
+namespace TestQDoc {
+
+class Test {
+public:
+#ifdef test_scopedenum
+ enum class ScopedEnum : unsigned char {
+ This = 0x01,
+ That = 0x02,
+ All = This | That,
+ OmittedValue = 99
+ };
+#endif
+ int someFunction(int v);
+ void someFunctionDefaultArg(int i, bool b);
+ void obsoleteMember();
+ void anotherObsoleteMember();
+ void deprecatedMember();
+ inline void inlineFunction() {};
+ virtual void virtualFun();
+
+protected:
+ void overload() {}
+ void overload(bool b) { if (!b) return; }
+#ifdef test_template
+ template <typename T1, typename T2> void funcTemplate(T1 a, T2 b) {
+ a = b;
+ }
+#endif
+};
+
+class TestDerived : public Test {
+public:
+ void virtualFun() override;
+};
+
+} // namespace TestQDoc
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.cpp b/tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.cpp
new file mode 100644
index 000000000..e9755769f
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.cpp
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "testtemplate.h"
+
+/*!
+ \class Foo
+ \inmodule TestCPP
+ \brief Class template.
+*/
+
+/*!
+ \class Bar
+ \inmodule TestCPP
+ \brief Another class template.
+*/
+
+/*!
+ \class Baz
+ \inmodule TestCPP
+ \brief Class template template.
+*/
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.h b/tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.h
new file mode 100644
index 000000000..d60ab0da4
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.h
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#pragma once
+
+template <typename T>
+class Foo {
+public:
+ Foo() {}
+private:
+ T t;
+};
+
+template <typename T, typename D>
+class Bar {
+public:
+ Bar() {}
+private:
+ T t;
+ D d;
+};
+
+template<template<typename> class X, typename Y>
+struct Baz
+{
+ X<Y> z;
+ Baz() : z() {}
+};