summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* lupdate: Support numeric literal separatorsJoerg Bornemann2022-01-191-0/+7
| | | | | | | | | | | | | | | | | | | Numeric literals that use apostrophes were introduced in C++14 so this adds support for cases like: int d = 10'000'00; int x = 0xAF'FE; This patch allows just any number and combination of apostrophes in numeric literals and doesn't attempt to detect ill-formed literals. We assume, lupdate runs on code that has been accepted by a C++ compiler. Task-number: QTBUG-53326 Change-Id: I23bd9b4c676694dc69199e4a17a612a011449e61 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit c2d1163004078b98abc86318f45a6796aef18811) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Ignore empty lines in the master qdocconf fileTopi Reinio2022-01-031-0/+2
| | | | | | | | | | | | | | | When compiling a master .qdocconf file either manually or programmatically, it's possible to end up with empty lines or a trailing newline in the file. In this case, QDoc fails with less-than-helpful error message. Ignore empty lines. Fixes: QTBUG-99409 Done-with: Luca Di Sera <luca.disera@qt.io> Change-Id: I5157b63bcdbcd65731615fc7bad388a2385d8cfb Reviewed-by: Luca Di Sera <luca.disera@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> (cherry picked from commit 18d293ab75b0b081fc6e236b1549ab83e714ed7d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add binary compatibility files for 6.2.0Milla Pohjanheimo2021-12-083-0/+62759
| | | | | | | | | | | Binary compatibility files added. Change-Id: I2949c246e8614a84a75a6f91463fca81abbf7533 Change-Id: I2949c246e8614a84a75a6f91463fca81abbf7533 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io> (cherry picked from commit 9cd2095095843338970fb1d42c235b5da58126df) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Improve link text formattingTopi Reinio2021-11-038-2/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDoc attempts to style links to C++ functions in a specific way, by moving function arguments and the enclosing parentheses out of the link. This was done in a way that had unintended consequences for all link texts that included an opening parenthesis, whether the link target was a function or not. As a fix; * Increase the specificity of the regular expression used for identifying a function-like link text. * Store the Node we're linking to in generator, so we can match the regular expression only to function targets, not all links. This is also a performance improvement. * DocParser: Stop generating AutoLink atoms inside an open (explicit) link. This was useless as it split the input into multiple nested link->autolink atoms, and the nested ones are discarded/treated as strings in the generator anyway. * Refactor related generator functions and remove obsolete debugging code. Task-number: QTBUG-97949 Change-Id: I89429a73f13aa9995a79dfd24a8e473c620d6bc6 Done-with: Luca Di Sera <luca.disera@qt.io> Reviewed-by: Luca Di Sera <luca.disera@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit b3e367def6ff0f79441507e839c6cc874d4a25fd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Fix assert on empty link targetTopi Reinio2021-10-182-0/+10
| | | | | | | | | | Fixes: QTBUG-97562 Change-Id: I9e2b2b3979f9c0ca22f23a1a5fef5296b2a34a00 Done-with: Luca Di Sera <luca.disera@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Luca Di Sera <luca.disera@qt.io> (cherry picked from commit 0099481761e8c52236aaa3f71d10dad34391e86f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Add styling for \note, \important and \warningTopi Reinio2021-10-166-5/+20
| | | | | | | | | | | | | And add Atom types for Warning instead of simply hard-coding a bold warning note. Fix a compiler warning for tst_generatedoutput in passing. Fixes: QTBUG-97448 Change-Id: I1fe691ffaadc549b17c8628817fe761d3be0fad7 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 8687e163757df00c1e64c15ad63680ed5c2f6937) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qt_add_lupdate: Fix SOURCES and INCLUDE_DIRECTORIES argumentsJoerg Bornemann2021-10-131-0/+12
| | | | | | | | | | Both arguments did not properly set the passed values. Fixes: QTBUG-97389 Change-Id: I686ac6d100dd9cce0b1214568ef01144677e5366 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 23b348e9e9583c8face308e58fcd2ac14f905b4d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Teach Config::getCanonicalPathList() to read include pathsTopi Reinio2021-10-117-0/+45
| | | | | | | | | | | | | | | | | | | | | Include paths must be canonicalized for them to be correct. Previously, the ClangCodeParser did this step, but it was done in relation to the current working directory (cwd), and at that point cwd is the directory of the main (top-level) qdocconf file - if includepaths variable was used in another included config file and contained relative paths, this produced incorrect results. As Config already knowns how to canonicalize paths, teach it to consider the common prefixes associated with include paths. As config variables store their location, we can produce absolute paths reliably in all situations. Document the includepaths and the associated moduleheader variables. Fixes: QTBUG-97034 Change-Id: Iecf68e3cb09ced732f7a05270441da046e8df8d8 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 6ee3cad531e782cf82777a4eca2f93f0469b2791)
* lupdate: Default to absolute locations for message-less .ts filesLucie Gérard2021-10-051-0/+2
| | | | | | | | | | | | | | | | | | | If the .ts file that is to be handled by the CMake command qt6_add_lrelease does not exist yet, the function creates an initial file, which can be used by lupdate as base line. This file is devoid of any messages and the subsequent .ts file will have no locations. Fix that by changing the default of message-less .ts files to absolute. For new files, lupdate already defaulted to absolute locations. Doing that for .ts files without messages seems just consistent. Change-Id: I051761ad916af3affdd70e57e77cc245fd399de1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 5cf27fb76e006a4555af48753e3dab2973af2547) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Replace deprecated QWARN() with qWarning()Edward Welbourne2021-10-041-2/+2
| | | | | | | | | | | The QtTest logging machinery will intercept it and route it to the same place anyway. Change-Id: I257bea3ac54bb2c6b058df5f54f04510aa132cd7 Reviewed-by: Luca Di Sera <luca.disera@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 308ec8a69e232339975bfb0df7901255fe1d4456)
* CMake: Bump almost all cmake_minimum_required calls to 3.16Alexandru Croitor2021-09-228-8/+8
| | | | | | | | | | | | | | Needed for subsequent change that will check and error out if the version is lower than 3.16. We do that to ensure all policies introduced by CMake up to version 3.16 have their behavior set to NEW. Task-number: QTBUG-95018 Change-Id: I1191a6b4b5c13b2b6047a0e2a2ff8c3801f6762b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 6d6a10dff46403b8c3ab043101dc90d39034ff47) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Binary compatibility files for 6.1Milla Pohjanheimo2021-09-033-0/+61529
| | | | | | | | | Binary compatibility files added. Change-Id: I01796815186baf828e626b54ce417972a64a9b38 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io> (cherry picked from commit d6d23d4b8199c088f78fde1631e1db457f8de73a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* lupdate/Python: Add support for extra comments and idsFriedemann Kleint2021-08-302-7/+10
| | | | | | | | | | Fixes: PYSIDE-1376 Task-number: PYSIDE-1252 Change-Id: Ie60f86a6c5a771bcdd2ba455fb86cde3cb8f75e6 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 5217a8553f41d43c21755667f7f05064209ee8f3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Improve function tagging for grouped \fn commandsTopi Reinio2021-08-2312-0/+94
| | | | | | | | | | | | | | | | | | | | QDoc provides a mechanism for tagging specific function declarations in a header with //! [tag] comments, allowing these tags to be referenced in an \fn command. This feature did not work for shared comment nodes containing multiple \fn commands, however. To make this work, we need to associate the 'bracketed args' (where the id tag is) with the command itself - previously it was stored in the Doc instance, but that doesn't work when there are multiple topic commands sharing a doc. To do so, repurpose the ArgLocPair structure to store the bracketed arg instead of a Location, as we never used this particular Location for anything, anyway. Fixes: QTBUG-95948 Change-Id: Ic899d4252d705f84ba56ea201a55f3e5db068f00 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 76fb767296e12235d93da683a7f2feb84a7a6675) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qt6_add_translations: Add OUTPUT_TARGETS argumentJoerg Bornemann2021-07-161-0/+15
| | | | | | | | | | | | | | | | | | | | | Consider a static library that a user wants to ship. And consider embedding .qm files into a resource within this static library. Then the user must ship the object libraries that belong to the resource too. In order to do that, users can specify a variable name in OUTPUT_TARGETS that is filled with the OUTPUT_TARGETS of the inner qt6_add_resource call. Specifying OUTPUT_TARGETS for a target that is not a static library is a no-op. Task-number: QTBUG-95180 Change-Id: I3984ca0082c118fa7516dde252330028f85bf1f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit c7e7b67382146dd91727c773db4e745d1b57e580) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* lupdate: Support PythonFriedemann Kleint2021-07-073-0/+95
| | | | | | | | | | | | | | Port over the parser from pyside2-lupdate, remove the encoding and clean it up with clang-tidy. Add a test. [ChangeLog][lupdate] lupdate now supports Python. Task-number: PYSIDE-1252 Change-Id: Id64e7a4be90e66aad154d0546e48cf1a88e5cb3a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 7bd1a834e048f2ecb68411e43d2a2681604955a5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* lupdate/clang: Correct testing of skipped code warningLucie Gérard2021-07-021-1/+1
| | | | | | | Change-Id: I705df3115a29d59e1ca4736ddadd0f4ec5f9bd01 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 839342579c1cbc5a7826b7bef19b7a8b7f8b6d1b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* lupdate/clang: Add test for same line commentsLucie Gérard2021-07-023-0/+99
| | | | | | | Change-Id: I340f75cbf02d82a70d264e52386e10327acafee9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 6a706c7e0c7ae32d1943a5b355649f7af0f4adae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* lupdate/clang: Add test for isolated commentsLucie Gérard2021-07-024-0/+199
| | | | | | | Change-Id: I7c008cfa58cbe91f73caa34c0bd9dc9f1d3865e5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 658b9787d71e35ebecfbb962f37c4486a8c2246c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Clean up index file generationTopi Reinio2021-07-0113-65/+4
| | | | | | | | | | | | | | | | | | | | | This is a continuation of the work started in commit 3e88b552. Stop adding a 'physical module name' for all nodes; this name is directly related to the \inmodule and \inqmlmodule commands, and is unnecessary for most node types. Enforce the module name only for classes, structs, unions, namespaces and header files. Drop redundant code, and stop writing module/group members to the index as unnecessary; they don't need to be read back in. Simplify example file name generation; base the filename always on the project name, example nodes typically never used the \inmodule command anyway. Change-Id: I53a12b51f305cce28f5eb061d87ab11c61f54f6c Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 9e044490a6883c0aa0f6c91edfd04be6f083a5c1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add test files for QT_TR_NOOP contextLucie Gerard2021-06-307-1/+486
| | | | | | | Change-Id: I7cf76aa8ff774c8eff7956739909104dd390f6a8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 62a3420631881d0b651358de07c3a0854b1b9b1d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix the name of Tools module in testsAlexey Edelev2021-06-221-1/+1
| | | | | | | | | | | The name of internal Tools module remain untouched. Need to remove the 'Private' suffix where it's used. Fixes: QTBUG-94613 Change-Id: Ibd82436ec18f217f965168ac6a262032c033483d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 8e7a396db047f617c3629ef768729d98e3604dc0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qt6_add_translations: Add a way to create a resource with .qm filesJoerg Bornemann2021-06-181-0/+6
| | | | | | | | | | | | | | | | When RESOURCE_PREFIX is specified, a resource is created that contains all .qm files. The resource uses the specified prefix. Typical usage of the function is: qt6_add_translations(my_app TS_FILES my_app_de.ts my_app_no.ts RESOURCE_PREFIX "/translations") Change-Id: I79aa5bb37514c18c75bfba7a3173f2cf5ab047c9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit f7766a3ab3b3ed3b1d29ea9ff9f5c48b42099ead) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qt6_add_translations: Fix glitch in QM_FILES_OUTPUT_VARIABLEJoerg Bornemann2021-06-181-2/+2
| | | | | | | | | | | That variable only worked if the passed variable name was 'qm_files'. This amends 1197f8e5467b6785ba3d6accb68cb4410356c373. Change-Id: Ic51d0b84a453151885f090e5b31c17af77113a06 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 305b2fbbd824ec9a9e4b77490a93d8864b42a6dc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Adapt and run the lupdate tests for the clang-based lupdate tooJoerg Bornemann2021-06-1797-400/+3289
| | | | | | | | | | | | | | | | | | | We now run the lupdate autotests once with the "classic" lupdate and once with the clang-based lupdate, if Qt was built with clangcpp support. Most of the source code need to be made compilable as the new parser can only run on compilable code. In some cases the results for the new parser are expected to be different. In such case a dedicated directory is created. lupdate/clang prints warning messages with native separators. Adjust our test data to accept paths with slashes or backslashes. Task-number: QTBUG-87090 Change-Id: I526137f7f918461939efed57b25378109a273615 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit d012c2f69cffadb8d34733156eacf08a5a77d1be) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make tst_lupdate's good/backslashes test compilableJoerg Bornemann2021-06-172-5/+6
| | | | | | | | | | | This is a prerequisite for running this test with lupdate's clang parser. Change-Id: I2fdae249ab32daea9bb24dbd8a9d8f3b24e0e46f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lucie Gerard <lucie.gerard@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io> (cherry picked from commit d709930315efcdaae23d3800c164978b5da73742)
* qdoc: Stop documenting ignored nodesTopi Reinio2021-06-1711-35/+38
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* CMake translation API: Add way to get hold of generated .qm filesJoerg Bornemann2021-06-151-2/+31
| | | | | | | | | | | | | | | | | | | | | | | Add the argument QM_FILES_OUTPUT_VARIABLE to qt6_add_lrelease and qt6_add_translations to extract the paths of generated .qm files. That is needed to be able to further process these files. Example usage: qt6_add_lupdate(myapp TS_FILES foo_de.ts) qt6_add_lrelease(myapp QM_FILES_OUTPUT_VARIABLE qm_files TS_FILES foo_de.ts) install(FILES "${qm_files}" DESTINATION "translations") or qt6_add_translations(myapp TS_FILES foo_de.ts QM_FILES_OUTPUT_VARIABLE qm_files) install(FILES "${qm_files}" DESTINATION "translations") Change-Id: I88622e8fe2fd76943d868340214739a3f1249a85 Reviewed-by: Craig Scott <craig.scott@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 1197f8e5467b6785ba3d6accb68cb4410356c373) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qdoc: Drop 'module' attribute from the index for page nodesTopi Reinio2021-06-147-9/+9
| | | | | | | | | | | | | | | 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>
* qdoc: \generatelist: Ensure we link to the main namespace referenceTopi Reinio2021-06-1418-5/+203
| | | | | | | | | | | | | | | | | | | | | | 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>
* qdoc: Fix incorrect parameters generated for QML signalsTopi Reinio2021-06-105-0/+32
| | | | | | | | | | | | 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>
* CMake: Introduce new lupdate/lrelease APIJoerg Bornemann2021-06-035-1/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new CMake API for lupdate and lrelease which is target-based and aims to replace qt6_add_translation and qt6_create_translation. qt6_add_lupdate(my_app TS_FILES app_de.ts) does the following: - retrieves the sources from target my_app - adds the target my_app_lupdate to create/update .ts files - add the target update_translations to build all such *_lupdate targets qt6_add_lrelease(my_app TS_FILES app_en.ts) does the following: - adds the target my_app_lrelease to create .qm files - adds my_app_lrelease as dependency to my_app such that .qm files are automatically updated. - add the target release_translations to build all such *_lrelease targets qt6_add_translations(my_app TS_FILES app_en.ts) does all of the above with one call. The creation of the update_translations and release_translations targets can be prevented. Fixes: QTBUG-76410 Change-Id: Ibc8ed66e6cd3875447f4cf07d944227678997107 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Move qtattributionsscanner to libexecKai Köhne2021-05-311-1/+1
| | | | | | | | | | | | | The tool is only used for building the Qt documentation, and not documented. This requires a follow-up patch in qtbase. Pick-to: 6.1 Task-number: QTBUG-88791 Change-Id: I4a37249087a890e7fdb47ed6a2d89daec43d74dc Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QDoc: clean up html outputPaul Wicking2021-05-2545-168/+182
| | | | | | | | | | | | | | | | | | 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>
* QDoc: Improve Text::operator<<()Paul Wicking2021-05-2035-35/+0
| | | | | | | | | | | | | | 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>
* qdoc: Skip multi-line descriptions of enum values marked with \omitvalueTopi Reinio2021-05-124-4/+15
| | | | | | | | | | | | | | | 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>
* qdoc: Remove unused files from generatedoutput autotestTopi Reinio2021-05-1018-974/+0
| | | | | Change-Id: I71489d8736d7977eb8425b06050a8f81c32cc430 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Doc: Improve \deprecated commandPaul Wicking2021-05-1018-13/+74
| | | | | | | | | | | | | | | | | | | | | | 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: Remove Node::Obsolete statusTopi Reinio2021-05-109-34/+34
| | | | | | | | | | | | | | | | | 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>
* qdoc: Check if the module version no. is emptyVenugopal Shivashankar2021-05-0815-6/+160
| | | | | | | | | | | | | | | 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>
* qdoc: Remove defunct command \granularityTopi Reinio2021-05-041-2/+0
| | | | | | | | 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>
* Revert "QDoc: Add \deprecatedsince command"Paul Wicking2021-04-3021-103/+38
| | | | | | | | | | | | 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>
* Add binary compatibility files for Qt 6.0.0 for QtToolsMilla Pohjanheimo2021-04-303-0/+61503
| | | | | | | | Binary compatibility files added. Pick-to: 6.0 6.1 Change-Id: Iedda1e8f52ccc1a2cc53c4c1d90b920eb9848e07 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* qdoc: Omit descriptions of enum values marked with \omitvalueTopi Reinio2021-04-301-1/+2
| | | | | | | | | | | 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>
* QDoc: Add \deprecatedsince commandPaul Wicking2021-04-2821-38/+103
| | | | | | | | | | | | | 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>
* QDoc: Stop writing <a name=> html tagsPaul Wicking2021-04-2655-354/+229
| | | | | | | Task-number: QTBUG-73026 Task-number: QTBUG-81209 Change-Id: I47d0fd94141d631abd8ea709c7ef0dc311312375 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* qdoc: Fix linking to scoped enumsTopi Reinio2021-04-238-2/+110
| | | | | | | | | | | 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>
* qdoc: Tag Q_INVOKABLE functions with [invokable]Topi Reinio2021-04-157-1/+38
| | | | | | | | | | 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>
* Revert "QDoc: Make Generator::fileBase static"Topi Reinio2021-04-151-1/+1
| | | | | | | | | | | | | | | | | | | | 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>
* Mark QThread::run overrides in tests to silence compiler warningsVolker Hilsheimer2021-03-302-2/+2
| | | | | | Change-Id: Ie423b0252728070c5dfcc8f8f7a54faf335b7c93 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>