| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The command \details generates a collapsible <details>
element with a <summary> to control the hidden/visible
state.
The idea behind this is to provide more information with
less text on our main pages.
For output formats other than HTML, the details are
rendered as a normal paragraph and the summary string
is ignored.
Pick-to: 6.5
Change-Id: Id5daddd4854f22b9ceaa9a55b98af94a1ba06039
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: I72e4e2e439f3352e25df48d6b4afd53b8addfaba
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ie516cfdf0f5125f4d933017eef32a425b67a7d8a
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Pick-to: 6.5
Task-number: QTBUG-112841
Change-Id: I1d7f394c52f609302711da2dcd71df9fe8ad8e88
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Projects with cmake_minimum_required(VERSION 3.19) or below, so with
no support for the CMP0118 policy, failed to configure when
translations were added in a subdirectory scope different from
the target scope.
qt_add_translations adds qm files to resources, that in turn calls
_qt_internal_expose_deferred_files_to_ide which adds the qm files
to the target sources.
Because qm files are created using add_custom_command, which by default
marks the files as GENERATED only in the directory scope of the
command (unless CMP0118 is set to NEW), that causes add_executable to
think the qm files are not generated, and error out with
"Cannot find source file:".
Explicitly set the GENERATED flag in the target directory scope to
avoid the issue when using CMake 3.18+.
The error still happens with CMake 3.17 or lower, but that's not the
only error that happens. Just adding resources in a different
subdirectory without exposing the source files already fails, and
that's not something we can really fix without a newer CMake version.
Pick-to: 6.5
Fixes: QTBUG-112841
Change-Id: I79eced94ac641a6f9239f3eb721cef5e35f847fa
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc tests are organized into a series of different projects under the
"tests/auto/qdoc" directory.
Many of those projects uses a subset of QDoc source and header files to
perform tests on a subset of QDoc functionalities.
The CMake target description for those projects refers to those required
files through the use of relative paths, going back up and down the
filesystem structure to the "src/qdoc" directory and the files
themselves.
Due to a recent change in QDoc directory structure, those relative paths
were broken, breaking the tests as a consequence, thus requiring
modification to test projects' "CMakeLists.txt" files to align to the new
structure.
While we don't expect QDoc directory structure to change often, we can
reduce the friction of doing so in the future by centralizing the
definition for the base path of those relative paths.
To do so, "tests/auto/qdoc/CMakeLists.txt", the "parent"
"CMakeLists.txt" file to QDoc's test projects, was modified to provide
two variables, `QDOC_SOURCE_DIRECTORY` and `QDOC_INCLUDE_DIRECTORY`.
Both variable refer to a suitable path that can be used as the base for
finding source file and header files, respectively.
The "CMakeLists.txt" files for the affected test projects were modified
to use `QDOC_INCLUDE_DIRECTORIES` in the `INCLUDE_DIRECTORIES` property
for their test target, replacing the relative path to the QDoc source
directory.
Similarly, they were modified to use "QDOC_SOURCE_DIRECTORY" as the base
path for the inclusion of C++ source files under the `SOURCES` property
of their test target.
Some of the test project target included certain used headers files
under their `SOURCES` property.
As the availability of those headers is implicit under the provided
`INCLUDE_DIRECTORIES` property of the target, all paths to headers files
were removed from under the `SOURCES` property.
Albeit a restructuring such as the one that was performed would still
break the tests configuration, having a single place of failure to
change is expected to alleviate the issue.
Change-Id: I9f0bd42a61a7dd436d70e19e7d38820bf9b54662
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: Ie31560355df18a300c01832befdcdc4b2a37e920
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Moving the QT_END_NAMESPACE before the #endif of the include guard.
Pick-to: 6.5
Task-number: QTBUG-109394
Change-Id: I13f8e71aca28b8dacbe00d7006f4e7ef807a9904
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc includes a number of attributes when generating index files.
Internally, QDoc uses the `FunctionNode` data structure to represent
invokables. This data structure includes the return type for the
function or method such a node represents. However, not all invokable
entities that are represented internally as a `FunctionNode` carry a
return value. This applies in particular to preprocessor macros in C
and C++.
When generating the index files. QDoc writes an empty `type=""`
attribute for `FunctionNode`s that represent a macro. When reading
the values back in, the value for the `type` attribute defaults to
empty is the attribute is missing. Therefore, writing this out in the
first place leads to unnecessary clutter in the index files.
This change modifies QDoc's behavior such that these attributes are only
written to the index file if they exist. Test data for the
`generatedOutput` test is updated to reflect the new content of the
index files covered by that test.
Task-number: QTBUG-112494
Change-Id: Id6e3a730cbde098068029af1ebf9fa17bd2a4441
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc offers the `\qmltext` and `\endqmltext` command pairs, dating back
to sometime prior to when QDoc moved to qttools.git in 2015.
The commands have since been considered tags not to be handled
specifically when generating documentation. The commands have not been
documented.
Upon inspection of source code across Qt and its modules, no usage of
the commands have been found, with the exception of the generated
output test for QDoc itself.
Even though unused and considered "only tags", the `Generator`,
`HTMLGenerator`, and `DocBookGenerator` classes still implement methods
to handle them and generate output for them. The removal of the
commands therefore necessitates removal of the methods that deal with
them. As the command pair is unused, removing the related code is a way
to reduce the surface of QDoc's generator classes, making them slightly
better suited for testing. This also improves the maintainability of
QDoc.
This change thus removes the commands and the related `Atom`s, as well
as any method designed to deal with those `Atom`s. In addition, the
test data and expected output for the generated output test is modified
to accommodate the behavior change.
Fixes: QTBUG-112764
Change-Id: I2b0a57783ccdccd3e8c1693e6946ecf07777f3b6
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the WebXML generator was revived in 2017, a case for handling QML
atoms in the method `WebXMLGenerator::addAtomElements` was added under
an `#ifdef QDOC_QML` guard. This is, according to esteemed historians,
a remnant from the old Qt 4.7 implementation of the WebXML generator.
However, since the revival, the define wasn't ever set by anything in
neither QDoc nor the build system, effectively rendering this code
unreachable.
This change removes the `#ifdef [...] #endif` block, as removing the
unused code won't lead to behavior change of QDoc.
Task-number: QTBUG-112764
Change-Id: Ib9b50d4831e86c60de05065d315f421ae2289f64
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
"qa-table.png" is currently unused in the containing documentation.
Supposedly it showed an old feature of QDoc that is now not available
anymore.
Hence, it is now deleted.
Change-Id: I043f718a0f298d4f57e1bf897ab6d51fd51eee88
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.5
Change-Id: If0aff3c1a767e6830f5480f57dfe82a66feb124c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
| |
Change-Id: I61ca0226fdc4a696453e18c0ae82aecfb31047f6
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc development under the "qttools" repository is currently performed
under the "src/qdoc" directory, which contains all source files and
directories relevant to QDoc as direct children.
Due to a slow restructuring of how QDoc works, what its dependencies are
and certain possible architectural changes, the infrastructure that is
expected to be required for the development of QDoc might increase.
Some of that infrastructure, which might require some custom effort, is
expected to be developed as "independent" "library-like" sub-projects,
which QDoc depends on.
Albeit developed "independently", such infrastructure would be developed
specifically for QDoc and thus should live "adjacent" to it.
To allow such a structure a new "qdoc" directory was added under the
"src/qdoc" directory. All source files and directory that were
previously children of the "src/qdoc" directory were moved under the new
"qdoc" directory.
This preserves the space for QDoc-related elements and the relative
project structure while allowing some space for "adjacent" projects that
are intended for QDoc specifically.
To support the change, a new "CMakeLists.txt" file was introduced under
"src/qdoc", which dispatches to the "CMakeLists.txt" file in the new
"src/qdoc/qdoc" directory.
QDoc is only built when certain dependencies are found. This is
supported through the use of Qt features at the CMake level.
The "CMakeLists.txt" file in "src", thus dispatched to the "src/qdoc"
directory only when the required features were found.
As "independent", "library-like", entities might not have the same
requirements as QDoc, the "CMakeLists.txt" file in "src" was modified to
always dispatch to the "src/qdoc" directory while the features-check was
moved to the new "CMakeLists.txt" files in "src/qdoc", so as to allow
non-QDoc but QDoc-specific project to have an independent configuration
for building.
Certain test projects in "test/auto/qdoc/" depends on QDoc-specific
source-files to generate their CMake targets.
Those dependencies were generally specified as relative paths.
The additional level in the directory structure invalidated the paths
and, hence, the relevant "CMakeLists.txt" files for those projects were
modified to correctly refer to the new directory structure.
Change-Id: I50c7106614428753544eaba5091e1e44d48fd31d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The \generatelist command already supported listing members of a group
as a simple unordered list of titles/links, but the links were broken
as they always referred to the current document.
In DocBook generator, reuse generateAnnotatedList() for this purpose
as it already has support for outputting simple itemized/unordered lists.
Create a new private enum GeneratedListType to select the list 'subtype'
and clean up the API.
Add simple test case and documentation of the new argument.
Fixes: QTBUG-111575
Pick-to: 6.5
Change-Id: I30e4976cef3b6aa5414aac457844ae5bc0762f3d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit df735050ecd01687f17df8f161c706541319ad05.
While the commit works, it introduces unnecessary complexity to the
processing of the \meta command. The same functionality can be
achieved with the help of a documentation macro.
The commit did contain a bug-fix for the \generatelist command,
which is re-introduced as a separate change.
Pick-to: 6.5
Change-Id: Ie8578baa35cfee210fc52428c610307f51103d22
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The '\meta category' command was used for tagging examples with a
specific category, used in Qt Creators Welcome mode.
As we want to also generate lists of examples belonging to a category
elsewhere in the documentation, replace the command with a macro that
expands to the original \meta command and also adds the example to
a group using the \ingroup command. This way, the category names can
be used as arguments to the \generatelist or \annotatedlist commands.
Pick-to: 6.5
Task-number: QTBUG-112731
Change-Id: I28dfd6d5540dfe540bab942f9e9a93e9c239e206
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: Ic6f1e5d1e2d7468b522ce7d5209cc73c7bb80c5c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: I824511492d64469084237aa8eecbdd33d9faa334
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Pick-to: 6.5
Change-Id: I1a76bf2224795275a8c62cf37144936bda87cbca
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`WebXMLGenerator::startLink` is responsible for writing the WebXML tags
for links. The method takes a pointer to `Atom`, from which a string is
obtained for use in parts of the output. In most locations, the callee
pre-qualifies the validity of the pointer it passes to the method
(e.g. `if (atom) startLink([...]`).
However, there's an exception to this in
`WebXMLGenerator::generateAnnotatedList`, which calls
`Text::firstAtom()` -- that may return `nullptr` -- in the call to
`startLink`. This is considered a valid use-case that occurs when
there's only title/meta commands and no body in the documentation.
In such a case, or if the string obtained from `Atom::string()` is
empty, `WebXMLGenerator::startLink` is designed to fall back to the
full name of the `Node` being processed. However, in the case when
generating a link for an example, `Generator::exampleFileTitle()` is
called to obtain a file name for the example, and the `Atom*` is
dereferenced to obtain a string is input for the latter method. At
that point, the `Atom*` may be an unguarded null pointer.
This change updates the generatedOutput test for QDoc by adding a
minimal documentation project that serves as means to reproduce a bug
that was observed in Qt3D, and fixes the bug in QDoc. The documentation
project is designed such that the preconditions outlined in the first
paragraph are met; that is to say, the structure of the documentation
is such that, for an `Atom` that's constructed while generating the
documentation set, `Atom::firstAtom()` is going to return a null
pointer. The change to the test serves to validate the bug fix as well
as to guard for future regressions.
Avoid the crash that would occur when dereferencing this null pointer
in `WebXMLGenerator::startLink` by checking the validity of the `Atom*`
before dereferencing it to obtain a string used as file title when
generating a link for an example.
Fixes: QTBUG-112641
Pick-to: 6.5
Change-Id: I3633e5473b60013968becac4cd7bdacdbbdcb9ff
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
As a drive-by, extend the list of C++ keywords checked for naming.
Pick-to: 6.5
Change-Id: I37b095d0fa29b9c431b7ad11bb5f962a8eeb5d79
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Fix slot connection, amending
f6c9325f639d882992bb3c6386185defd2090498.
Pick-to: 6.5
Fixes: QTBUG-112682
Change-Id: Idb325f31ed8f454433f4b8d28183a571877972ff
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
| |
Change-Id: I93963f5341faa2a7e400ee85b3a7fb21a0fc66dc
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc includes a number of attributes when generating index files.
Some of these include the default value the attribute has when reading
the index files back in, such that the overall effect of writing them to
the index file in the first place is none at all for QDoc.
For example, for a function that isn't virtual, const, static, final, or
overridden, the index file contains the attributes
virtual="non" const="false" static="false" final="false" override="false"
This change modifies QDoc's behavior such that these attributes are only
written to the index file if they are true. This reduces the size of the
index files generated for Qt by approcimately 7.16%. Test data for the
generatedOutput test is updated to reflect the new content of the index
files covered by that test.
[ChangeLog][QDoc][Index files] QDoc no longer writes the attributes
virtual, const, static, final, or override, to the index files, unless
the attribute is part of a function or method's signature. This reduces
the file size of index files somewhat.
Fixes: QTBUG-112494
Change-Id: I7d25dc429749dd29dbdcd65b7ca78a51ced5dd0f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The index files generated by QDoc contains an attribute for a
function's "virtualness"; that is, if the function is a virtual, pure
virtual, or not virtual. These attributes are written to the index
file if they exist, and read back in, again if they exist. For
functions that do not have this attribute in the index file, a
virtualness of NonVirtual is implicitly assumed.
This change explicitly initializes the responsible member variable,
FunctionNode::m_virtualness, to NonVirtual. Furthermore, the setter
overload setVirtualness(const QString&), which is called only when
reading an index file back in, is modified to handle the special case
for pure virtuals first, then setting m_virtualness to Virtual if
that's the case, and NonVirtual for any empty, missing, or unknown
attributes.
Task-number: QTBUG-112494
Change-Id: I8f08b72ae58dca5da07932f010da230c667b056c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
| |
QDocIndexFiles::generateFunctionSection has a lot going on.
Use extract method as a step to clean up the method and
introduce a level of abstraction to parts of its internals.
Change-Id: If2efbfb10fcd8585c9c2298b2557ac880052a7ac
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The FunctionNode class contains the public method setVirtual().
The method's intent is to set the private member m_virtualness
to FunctionNode::Virtualness::NormalVirtual. This behavior is
achieved, and exercised in QDoc, by calling another method of
the same class, setVirtualness(Virtualness), which offers the
option of passing any value from the FunctionNode::Virtualness
enum, making that API more flexible than that of setVirtual()
which doesn't take any arguments.
As the private member is set in code by a different setter,
and because the setVirtual() method is unused, remove the latter
as dead code.
Task-number: QTBUG-71176
Change-Id: Ieab1fa5b6be92e481fc9df887816fec3f08bbdaf
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The FunctionNode class contains the private member `m_parentPath` and
the associated public setter method setParentPath(). There is no
associated getter method, nor is the member variable ever read.
Furthermore, the setter is never called from anywhere.
Remove the member and setter as dead code. This reduces the public
API of the FunctionNode class and unclutters its internals just a bit.
Task-number: QTBUG-71176
Change-Id: Ic60f89eb5c0c96cf9261a5810a0a8b3e6342e9a1
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
Use the isStringLiteralPrefix function that was introduced in an earlier
commit.
Change-Id: I0095ca45e232639317c6fe6fcfd2ee57fe8b1caa
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fix for QTBUG-73273 already added code to allow prefixed raw string
literals. Now, lupdate supports regular prefixed string literals as
well.
If the parser encounters a prefixed string literal, ignore the prefix
and handle the rest as ordinary string literal.
Note that expressions like tr(U"foo") won't compile out of the box. We
support them nevertheless. The user might provide their own tr macro
that handles such string literals.
[ChangeLog][lupdate] lupdate now supports prefixed string literals like
u"foo".
Pick-to: 6.5
Fixes: QTBUG-59802
Change-Id: Ibe8b4b83ee1197a73678b1e8f37dd6ac7db57714
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's an edge case in the number heuristics of lupdate that triggers a
Q_ASSERT due to an out-of-bounds string character access. To run into
the assert, the following must be true:
- oldSource == oldTranslation
- oldSource must contain a number followed immediately by more than one
characters
- oldSource and newSource must differ only in the character after the
number
Examples that trigger the assert:
| oldSource | newSource |
|------------+------------|
| "%1MiB" | "%1Kib" |
| "1Mi" | "1Ki" |
| "1M " | "1Ki " |
| "123abcde" | "123xbcde" |
Examples that do not trigger the assert:
| oldSource | newSource |
|------------+------------|
| "%1MiB" | "%1Kob" |
| "1M" | "1K" |
| "123abcde" | "123xxcde" |
Add a test case that triggers the Q_ASSERT.
Add a check to avoid the out-of-bounds access as a minimal fix. The
whole number heuristics algorithm is fishy and produces results that
don't match the source code comments. But it's been like that "forever",
so let's not change existing behavior people may rely on.
Pick-to: 6.5
Fixes: QTBUG-111775
Change-Id: Ibb6bcce9115f7060b6de3f97451e38105623c003
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.5
Fixes: QTBUG-112373
Change-Id: Ia2764196c5dd3f9e001f0585279862efbafa91b1
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 454ab5ffd5b07 ff let qtattributionsscanner bail out if the
content of the "Path" and "Files" properties are not valid relative
file paths at the time qtattributionsscanner runs.
For Qt for MCU tough, the relative path to third-party files does
differ between the git checkout, and the source SDK as given to the
user.
This patch, therefore, allows opting out of the check by adding a
--no-path-checks option.
Pick-to: 6.5
Change-Id: I809b52e233a6b56194feb1b5b8168f36ba1b9972
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Recent changes removed the enum value SearchType::Module from the
FindPredicate struct's member enum. This made the switch in the
struct's operator() on `type_` redundant, as the two remaining cases
both result in the same behavior. Remove the switch as it isn't needed
anymore.
Change-Id: Ib2a15de7d4aa9588943a6babb497ec2b970a6290
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
|
|
|
|
|
|
|
|
|
| |
A recent change made the enum value
ClangCodeParser::buildPCH::FindPredicate::SearchType::Private
unused. Remove the enum value and the case that considers it.
Change-Id: If3f4379bdad2339e873e347e422df35871629d38
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Node::setLogicalModuleInfo(const QString &) isn't called from
anywhere. Remove the virtual function from the Node baseclass,
and the unused overridden implementation in its derived class
CollectionNode.
Task-number: QTBUG-71176
Change-Id: I0fa368300f712c33725c87a5c8656bbb34eed398
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: I5c4d5d49aec06bbe56338cfcb2bd78be8f466893
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
The enum class construct can only be based on an integral type so they
can be skipped over safely.
Pick-to: 6.5
Task-number: QTBUG-36589
Change-Id: I9a7dd7508f80002e9e46429de726a75607d21a54
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
As a drive-by, add a 128x128 logo for Designer, as screen sizes grow.
Pick-to: 6.5
Change-Id: I886841c9a6cbc8b6996466d9ca687be6f7eca666
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Resizing to 4/5 of screen dimensions was previously followed
by calling adjustSize(), which immediately overrides the
size assigned to the minimum size that accommodates child
widgets. Reversing the calls makes us both not start outside
the screen as intended and sets the correct size of 4/5 of
screen real estate.
Fixes: QTBUG-112220
Pick-to: 6.5
Change-Id: I7439ee35bb07f448372fbf2f3943475db7095ac5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
ClangCodeParser::buildPCH included a local variable, privateHeaderDir,
which was written to in a loop over the parser's includeDaths private
member, but never read. This patch removes the local variable and loop
from said method, as it is effectively dead code.
Change-Id: Ifae97e0e31074bb4e5d97a427f9392b2526f2f37
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`ClangCodeParser`, the class responsible for parsing Cpp source files
during a QDoc run, uses a PCH to speed up compilation when reading the
above mentioned source file.
A PCH file is built in `ClangCodeParser::buildPCH`.
To avoid redoing the same work more than one time if it is unnecessary,
`buildPCH` branches on certain conditions and does nothing if those
conditions are not met.
To make the code easier to read, move the code that performs the PCH
building operation to the top level of the method body, instead of
branching, and use early returns when the conditions are not satisfied.
Change-Id: I95b07a12bc1723ea7bdaee41367483a61dcb5609
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As part of producing a documentation set, QDoc parses a series of
user-defined input source files in various languages to extract the
user-provided documentation and certain source-code level elements.
For QML source files, the `QmlCodeParser` class is used, taking care of
reading the QML code and build an internal representation for some of
its elements.
`QmlCodeParser` uses the `QQmlJs` parsing api to do so.
As part of using the `QQmlJs` parsing api, `QmlCodeParser` has to build
a `QQmlJs::Engine`, `QQmlJs::Lexer` and `QQmlJsEngine::Parser`.
Currently, `QmlCodeParser` stores the engine element as
an instance member, `m_engine`.
Supposedly, this is intended as a way to avoid building the element more
than once.
Building a `QQmlJs::Engine` more than once does not provide any
meaningful overhead, moreover not in the code path where it is used.
Furthermore, `m_engine` is used only a few times, in
`QmlCodeParser::parseSourceFile`, the entry point for parsing a QML
source file.
Hence, to reduce the scope of `m_engine` and avoid requiring an
out-of-scope initialization for it, `m_engine` is now removed in favor
of a local instance in `QmlCodeParser::parseSourceFile`.
Change-Id: I73f23ec06c1fa3ba3fe50ff4dffc9ff9229c114d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As part of producing a documentation set, QDoc parses a series of
user-defined input source files in various languages to extract the
user-provided documentation and certain source-code level elements.
For QML source files, the `QmlCodeParser` class is used, taking care of
reading the QML code and build an internal representation for some of
its elements.
`QmlCodeParser` uses the `QQmlJs` parsing api to do so.
As part of using the `QQmlJs` parsing api, `QmlCodeParser` has to build
a `QQmlJs::Engine`, `QQmlJs::Lexer` and `QQmlJsEngine::Parser`.
Currently, `QmlCodeParser` stores the engine and parser elements as
instance members.
For example, for the `QQmlJs::Parser` instance, a member
variable `m_parser` is used as storage.
Supposedly, this is intended as a way to avoid building the three
elements more than once.
Building a `QQmlJs::Parser` more than once does not provide any
meaningful overhead, moreover not in the code path where it is used.
Furthermore, `m_parser` is used only a few times, in
`QmlCodeParser::parseSourceFile`, the entry point for parsing a QML
source file.
Hence, to reduce the scope of `m_parser` and avoid requiring an
out-of-scope initialization for it, `m_parser` is now removed in favor
of a local instance in `QmlCodeParser::parseSourceFile`.
The initialization and deletion of `m_parser` in
`QmlCodeParser::initializeParser` and `QmlCodeParser::terminateParser`
was removed as a consequence of the removal of the member.
As `QmlCodeParser::initializeParser` and
`QmlCodeParser::terminateParser` were only taking care of `m_parser`,
their implementation is now removed as dead code.
As `initializeParser` and `terminateParser`are required to be
implemented, by `CodeParser`, `QmlCodeParser` base class, due to their
pure virtual nature, an empty implementation was added to
"qmlcodeparser.h".
Similarly, the constructor for `QmlCodeParser` was only taking care of
initializing `m_parser` and is now removed in favor of a defaulted
implementation.
Change-Id: Id07e6d9cf8083c83482232606fb9a2611dcce420
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As part of producing a documentation set, QDoc parses a series of
user-defined input source files in various languages to extract the
user-provided documentation and certain source-code level elements.
For QML source files, the `QmlCodeParser` class is used, taking care of
reading the QML code and build an internal representation for some of
its elements.
`QmlCodeParser` uses the `QQmlJs` parsing api to do so.
As part of using the `QQmlJs` parsing api, `QmlCodeParser` has to build
a `QQmlJs::Engine`, `QQmlJs::Lexer` and `QQmlJsEngine::Parser`.
Currently, `QmlCodeParser` stores all those elements as instance
members. For example, for the `QQmlJs::Lexer` instance, a member
variable `m_lexer` is used as storage.
Supposedly, this is intended as a way to avoid building the three
elements more than once.
Building a `QQmlJs::Lexer` more than once does not provide any
meaningful overhead, moreover not in the code path where it is used.
Furthermore, `m_lexer` is used only once, in
`QmlCodeParser::parseSourceFile`, the entry point for parsing a QML
source file.
Hence, to reduce the scope of `m_lexer` and avoid requiring an
out-of-scope initialization for it, `m_lexer` is now removed in favor of
an local instance in `QmlCodeParser::parseSourceFile`.
The initialization and deletion of `m_lexer` in
`QmlCodeParser::initializeParser` and `QmlCodeParser::terminateParser`
was removed as a consequence of the removal of the member.
Some comments that mentioned the initialization or deletion of the lexer
were modified to represent the modified code.
Change-Id: I32d38e7883273ab83745eb1f34d183fd5ecca19a
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When QDoc runs it collects a series of input source files based on
certain configuration variables.
The collected input source files are later used as the base for
extracting the user-provided documentation.
The files are collected into a map, in `processQDocConfFile`,
`sources`.
The map uses the same values, file paths that QDoc extracted from the
above mentioned configuration variables, for each key-value pair.
That is, given a file path X, `sources` stores a key-value pair X-X.
Supposedly, the intention of using a map was to avoid duplicates.
Indeed, the code that populates the map avoid inserting elements that
already are present in the map, thus making use of the fast lookup that
the data structure provides.
As half of the map is left unused, indeed only the keys are ever
accessed, we replace the map with a set, which better provides the
required removal of duplicates.
Change-Id: If4de2f1a6c8b45ac138139b7d49b1d0d73ed2c1f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When QDoc runs it collects a series of input source files based on
certain configuration variables.
The files are collected into two maps, in `processQDocConfFile`,
`sources` and `sourceFileNames`.
The collected input source files are later used as the base for
extracting the user-provided documentation.
Nonetheless, `sourceFileNames`, which is populated along with `sources`
was never used and is thus removed as dead code.
Change-Id: Ie02025e8b1054e4a4f3e9235ee1cc2d7631a2935
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Examples in the Qt codebase are now tagged with specific categories,
using the '\meta category {Category}' command. To easily generate
lists of members in each category, add support for a 'category'
argument in the \generatelist command.
Internally, utilize the mechanism already provided by \ingroup command,
by adding the node to an internal group prefixed by 'category', when
processing the '\meta category' command.
\generatelist already supported listing members of a group as a simple
unordered list of titles/links. Fix the generated links as they were
broken, always referring to the current document.
In DocBook generator, reuse generateAnnotatedList() as it already has
support for outputting simple itemized/unordered lists. Create a new
private enum GeneratedListType to select the list 'subtype' and clean
up the API.
Add simple test case and documentation of the new argument.
Pick-to: 6.5
Fixes: QTBUG-111891
Fixes: QTBUG-111575
Change-Id: Icd5647a09b9ae8cb0ac243fa49d3d99263d397cb
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
|