| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were multiple locations in the code where QDoc still generated
links to nodes that were marked with \internal or \dontdocument, or
generated lists that included entries (with links to non-existing
files) representing these nodes.
* Set an empty (but non-null) url for ignored nodes. This
also speeds up searching for link targets as nodes can
be dismissed early based on their url().
* Use Node::isDontDocument() as a conditional in Node::isInAPI(),
and filter CollectionNode's members based on the latter - this
removes ignored classes/functions from module pages and group
listings.
* Fix TagFileWriter to drop ignored nodes.
Fixes: QTBUG-94555
Change-Id: Icab05f7aa78e455c15ce097b9f99f5fce7267d3f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 1246e064caaa6243c941d795eb877c519bce69ad)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Page nodes, regardless of the node subtype, have no relation to any C++
module. Having this attribute in the index caused QDoc to search for
such a module, and create one if one was not found. This was a waste of
resources, and for pure documentation modules (such as 'QDoc' - the
QDoc Manual), caused broken links to a non-existing module page
(qdoc-module.html).
Fixes: QTBUG-94480
Change-Id: I2f608eba21ae977d3baaebf40885098ed1fe8d7e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 3e88b552a1aac807504fa85bf752e6bd8542b573)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When there are multiple documentation modules that document items under
the same namespace, we incorrectly linked to the wrong one (a sub-page
generated for a single module). This happened when using
\generatelist namespaces
in a module that was not the one where the namespace is documented
but has a dependency to it; as is the case with the main Qt reference
(qtdoc).
Add documentation comments to make the code slightly more understandable,
and add a test case for both the main reference page and the sub-page
generated for a namespace.
Fixes: QTBUG-90540
Change-Id: Ie883ea53896d9d70a17bc01e072648c62a9b8aa3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 99f57491a12c2aa778ab9c8c9d50549d65701694)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If no \qmlsignal command was used, but a signal declaration in a QML
file was preceded by its documentation comment, the signal parameters
were malformed.
Fixes: QTBUG-94395
Change-Id: Ie2f084009b4fb3f27602f170fab49601c19ab987
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 8d29e7c656c430a17a30ef9e20d543bf86b9520d)
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clean up some of QDoc's html output:
* Remove erroneous <p/>.
* Do not write empty <ul></ul> for lists that don't exist.
* Do not generate links with missing href.
* Drop duplicated anchors in tables.
* Stop writing unnecessary and broken links to qml modules.
* Don't duplicate <b>'s.
* Change Atom type to Autolink for Q_INVOKABLE to not generate
broken <a> tag if link target cannot be resolved.
Task-number: QTBUG-81209
Task-number: QTBUG-73026
Fixes: QTBUG-93876
Change-Id: I4e9f01571263a21e0c25e5d8b3b7ff10fc18bea7
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a check to Text::operator<<() to stops QDoc
from outputting unnecessary "empty" spans, i.e.
<span class="subtitle"></span>
when generating html.
Task-number: QTBUG-81209
Task-number: QTBUG-73026
Change-Id: I4df7875ee1c29bc1d48e9c3e53e8ce0518f3be3e
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous method did not correctly handle multi-line descriptions for
enum values omitted from the documentation which we have multiple
instances of in the source. These description paragraphs are now
skipped entirely.
After \omitvalue, skip all content until a new paragraph, a \value
command, or another \omitvalue.
Pick-to: 6.1
Task-number: QTBUG-92386
Change-Id: If9284ad2936019bc9afbfaa7cbf5cfbdbdd3cfa4
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: I71489d8736d7977eb8425b06050a8f81c32cc430
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change allows users to specify an optional parameter
to the \deprecated command to record which version something
was deprecated. It also allows for free text descriptions.
These descriptions become the first paragraph of the resulting
documentation.
Usage:
\deprecated
\deprecated [6.2]
\deprecated [6.2] Use QFoo() instead.
\deprecated Use QFoo() instead.
[ChangeLog][qdoc] QDoc now lets you record the version something
is deprecated and suggest replacements with the \deprecated command.
Task-number: QTBUG-58249
Change-Id: I27081627132b2f8ea3dd7d48ded8e37213366074
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc had two commands for the same purpose, \obsolete and \deprecated.
As 'deprecated' describes the status better, as in, something that is
subject to being removed from the public API, document only the
latter. Keep \obsolete for now for backward compatibility.
.index file recognize the "obsolete" attribute still for backward
compatibility, converting to "deprecated".
[ChangeLog][qdoc] Replaced \obsolete command in favor of \deprecated
as it's a more accurate description of the intended status.
Task-number: QTBUG-58249
Change-Id: I3d311ebf7b4a3e8a23fa85e4efcf60965cf12a13
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assuming that the version string is always available
leads to import text with just a dot in the docs.
Added a test qmlmodule without the version to check
if this works. In addition, updated the documentation
to mention the optional version argument and made a few
minor edits.
Fixes: QTBUG-93265
Pick-to: 6.0 6.1
Change-Id: Ib0ee8c1e0fca43cd2cbee19374d14140a51f13fa
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
This command was undocumented and non-functioning; Remove it, the
related data structures and enum values.
Change-Id: Ia95efd20d35908ea5a23e660abb2b06b354f5f5a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 1637d91efd8fb389bc09bdaa960f5d9d4f9e0164.
Reason for revert:
User feedback shows this implementation isn't good enough. Further discussion led to the discovery of a better approach.
Task-number: QTBUG-58249
Change-Id: I48e0500ac95745b1ce10a29e77c6fa515b9e048f
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
For \omitvalue <enum_value>, omit also single-line descriptions that
immediately follow <enum_value> or appear on a new line following the
\omitvalue command.
Pick-to: 6.1
Fixes: QTBUG-92386
Change-Id: Id8a70ff48102075d3b18442547773ae7f3eefefa
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As deprecated methods may stick around over a couple of
versions, add a command that lets us record which version
something was deprecated in.
[ChangeLog][qdoc] QDoc now lets you record the version something
is deprecated in with the new \deprecatedsince command.
Fixes: QTBUG-58249
Change-Id: I69de350502580f446008f717462bbc1c4c251564
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-73026
Task-number: QTBUG-81209
Change-Id: I47d0fd94141d631abd8ea709c7ef0dc311312375
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The code that resolved qualified names of enum values did not expect
the name of the enum to appear in the path, as is the case for enum
classes.
Pick-to: 6.1
Fixes: QTBUG-92355
Change-Id: I74246158f7c5ca7c5c1712bc642905bc267cb7e1
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The code parser already tracked the invokability of a function; tag the
function signature when generating the detailed documentation.
Pick-to: 6.0 6.1
Fixes: QTBUG-79698
Change-Id: I42d727f762b488b13dd10b400c5c07453c60cbac
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 3e67b5e4df84421b77f90cbf242abb4a3c4c93a5.
The original implementation where fileBase() was a virtual function,
overridden by HtmlGenerator, was needed as that generator is the
only one that conditionally appends '-obsolete' to output file names.
By using a shared static helper across all generators we broke that
feature.
Modify the revert to resolve conflicts and override fileBase() also
for WebXMLGenerator; .webxml output should not refer to files with
-obsolete suffix.
Pick-to: 6.0 6.1
Fixes: QTBUG-92478
Change-Id: I7a7e3ef333724c96624569dd27b4812196931fb0
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The purpose of the auto-linking feature is to link strings in the
text that resemble class or function names to API reference. However,
QDoc did not discriminate between the types of the resolved link
targets. Therefore, writing
\section1 QString
on a random \page would potentially redirect all autolinks to QString
to that section.
To fix, turn Node::Genus into attributes so we can do bitwise operations
on the genus, and introduce Node::API that includes all API reference
node genera.
Node::API is not assigned to nodes directly, but is used in searches
to match against any API reference nodes.
Pick-to: 6.0 6.1
Task-number: QTBUG-91141
Change-Id: Ic0a22b7105e1278662f5ae7d4132980200638225
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The property type defined in Q_PROPERTY may contain the const
qualifier. Store the qualifier and make the code a bit more
robust against ill-formatted property declarations.
Pick-to: 6.0 6.1
Fixes: QTBUG-91990
Change-Id: I6b06e4c8af8bb9dec3c467c6e19d9987b8340110
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Marking a QML property as a default property is now done with \qmldefault
command; repurpose the \default command to set a default value for a
property.
The default value is visible in the detailed property documentation as
an extra 'default: <value>' attribute. The value is taken as-is from
the argument passed to the command.
Fixes: QTBUG-81525
Change-Id: I7a4395e6e96046facfc3d75cc62a3bd01d04935b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To allow the repurposing of the \default command for the
more generic default value use-case, make the current
specialization explicit as \qmldefault.
This patch also introduces a stub implementation of the
\default command. This ensures that existing documentation
sets that depend on this command will not issue new warnings.
The patch is as such a prerequisite for the introduction of
the new \default command.
[ChangeLog][qdoc] QDoc's \default command should specify
a default value. To document a default QML property, use
the new \qmlproperty command.
Task-number: QTBUG-81525
Change-Id: I3ed38e8a6f5a431247a2cea4ea661c87dd97d1b0
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Skip nodes marked as \internal from the generated index files, unless
--showinternal option was set. This reduces the size of index files,
improves performance, and also avoids linking issues in corner cases
where QDoc is searching for a specific function overload but fails to
find it because the link target matches with an internal node.
Pick-to: 6.0 6.1
Fixes: QTBUG-91409
Change-Id: I062e261a86e737fde0f138264244324d43091270
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 550c3031 improved the handling of \relates command, but
introduced a regression; When relating a primary function (a
first in the linked list of overloads) to another aggregate,
the primary's nextOverload pointer was cleared. Subsequent
\fn commands trying to document other overloads then failed.
The correct way is to move the head of the linked list forward.
However, if there are no overloads, we do not want to delete the
list entirely, as the function (typically, a global one) must
be searchable from the original (global) scope.
Pick-to: 6.0 6.1
Fixes: QTBUG-91244
Change-Id: If80fa93ac5231d0676c0809f1acfa97733f9f9e8
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This includes removal of the corresponding .prev_CMakeLists.txt files.
Pick-to: 6.1
Task-number: QTBUG-88742
Change-Id: I3f360105a8cd43ad37dec6bfc6509ce95c79ee76
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.0 5.15
Fixes: QTBUG-90691
Change-Id: I576849bb291926461f40622278619ffe096036cf
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc replicates property/function documentation from abstract QML base
types to the reference of the inheriting type. Attempting to override
a member documentation for the inheriting type resulted in duplication:
both the base and inheriting docs were rendered.
As the decision on what's shown on the type reference is deferred to
constructing the sections, implement this logic there. Modify
FunctionNode::compare() so that we can compare methods from
different parents, allowing us to override a specific overload of
a method.
Pick-to: 6.0
Fixes: QTBUG-89913
Change-Id: I3fb56c747e72b5a6ff387667e035a959e8f1c479
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When adopting a function node from one parent to another, QDoc did not
touch the linked list of overloads for the adopted function. This
caused situations where traversing the node tree, trying to find
functions for an aggregate (parent), yielded also overloads that are
not supposed to be found as they are not members of that parent.
One visible place was the classes-with-obsolete-members generated list,
where QDoc erraneously found obsolete overloads for a class that had
adopted function(s) from the global namespace.
To fix, remove an adoptee from the overload list of its primary function
(maintained by the original parent), and re-add it to the overload list
maintained by the new parent.
Refactor functions that manage linked lists; using recursion is
unnecessary.
Pick-to: 6.0
Fixes: QTBUG-89003
Change-Id: Ibd215cd4b1d97003ac79fe02a71452e4a7a154db
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
QML signals may belong to a group, and the automatic note generation
for corresponding signal handler must take this into account.
Pick-to: 6.0 5.15
Fixes: QTBUG-85572
Change-Id: Ibfc793475618fb78a8ba0a0344537917ad6fb0bf
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This caused documentation for obsolete members to go missing if a
section had only obsolete members.
Pick-to: 6.0
Task-number: QTBUG-89003
Change-Id: I9fb38bb76af45eda42cddc25bb4f6137e73e6fc3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While we store the QML base type name into the index file, the
inheritance chain was never rebuilt for nodes read from the
index.
Do this recursively for index nodes; this provides full inheritance
information on 'All members' pages for QML types, provided that
all required documentation dependencies are loaded using the
'depends' qdocconf variable.
Pick-to: 6.0
Task-number: QTBUG-89479
Change-Id: Ibafcd3224d7870e7eec7c0ed88d35135b7be3eaf
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.0
Change-Id: Id8b82e7838c3b142cbd9118689bafae0bbe2beb1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the CMake snippet in the class documentation pages to use PRIVATE
linkage. PUBLIC linkage is only needed if the Qt types are also used
in the public API of the user's module.
Task-number: QTBUG-88935
Change-Id: If4aee64a25ec8152a2a0ad5b5504f53a41d93079
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit a774889df6ee2e07d0f01580bc9e486365200ff5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
find_package() only knows about COMPONENTS, not COMPONENT.
While at it, also make the find_package call REQUIRED, and do use
the versioned library target name.
Change-Id: I1410b7c8cce84a1f24853bfcef650e440c468b33
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit c57c4836d627406f33b80e4a188c93f79331a1bc)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Once an example had an attribute associated - for instance isHighlighted
- all the other examples afterward got the attribute too.
This caused a (more or less) random list of examples to be highlighted
in Qt Creator.
Change-Id: Id09c232f56328d345deb9521651af40ecf750a36
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit e2c263a1b980636b62dbfd2037e70ee665a0ad39)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
It's allowed for a collection node (e.g. a QML module page) to have
no members (QML types), and still be considered valid. List these
types of pages when processing the \generatelist command.
Fixes: QTBUG-88536
Change-Id: I23c890c4752039f29489a7504f73f8078fe01fe3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QFINDTESTDATA(.) first matches :/. (in the resource subsystem) so this
led to
QFAIL("Cannot open expected data file!");
because it was looking for
:/./expected_output/qdoctests-qdocfileoutput.html
Not sure how this ever passed on CI.
Change-Id: Ia4de8e35eb352b2c560d1fc92a1f837be0c20b9d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
| |
Only the members of a property group were written to .index, not the
group itself; this made cross-module linking to the group fail.
Fixes: QTBUG-88386
Change-Id: I096a2bbdd2b0af00c4d0e9a6974b6dc7dce075a2
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
\typedef can be used as a substitute for \typealias for documenting
aliases. Since they are identical in terms of usage, unify also the
way they are documented:
- Remove 'typedef' and '(alias)' from both the summary and details
sections, making both appear as types.
- Remove automatically generated 'This is a type alias for ...' note
for type aliases. This typically resulted in duplicate statements.
- Use '-typedef' anchor suffix for both.
- Use 'typedef' as element for both in .index files and webxml output
format.
- Add template parameters for type aliases for DocBook generator;
these were previously missing.
Fixes: QTBUG-87622
Change-Id: I93986a2dc91c3c3dff9e21f5bf5cf19d0b55c4df
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Qt 6, some types that used to be classes are now type aliases or
specializations of a templated class; for example, QPair is now an
alias to std::pair.
While the \typedef command supports aliases, it's not always clear
where the reference of such type should live, as a \typedef cannot
generate a page of its own and needs to be related to some other
aggregate (class, header, or namespace). Therefore, allow aliases
to generate a type page using the \class command.
Fixes: QTBUG-88012
Change-Id: Ice67d58eb036299c0fd04f6ed48a846bfed8ed1d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to cleanly control whether an example appears in
Qt Creator's welcome mode or not, while still generating the
example documentation. This can be done with
\example path/to/example
\meta tag broken
Delay writing the manifest attributes until we know whether to
generate the example element or not.
Fixes: QTBUG-88181
Change-Id: Idbd23244ffdb0c6b7ca87f927cb6d2ed3a526b2a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 'sources' configuration variable was not considered when searching
for file to include.
- An empty QString was pushed to the location stack in
DocParser::include(), resulting in vague warning messages
- The search algorithm chose the first path that ended in the
filename to find, with the potential of incorrectly choosing
'foobar.cpp' over 'bar.cpp'.
Fixes: QTBUG-86844
Change-Id: If180ffe0817b2e786356b49f7e679e158fbc407d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A misplaced 'i++' caused an error where names of documented parameters
were shifted around if one or more of the parameters were unnamed.
Fixing the above uncovered issues with handling of \fn commands with
[tag] argument; improve and simplify related code.
Finally, avoid redundant space characters when generating signatures
with unnamed parameters or in 'All Members' page where parameter
names are omitted.
Fixes: QTBUG-87855
Change-Id: I526c89c10c66572b8c71106660f43346a4751e4e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: Ifa2682c8bc3864dfd11abbb475b064e74c105a52
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Parameters with a type QPrivateSignal were already removed when
constructing a FunctionNode from header declaration. This was
erraneously subtracted from the number of stored parameters when
parsing an \fn command.
Fixes: QTBUG-87731
Change-Id: I01409c0fcdab0dfbf8a0b9d22cded99618bdcc2d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implicitly generated class members such as default constructor are not
visible in the Clang AST, and QDoc failed to match \fn commands for
such functions.
Fix this by visiting the translation unit generated for the \fn command,
and constructing a temporary FunctionNode. If this temporary node is
of any of the special member types that can be implicit, add that
function as a child to the class node.
Add 'default' attribute for such functions in the generated docs.
Fixes: QTBUG-86984
Change-Id: I6c662e4ca030d80b68dd22f3639526093c27c20b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Up until now, only select node types (PageNodes) stored the
information about \ingroup command argument(s) into the index file.
This meant that generating lists that contain non-page nodes (e.g.
functions) did not produce correct results, if group members included
non-page nodes from other modules.
Add a helper function QDocDatabase::groupNamesForNode() that returns
a list of groups regardless of node type, and use that when generating
the index file.
[ChangeLog][qdoc] QDoc's \generatelist and \annotatedlist commands now
produce correct output when listing functions from external
documentation modules.
Fixes: QTBUG-87161
Change-Id: Id3079729891ec22716e4b7606bec604a7ebff74a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc writes a node using \relates twice into the index;
once under the original (lexical) parent (typically, the
global scope), and again under the adoptive parent specified
with \relates. This is by design, as it allows searching for
the node under both scopes.
However, when the nodes are read back in, what was originally
a single node was duplicated. This caused issues e.g. when
that node is part of a group; when generating a list for a
group, a line representing the node appeared twice.
Use Aggregate::adoptChild() when reading nodes from index,
instead of constructing multiple nodes. This is similar to
what the code parser does when processing the \relates
command.
To identify an index entry appearing twice as a representation
of a single node, repurpose the "related" attribute to track
the index of each related node.
Fixes: QTBUG-87311
Change-Id: I2aa8a97b9be26ee3945b3e4ce222b0f8dc4ca8b5
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
One of the steps (crossModuleLinking), calls another step to
generate its .index file. This caused also those files to be
copied twice when -regenerate option was set.
Disable the regeneration flag for the step.
Change-Id: Ia3ed90c014a8ec89db18a7e7168a4bc167d4b82b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|