| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Consider a project with sub-directories and a qt_add_translations call
in a sub-directory. Before Qt 6.7.0, the path to the embedded .qm files
was ":/i18n/foo_de.qm". With Qt 6.7.0, the path is
":/i18n/subdir/foo_de.qm".
The reason is that we're called qt6_add_resources with the BASE argument
"${CMAKE_CURRENT_BINARY_DIR}", and that is different if targets are
automatically collected at the end of the project's directory scope.
Fix this by passing the target's BINARY_DIR as BASE instead.
Pick-to: 6.7 6.7.1
Fixes: QTBUG-124188
Change-Id: I6afd39c072e7dccc2ff5937c5cd312a119b68587
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
|
|
|
|
|
| |
Change-Id: If516477bbc5f99ecb7c7274b65e3149bab099fda
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
| |
Fixes: QTBUG-119515
Change-Id: I3d80138ce9282594f7d68c440c4666a9e4896c37
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QDoc warning:
Clang couldn't find function when parsing \fn <signature>
was documented twice in the manual. Remove one of the instances,
together with the now-obsolete information it included.
Fix phrasing in the remaining section. Fix excess whitespace
and excess backslash character appearing the the \fn command
name.
Change-Id: I61fb69e5139cf7a60fb303a2d14579c1543d3230
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two test cases used #include statements from the standard library.
However, the test setup does not ensure that all required include
paths are actually forwarded to QDoc and on to Clang.
Some versions of Clang are able to correctly guess the include
path(s) on some platforms/configurations, but we cannot rely on
that always being the case.
Replace the std lib includes with dummy declarations that should
produce identical results in the expected output.
Change-Id: I6f6b1bb9b176f7fa59ccdfc64c11e1586409eb5a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: I2fdd60c193f4f49d26a96bdfcbf6beaf69dae4fb
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To fix QTBUG-118808 we added code to filter ui_*.h files from lupdate's
input. This was done by creating a big regular expression.
Unfortunately, CMake cannot handle regular expressions that contain a
certain amount of sub-expressions. See QTBUG-123995.
We now fix the issue more generally by filtering out everything that's
generated by CMake's AUTOGEN facility. The data flow is like follows:
1. On project configuration, .lupdate/foo_project.cmake is generated.
This file contains the location of the AUTOGEN directory per target. The
AUTOGEN_BUILD_DIR target property is taken into account.
2. At build time, GenerateLUpdateProject.cmake reads
.lupdate/foo_project.cmake, and filters out source files that are below
the AUTOGEN directory for the currently handled target. The filtered
result is written to .lupdate/foo_project.json.
3. On 'update_translations', lupdate reads .lupdate/foo_project.json and
runs on the source files mentioned there.
Fixes: QTBUG-118808
Fixes: QTBUG-123995
Pick-to: 6.6 6.7
Change-Id: Id23b94c22b2eadeb7f96321bf631731b9f257bce
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all module and
plugin files should be
LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
or
LicenseRef-Qt-Commercial OR GPL-3.0-only
Also, LGPL and non LGPL should not be mixed in a given directory
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I7a0438d9b006910de0b1491b8379f66f44b795da
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Introduced by qtbase/e1f45ad8187947e243c8247c5cbac2d884d68d55.
Amends 9b130f43b39e8bd0412530ab5b531d21eedaa4a4.
Task-number: QTBUG-121823
Change-Id: I0ce26d7ca5e3cfbf16a265c56cea96ee45073375
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The \relates command is used for C++ entities in the global scope to
associate them with a page-generating Aggregate (class, namespace, or
a header file).
The \relates command is a meta-command, processed after all the
topic commands (in the same source file) are handled. However, if the
\relates command referred an aggregate that does not exist (because
its documentation is in another file, yet to be processed), we ran into
problems: QDoc created a new ProxyNode to serve as the location to
generate the the related node's documentation to. After the proxy node
had been created, all subsequent associations were tied to that proxy,
even after the real aggregate's node had been created and added to the
tree. An output page was generated for the proxy, but it often ended
up being orphaned.
In practice this was only a problem for header file aggregates, as
they are the only 'relatable' node type not constructed by
ClangCodeParser during pre-compiled header generation, but later
during the processing of documentation comments (\headerfile topic).
Recent changes to the order of processing topic and meta-commands
unmasked this issue with the current documentation sources, but the
implementation was always fragile.
To fix, add a new post-processing step that handles \relates arguments
after all sources have been parsed. This must be done before calling
Aggregate::normalizeOverloads() as the related non-member functions
have an effect on overload ordering.
Remove remnants of the undocumented ability to allow multiple \relates
commands in the same topic - it was defunct and can be re-introduced
with a proper implementation.
Fixes: QTBUG-123622
Change-Id: I9b85d9c9447825d17d4a4dd345c811dfecfb2411
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When deciding whether to output a warning when Clang fails to tie an
\fn signature to a declaration, information about how the base class
is documented is required. Specifically, for classes that are marked
\internal and therefore do not generate output in a standard build,
QDoc omits subsequent warnings for that class's member functions.
This information is no longer available when parsing an \fn topic,
as 'internalness' is meta-information that gets assigned to entities
in a later step.
Introduce a new structure to collect information about parsing
failures, and have ClangCodeParser::parseFnArg() return a variant;
either a matched Node pointer or an error (FnMatchError). This
error contains sufficient context to process it and generate a
warning later on.
Store these errors that occur during topic command processing into a
vector, and handle them after the nodes have also completed
meta-command processing.
The new mechanism can be utilized for consolidating the handling of
multiple types of parsing failures into a central location; for now,
start with match failures for \fn.
For match failures, improve the logic of resolving the parent of a
function from a string representing the function signature; allow
both classes and namespaces, and check the entire parent chain for
the \internal command. Instead of ad-hoc string parsing, use a
regular expression for resolving the scope of an \fn signature.
Simplify the phrasing in the warning message related to \fn matching
failures.
Fixes: QTBUG-123084
Change-Id: I3478774e9141275ad8a043f643850096a146fa1c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: I376ea22699b60bc41cf99f4ea43afda6a139385c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Add information about configuring output formats and location
information to the qdocconf section for new tests, as this can be
surprising or easily forgotten about.
Task-number: QTBUG-119500
Change-Id: Ie6fb7b8eabfa4483d777c0438755d8b93f651c48
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure that test data is properly separated from test configuration
and expected output by moving test data into a `src`
subdirectory. This has an added benefit of ensuring uniform structure
for all test cases.
Task-number: QTBUG-119500
Change-Id: Iea8bc1d84f1b80b6b7f77a23330793d4cfa78891
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QtHelp][QHelpEngineCore] Remove the old hack with
setting the dynamic "_q_readonly" property to change the read only
mode. Use QHelpEngineCore::setReadOnly() instead.
Use public QHelpEngineCore::setReadOnly() instead.
The hack had to still exist around when the amended
change was done so that it was still available for Qt 5 series.
Now it's not needed anymore.
Amends 15d7a30d41b423846fc74d9dd252c1e2a84769e2
Change-Id: I79e23850dc597db19f0da8b4dfec9fde4b529a35
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When QDoc generates the output for a page, the page may contain
multiple `\sectionN` commands. These commands take a string as input,
which becomes the title for the following section of text. If a
section title is duplicated, they must have a unique `id` HTML
attribute to be correctly linkable entities.
This is achieved by extending `Tree::populateTocSectionTargetMap`.
This method iterates over the Atoms that represent the table of
contents for a given Doc for a Node. Ensure that the TOC consists of
uniquely identifiable entries in case of name collisions, such that
QDoc can generate correct output for all such references in a given
document. For section titles that collide on a given page, unique
section references are generated for all but the first instance.
These unique references are then appended to the
Atom::SectionHeadingLeft that follows the Atom being processed, for
later retrieval.
Tree::refForAtom is modified such that, for both Atom::SectionLeft
and Atom::SectionHeadingLeft, the behavior is ensured to be the same.
This is made possible by the fact that these Atoms appear in tandem.
For Atoms of type Atom::SectionHeadingLeft, return the second entry
of its stringlist if its length is two, as that indicates that a
unique reference has been appended to the Atom being processed.
Modify the generator subclasses to account for the new behavior, by
calling the modified Tree::refForAtom to obtain the correct reference
for the Atom being generated.
Add E2E test case for unique anchors for duplicate section titles.
Fixes: QTBUG-122261
Change-Id: I53b4871c31224210b5e9a7cbf3c5df7dec6df8a2
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Turn the conditional into a switch statement, to prepare for upcoming
changes to the method. Add an assertion on the Node* argument. Update
method documentation.
Task-number: QTBUG-122261
Change-Id: I63952e59eef43d0c62669f6e84d8a9a900457474
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`Tree::resolveTargets` is responsible for ensuring the maps
`m_nodesByTargetRef` and `m_nodesByTargetTitle` are correct. The
implementation details for the various tasks clutter reading the
algorithm.
Extract the code responsible for adding targets (defined with QDoc's
\target command) associated with the Node being processed to the maps.
Task-number: QTBUG-122261
Change-Id: If0ab471003267ab41a229ac4bf81e0eae882ad81
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`Tree::resolveTargets` is responsible for ensuring the maps
`m_nodesByTargetRef` and `m_nodesByTargetTitle` are correct. The
implementation details for the various tasks clutter reading the
algorithm.
Extract the code that adds keywords (defined by QDoc's \keyword
command) associated with the Node being processed to the maps.
Task-number: QTBUG-122261
Change-Id: I5d11b8d64680046f57468871b682868318be04ac
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`Tree::resolveTargets` is responsible for ensuring the maps
`m_nodesByTargetRef` and `m_nodesByTargetTitle` are correct. The
implementation details for the various tasks clutter reading the
algorithm.
Extract the code that is responsible for populating the maps for
each section in the table of contents of the Node being processed.
Task-number: QTBUG-122261
Change-Id: I72b9698b2b848bd58eade95981aae2144b536fdc
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`Tree::resolveTargets` is responsible for ensuring the maps
`m_nodesByTargetRef` and `m_nodesByTargetTitle` are correct. The
implementation details for the various tasks clutter reading the
algorithm.
Extract the code that's responsible for ensuring that each unique
PageNode is stored in the `m_pageNodesByTitle` under its title and
delegate to the new method from the call site. As part of the
extraction, replace a manual loop with a call to the std::any_of
algorithm.
Task-number: QTBUG-122261
Change-Id: I391da5bc38d64e6a737a0c77874c9683cce50f48
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
| |
Add `Atom::append` which appends its argument to the list of strings
held by the Atom.
Task-number: QTBUG-122261
Change-Id: I415a0a151b20cb4e39125fd078279641720e6b44
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: Ib60247eec4db96b8f1b9819571ce0a681e1c9b00
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Tree::refForAtom is arguably ill-placed in Tree.
For now, turn it into a public static, in preparation for
changes in HTMLGenerator that will require access to it.
Task-number: QTBUG-122261
Change-Id: I17bf0207e0b61d832006ceb28c8553407f466d64
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The method `Atom::appendString` operates on a member string list.
However, it doesn't append a string to the list; it concatenates its
argument with the first string in the list. Rename the method to
reduce ambiguity and pave the way for a method that actually appends a
string to the list of strings.
Task-number: QTBUG-122261
Change-Id: I68fa9401e2180c49121f1d2c9853ca149c98cd76
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
Substitute C-style cast with static_cast, and apply curly braces to an
else clause that was in violation of Qt's code style.
Change-Id: Ifd5cbb56c91837da4886d60340ed580a984daa9f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-121823
Pick-to: 6.7
Change-Id: Ic5f13e05ea7f836bb99acdef106c973b0a70a170
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Rename the old string-based editor to XDG an add a new editor
for the enumerations.
Task-number: QTBUG-121823
Pick-to: 6.7
Change-Id: Ib619c76d1406a1173b9eff902356f020b507057e
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Rename the old string-based editor to XDG an add a new editor
for the enumerations.
Task-number: QTBUG-121823
Pick-to: 6.7
Change-Id: Iac32aaa75b558f564bb0add4a4747b5ac656eb6f
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-121823
Pick-to: 6.7
Change-Id: I4c838b469f925ab924d94520cb786114c86e3182
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Node::isQtQuickNode() returned true for any QML node under
a module named "QtQuick". The reason why modules needed
special handling based on their name is lost to history.
Get rid of isQtQuickNode() and the code that uses it.
Change-Id: Ia0334b9a16a07bedecd51f9428733f840f8bd913
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`CodeParser` is a legacy inheritance-based interface for components that
needs to parse a source file.
Recent changes to the code-base moved some of those components to a new
interface so that `CodeParser` is not required anymore.
Hence stop `PureDocParser` from inheriting from `CodeParser`.
Some unused methods that were inherited from `CodeParser` and are unused
were removed.
Task-number: QTBUG-111686
Change-Id: Ie2bf7b0d761750193fdb6d4d13558c6354b4939c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`CodeParser` is a legacy inheritance-based interface for components that
needs to parse a source file.
Recent changes to the code-base moved some of those components to a new
interface so that `CodeParser` is not required anymore.
Hence stop `ClangCodeParser` from inheriting from `CodeParser`.
Some unused methods that were inherited from `CodeParser` and are unused
were removed.
`ClangCodeParser` makes use of a `QDocDatabase` that was previously
obtained from its parent class.
The dependencies is now made explicit and handled as part of the
constructor.
Task-number: QTBUG-111686
Change-Id: Ie4174175f669703cc1aa3fc954efe6f9a1314367
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When QDoc parses a project it parses its code-base to extract and
sanitize the user-provided documentation.
Due to recent changes that aim to simplify some upcoming optimization
changes, the way that QDoc handles certain source file lost some
abstraction leading to intermediate duplicated code.
Now that some further changes around this handling were introduced we
can reduce the deduplication and prepare the code-base for further
changes.
A new component, `SourceFileParser` was introduced, that takes care of
dispatching a source file that should be parsed to the component that is
able to parse it.
The code in the main loop that takes care of parsing source files was
modified to make use of the new component.
Some related code was modified in the main loop to better support the
new code and the new flow of data.
Task-number: QTBUG-111686
Change-Id: I5d4a15c62f6563d29abf883a7f71c720040d4577
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When QDoc processes a project, it parses its code-base to obtain and
sanitize the user-provided documentation for the project.
For projects that makes use of C++ code, QDoc uses Clang's APIs to
obtain the required information about the code-base.
Profiling shows that calls to Clang are the major bottleneck in QDoc at
the current time.
To reduce the time spent by Clang, QDoc is being moved to parallelize
and batch certain operations that are related to Clang calls.
`ClangCodeParser`, the component responsible for all of the calls to
Clang libraries, is currently architectured in a way that is not usable
for those optimization purposes.
Hence, it is slowly being modified to be better suited for those
purposes.
As part of those modification, we expect `ClangCodeParser` to be split
into multiple components.
Currently, `ClangCodeParser` is the entry point to a series of
operations that happen in different phases and have very different
restriction on their scopes and their dependencies.
To fullfill and simplify the parallelization efforts, those operations
are being split up to so that we can reorganize their order and
restrictions.
When QDoc parses a project, it extracts the user-provided block-comments
that comprise the documentation.
Later, it processes them in multiple ways.
For example, it ties a documentation block to a `Node`, an internal
representation for documentable elements, by examining the usage of "topic
commands" in the block.
For "\fn" commands, which are used to document a C++ callable, QDoc
makes calls to Clang's APIs to parse the argument of the command so that
it can later compare it to the internal representation that QDoc built
of the code-base.
This is performed by `ClangCodeParser::parseFnArg` which is called by
`CppCodeParser`, which is the component responsible for processing
documentation blocks.
`parseFnArg` calls are intended, later on, to be batched for performance
reasons, albeit they are not expected to be parallelized at this point.
Hence, we move `parseFnArg` out of `ClangCodeParser` to simplify those
feature developments by having more control over which parts of
`ClangCodeParser` receive which changes.
`parseFnArg` was removed and replaced with the call operator of a new
class, `FnCommandParser`, a component that will only take care of
processing "\fn" commands.
`CppCodeParser`, which depended implicitly upon `ClangCodeParser` to
call `parseFnArg`, was modified to depend on `FnCommandParser`
explicitly.
The main loop of QDoc was modified to create and pass around an instance
of `FnCommandParser` as needed.
Task-number: QTBUG-111686
Change-Id: I517bd0d62b348ca39c4a8c10c4c2d78ab7c5ae15
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When QDoc processes a project, it parses its code-base to obtain and
sanitize the user-provided documentation for the project.
For projects that makes use of C++ code, QDoc uses Clang's APIs to
obtain the required information about the code-base.
Profiling shows that calls to Clang are the major bottleneck in QDoc at
the current time.
To reduce the time spent by Clang, QDoc is being moved to parallelize
and batch certain operations that are related to Clang calls.
`ClangCodeParser`, the component responsible for all of the calls to
Clang libraries, is currently architectured in a way that is not usable
for those optimization purposes.
Hence, it is slowly being modified to be better suited for those
purposes.
As part of those modification, we expect `ClangCodeParser` to be split
into multiple components.
Currently, `ClangCodeParser` is the entry point to a series of
operations that happen in different phases and have very different
restriction on their scopes and their dependencies.
To fullfill and simplify the parallelization efforts, those operations
are being split up to so that we can reorganize their order and
restrictions.
When QDoc parses the code-base of a C++ project, it builds a PCH to
speed up the various compilations it performs.
This is done in `ClangCodeParser::buildPCH`.
The PCH is then saved as an internal state of `ClangCodeParser` and
reused by different parts of the code-base.
Those external dependencies that the PCH create, can cause problems with
regards to the ongoing parallelization efforts so that `buildPCH` is now
moved outside `ClangCodeParser`.
The free function version of `buildPCH` now returns a record that
contains the necessary information to work with the PCH, which will
later allow us to pass this information around to the required
components without posing any restriction of `ClangCodeParser` or the
file-parsing process.
The signature of `buildPCH` was modified to obtain all the required
dependencies, which were provided by instance-members of
`ClangCodeParser` before, at call-site.
The implementation for `buildPCH` was modified to make use of the new
arguments instead of the instance members.
The structure of `buildPCH` was slighly modified, in a semantic
preserving manner, to be better suited to a value-returning function,
compared to the previous structure which was built around the function
not returning any value.
The instance member of `ClangCodeParser` that stored the PCH information
were removed in favor of a new member, `m_pch`, that is compatible with
the new information structure.
The constructor for `ClangCodeParser` was modified to be able to obtain
the built PCH at instance-creation time to support the now separated
`buildPCH` format.
The main loop of QDoc was modified to support the new structure.
The code taking care of building the PCH was modified to support the new
structure and was moved around as it now should be run before an
instance of `ClangCodeParser` is obtained.
The construction of the currently single `ClangCodeParser` instance was
modified to make use of the value obtained by a call to `buildPCH`.
`buildPCH` implicitly depends on `QDocDatabase`, a mutable singleton
that owns the internal representaton of a code-base that QDoc builds
when parsing the PCH and other source-files.
Hence, the code taking care of the initialization of `QDocDatabase` was
moved around in the main loop as it needs to be processed before
`buildPCH` is called.
One of the operation required to initialize the `QDocDatabase` instance
implicitly depends on the `Generators`, the components that take care of
building and writing the final output documentation and which follow a
"singleton" like lifetime, initialization.
Thus, the code that initializes the generator was moved around in the
main loop to respect the required order.
Task-number: QTBUG-111686
Change-Id: I894f900dc507142495abdb636d68f59eafbcd194
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `comprehensiveproject` test case included two QML types that both
referred to the same C++ class with `\instantiates` command.
This resulted in variance in output based on the order of parsing the
source files.
Remove one of the conflicting commands.
Change-Id: Ib398725db7aef9049ac02b519d7ea9c33f7b5623
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
| |
Fixes jumping to QML properties
Task-number: QTCREATORBUG-30625
Pick-to: 6.7
Change-Id: Iad9fa3d8f595726328db5b11ae6d2b29ae960e01
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all tests file should be
LicenseRef-Qt-Commercial OR GPL-3.0-only
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I5cad5b00a1455282685731d35b12887ad6819bca
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all tools files should be
LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7 6.7.0
Task-number: QTBUG-121787
Change-Id: I7b69118185d4237ec096dc76e78ee84c2ccd5eb2
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all module and
plugin files should be
LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
or
LicenseRef-Qt-Commercial OR GPL-3.0-only
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I92aad08f60670faeb4396d717bd3719382dd41a7
Reviewed-by: Tino Pyssysalo <tino.pyssysalo@qt.io>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
| |
Last use of this code was removed in c14e73f3c1016a38c
Change-Id: I7c984872adc0c7f5bb61ce077fb67d4f5aba7109
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: If1e77f32b87cbad9480191fb61a569d5e55ec8cf
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Check the return value of QFile::open before proceeding further.
Also, we don't need to return a CodeMarker; no caller uses it.
Change-Id: Ibf12c7e30f0b846a1823a1fdac78eef60105a8bb
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the new ending it is the file is identify as a tool
according to the rules in QUIP 18-[1]
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I8ce307079d37a27046afac8d9f96c095ec1effab
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all examples file should be
LicenseRef-Qt-Commercial OR BSD-3-Clause
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I1b15be4279c9c85b8d6275aa0cd663a8b9f8dca1
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all documentation files should be
LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: Ifedcaf2716ca6bf5b69d373a7ddf7ec5085384b3
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `properties` test was already moved from `tst_generatedOutput`
into `tst_validateQdocOutputFiles`. This change modifies the latter
such that it includes the source for this particular test case, and
removes the case from the former.
Task-number: QTBUG-119500
Pick-to: 6.7
Change-Id: Iff241b15ca428ff5077a8bd050ad0a9891eb3031
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc now has better test infrastructure. Move a trivial test project
from `tst_generatedOutput` into `tst_validateQdocOutputFiles` and
adjust expected output accordingly.
Task-number: QTBUG-119500
Pick-to: 6.7
Change-Id: I122d2aa901d7b8640df3506b89fa559b2742064d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc's new `tst_validateQdocOutputFiles` provides better
infrastructure for testing output generated by QDoc than
`tst_generatedOutput` does. Move the test data for the `dontdocument`
test case of the latter into the `comprehensiveproject` of the former,
and modify the expected output accordingly.
Task-number: QTBUG-119500
Pick-to: 6.7
Change-Id: Ib8ca88ff2e7545c60920b0042c6d8b944ea54722
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|