summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bump version to 6.12.0HEADdevJani Heikkinen3 hours1-1/+1
| | | | | Change-Id: I20fdb0f6dfc74f1e9e6e9475fbe49e440b8690eb Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot3 hours1-3/+3
| | | | | Change-Id: Iefa1011bd7c4bf39391b6586da435a9f693bf604 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QDoc: privateheaders test: Explicitly generate private API entitiesTopi Reinio6 hours10-34/+87
| | | | | | | | | | | | The test project assumes private API entities are generated even though `includeprivate` qdocconf variable is not set. Set it explicitly, and replace an implicitly created proxy page for the documented global function with an internal \headerfile. Pick-to: 6.11 Change-Id: Ia175eee8ad54d4ca53b77249612b201d29cdfb48 Reviewed-by: David Boddie <david.boddie@qt.io>
* QDoc: qmlsingleton test: Fix warningsTopi Reinio6 hours27-53/+183
| | | | | | | | | The warninglimit was left undefined for this test project, and it was generating 11 warnings. Pick-to: 6.11 Change-Id: I7c02ea1907919d2965d81b6a4479944300888301 Reviewed-by: David Boddie <david.boddie@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot4 days1-3/+3
| | | | | Change-Id: Ied9a7172ef2915cf66bdfd638e8c18d349d0d356 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QDoc: Avoid false positives for 'No output generated' warningsTopi Reinio4 days1-8/+22
| | | | | | | | | | | | | | | QDoc reports 'No output generated for X:Y because X is undocumented' warnings for documented class members whose class a missing a doc topic. This generated false positives in cases where the undocumented class is not part of the public API. As QDoc now has an `internalfilepatterns' configuration feature to mark header files as non-public based on file path(s), add such a check before generating the warning. Pick-to: 6.11 Task-number: QTBUG-141665 Change-Id: I790fe3210be28fa4b370b06baed3e5fe975fac8c Reviewed-by: David Boddie <david.boddie@qt.io>
* qdoc: Resolve scoped enum values, not just class enum valuesDavid Boddie4 days5-6/+7
| | | | | | | | | The check for scoped enums only worked for class enums. By removing the check, we can search inside named enums for values. Pick-to: 6.8 6.10 6.11 Change-Id: If1a9213dee7a57957a8be70f95cdf4f82f6bef52 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Qt Linguist: Improve translations of the AI translation dialogFriedemann Kleint5 days3-27/+29
| | | | | | | | | | | | | | - Remove "Dialog" from the MachineTranslationDialog title - Remove HTML clutter by using placeholderText for the log display - Remove the +/- indicators from the tool box texts by moving the texts into the source. - Add some comments - Fix message texts Pick-to: 6.11 Task-number: QTBUG-141111 Change-Id: If73c20142309f2920c85176efbe9a7a01ca08c3e Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Doc: Update outdated documentation for designer layoutEren Bursali5 days3-3/+3
| | | | | | | | | | Replacing screenshots and documentation of Windows XP layout with the current Windows in "https://doc.qt.io/qt-6/designer-layouts.html#the-grid-layout" because it is not supported anymore Fixes: QTBUG-141777 Pick-to: 6.10 6.11 Change-Id: Ifb47d08a1a7d27868701dbe64576b162eb6deb5e Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* doc: Add a missing qdoc warning to the collectionDavid Boddie6 days1-0/+5
| | | | | | | | Describes the warning about missing QML base types. Pick-to: 6.11 6.10 Change-Id: I988a6689b0b5657cd093aa27bc70e61a6c750e17 Reviewed-by: David Boddie <david.boddie@qt.io>
* QDoc: Refactor nearest name suggestions into editdistance filesDavid Boddie6 days4-15/+20
| | | | | | | | | Consolidate similar code into a single function that can suggest the best or closest match in a set of strings to the string supplied, optionally excluding strings that should not be matched. Change-Id: I8ae2c9e2261c580fa4dbb8c9fe80e3fb85d62ac8 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* QDoc: Adjust order of overloads to more closely match summariesDavid Boddie6 days4-2/+17
| | | | | | | | | | | | | | The order of overloaded functions in detailed sections tends to differ from that in the lists of functions on some API reference pages. This can lead to confusion when navigating between overloads or searching for a suitable overload. This change imposes some additional order on sorting of functions, based on the overload number. It does not guarantee that the order will exactly match the summary list, but it will be closer to it. Change-Id: I499ac8a22168d252cbaf6a5d8eb5e76fe7090807 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Doc: Fix QDoc link errors in qttoolsJerome Pasion7 days3-8/+8
| | | | | | | | | | | Add dependency in .qdocconf files Fix link syntax Whitespace fixes when applicable Fixes: QTBUG-142504 Pick-to: 6.10 6.11 Change-Id: I8dfa717a71eb71ba7f1b6f334ec7162d620bf83c Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* QDoc: HelpProjectWriter: Process \generatelist when building a .qhp TOCTopi Reinio7 days4-2/+122
| | | | | | | | | | | | | | | | | | | | | | | | QDoc can automatically generate navigational links between pages based on a top-level \list structure that defines a table of content for a project. This list can include either explicit links to pages or \generatelist or \annotatedlist command(s) that expand to a set of links, one of each group member. HelpProjectWriter uses similar logic when writing the TOC entries for a qhp subproject of type `manual`. But here, the \generatelist command had no effect; only explicit links to topics were added to the TOC. Add support for generating .qhp TOC entries via \generatelist and \annotatedlist commands to HelpProjectWriter, and describe the usage of these commands in QDoc manual. [ChangeLog][QDoc] The \generatelist command now produces correct output when used in a \list structure to build a Qt help project (qhp) TOC. Pick-to: 6.11 6.10 Fixes: QTBUG-142544 Change-Id: I611204dc36d0eb0f2ea6399c70c9e9e41c834c4b Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Assistant: Add workaround for styled SVG files in Qt documentationDavid Boddie8 days1-2/+45
| | | | | | | | | | | | | | | SVG files in Qt documentation define a <style> element containing selectors that enable styles for light and dark themes. Online Qt documentation uses JavaScript to select these but there isn't a simple alternative to this in Assistant or an obvious way to access the underlying SVG handling provided by QtSvg. This workaround adds a "dark" class to the <svg> element when a dark theme is being used, relying on the SVG file to define appropriate style rules that can be applied when the class is present. Change-Id: I84ef450415d2757ac17d4a672b4386d44989082a Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot12 days1-1/+1
| | | | | Change-Id: Id3ea75d2a32362eda52cbe1c2738d27a8a5cd7e8 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot12 days1-3/+3
| | | | | Change-Id: I95be732ab3f4d1e90db2c7f5759d5690a42a4903 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QDoc: Fix nullptr dereference in helpprojectwriterPaul Wicking12 days2-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | QDoc's `Doc` class permits default construction with `m_priv` set to `nullptr`. This is valid for nodes without documentation. However, accessor methods such as `keywords()`, `targets()`, `tableOfContents()`, and `tableOfContentsLevels()` directly dereference m_priv without validation. When HelpProjectWriter processes nodes with default-constructed Doc objects, this can cause segmentation faults. This occurs because the `Doc` class' design allows `nullptr` as a valid state, but its methods don't defend against it. The crash manifests when help project generation encounters QML types or other nodes that legitimately have no documentation content. This change adds `nullptr` guards to the four accessor methods in `Doc`, returning static empty collections when `m_priv` is `nullptr`. This approach maintains the existing API contract while making the class robust against its own valid states. Additional call-site guards in `HelpProjectWriter` provide defense in depth by checking `isEmpty()` before iteration and validating `findNodeForTarget()` results before use. Fixes: QTBUG-142451 Change-Id: I2f6bbd98701056d41c3e8a657b457cd6a09d92e6 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Doc: remove stray } in help for QDoc commandKai Köhne13 days1-2/+2
| | | | | Change-Id: I5bbb0965456ce8bfe47fc904ac66070eae8d1a58 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* pro tools: use QMakeParserCumulative and share JSON project generatorMasoud Jami13 days8-311/+438
| | | | | | | | | | | | | | | | | | | | | Extract .pro file processing into shared projsongenerator The lupdate-pro, lrelease-pro, and lprodump tools contained nearly identical logic for parsing .pro files and generating JSON project descriptions. This change extracts the duplicated code into projsongenerator.cpp/h to provide a unified generateProjectDescription() that generates JSON file for .pro files. All three -pro tools now link against QMakeParserCumulative and use the shared generator. This provides the common infrastructure needed in the next patches for lupdate and lrelease to parse .pro files directly, without std::system calls to their -pro variants. Change-Id: I8d693977036c3f13e5129ed61ea3394a0ef16936 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Linguist: Extract qmake parsing functionality into libraryMasoud Jami13 days24-46/+64
| | | | | | | | | | | | | | | | | | | | The qmake parser code needed by linguist tools (lupdate-pro, lrelease-pro, lprodump) was scattered across shared/ directories with duplicated CMakeLists.txt configuration. This change creates QMakeParserCumulative, a static library consolidating all qmake parsing functionality. The library exports a public include directory and defines necessary preprocessor flags needed in linguist (PROEVALUATOR_CUMULATIVE, PROEVALUATOR_DEBUG, PROEVALUATOR_INIT_PROPS) for qmake parser. The library establishes the foundation for subsequent refactoring by isolating qmake functionality into a reusable component to be used in lupdate-pro, lrelease-pro, and lprodump. Change-Id: I767e485abe9d994ad12187b1bd3d26d38f950f65 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QDoc: Extend Generator::typeString() to handle plural forms simplyDavid Boddie14 days8-19/+219
| | | | | | | | | | | Apply a simple test for each case in typeString() to distinguish between singular and plural forms of the common types. Add a simple regression test to catch any changes in later refactorings. Fixes: QTBUG-142351 Change-Id: I88c7303dc543d61d917ac61c31bde98bf7cedc87 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* ltext2id: fix coverity scan INVALIDATE_ITERATOR warningMasoud Jami2025-12-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Coverity complained that transformedItr could be incremented past the end of the range if the while-loop had already advanced it to end(). It is correct, because the for-loop iterates over 'messages' while the while-loop advances 'transformedItr' over 'verifyMessages' (two independent ranges). When a non-supported message was encountered, the 'transformedItr' iterator was incremented unconditionally, but the while-loop in a previous iteration could have already advanced it to the end position. Fix by checking for end() before incrementing. This is the correct thing to do because the subsequent end-check intentionally doesn't break out of the loop. It records an error and continues to accumulate all missing translations. The fix preserves this behavior and avoids incrementing an iterator that is already advanced to the end position. Amends ccddb1221fd05e300e3b5d1ab4ffb5fba49f17db Coverity-Id: 897288 Change-Id: I7013b664c97fd2cf07f426b53fcfea5518893d8f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QDoc: Change title of How to Resolve QDoc WarningsSafiyyah Moosa2025-12-024-148/+4
| | | | | | | | | | | | | | | | | | | The doc team is trying to implement a version of the diataxis framewrork to doc.qt.io. The QDoc manual is being updated with this framework in mind. This patch changes the title of the 'How to Resolve QDoc Warnings' page to 'Troubleshooting QDoc Warnings' because the 'How-to' title should only be used in a specific context according to the framework. This patch also updates the links to this page. Fixes: QTBUG-139449 Pick-to: 6.10 Change-Id: Ibb6e2a6eddb1a0434b8b7280e1b37e048250c07a Reviewed-by: Topi Reinio <topi.reinio@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-12-021-3/+3
| | | | | Change-Id: Ia8210d5e7bebe6ca26d0acdacb72bbdb2593da7f Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* ltext2id: Fix Coverity COPY_INSTEAD_OF_MOVE warningsMasoud Jami2025-12-012-8/+7
| | | | | | | | | | | | | | | | | | | - In main(), remove the unnecessary cInclude variable and assign the output of getIncludeOptions directly to cd.m_allCSources. - In recordMessage(), use move- instead of copy-assignment, removing a const that would have prevented it before. - In calculateId(), enable NRVO by defining metaId (now id) in the top-level function scope and reusing it for the loop in case extra() came up empty. Amends ccddb1221fd05e300e3b5d1ab4ffb5fba49f17db. Coverity-Id: 897285 Coverity-Id: 897290 Coverity-Id: 897289 Coverity-Id: 897287 Change-Id: I2f26a30b46c2d918d86ee86dc6341c5d51f0db4d Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QDoc: Enable explicit linking to QML properties and attached propertiesDavid Boddie2025-12-0124-55/+226
| | | | | | | | | | | | | | | Since QML types can have attached properties whose names shadow those of regular properties, there sometimes needs to be a way to choose which type of property to link to. This introduces the "attached" link criterion that enables writers to express a preference for attached properties while keeping the syntax minimal for linking to regular properties or uniquely-named attached properties. Fixes: QTBUG-142150 Change-Id: If8d45bbcc064c9290bb51110dbbe6c96aa6af399 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-12-011-3/+3
| | | | | Change-Id: I24aa3ff99074a14eb9ebc54b5f6efb01966eb605 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-11-281-3/+3
| | | | | Change-Id: I9b5704fd194bea7f5bb39722539e2a48a072888e Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Use lean headers for the repoFriedemann Kleint2025-11-2612-3/+29
| | | | | Change-Id: I59c7d9b4d2a3ec51c1452ebf33fe1f7978f12407 Reviewed-by: Masoud Jami <masoud.jami@qt.io>
* Set QT_EXTRA_INTERNAL_TARGET_DEFINES in one command to make it more readableFriedemann Kleint2025-11-261-3/+5
| | | | | | Pick-to: 6.10 6.8 Change-Id: Ib5c1fd1769df37654a232ff3bcaa29ca4a7dc926 Reviewed-by: Masoud Jami <masoud.jami@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-11-261-3/+3
| | | | | Change-Id: Ie40e4e1b75df72e0f7f173363d70e31a6c8c7577 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QDoc: Add a way to recognize content type by file name, for qmldir filesDavid Boddie2025-11-254-0/+21
| | | | | | | | | | | This causes qmldir files to be matched by plain CodeMarker objects so that their content is not marked up or highlighted in the default marker style. Fixes: QTBUG-141354 Change-Id: Id16ddce15483985d6af62e1dcc6c206d431ebac1 Reviewed-by: Topi Reinio <topi.reinio@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-11-251-3/+3
| | | | | Change-Id: I62a5e9d42b29ac3d563733c6c33a1ccc74a18792 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-11-201-3/+3
| | | | | Change-Id: I1a99f1932189879499686ed86c17b6b807b74c75 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QDoc: Enforce output tree boundary for images dirPaul Wicking2025-11-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | `CONFIG_IMAGESOUTPUTDIR` accepts any path string and attempts to create it as a directory, allowing absolute paths or relative paths containing ".." that escape the output tree. This pattern exists in `Generator::initializeFormat()` where the images directory is created using raw QDir operations. This violates the architectural principle that all QDoc output should stay within the output directory tree. It creates a potential security risk where malicious or misconfigured .qdocconf files could write to arbitrary filesystem locations. The inconsistency with other directory operations also makes the codebase harder to audit for path traversal vulnerabilities. Convert `imagesDir` handling to use `OutputDirectory::ensureSubdir()`, which rejects absolute paths and paths containing ".." components with clear fatal errors. This enforces the output tree boundary while maintaining support for the standard usage pattern of relative subdirectory names such as "images" (the default). Configurations using absolute paths or ".." in `CONFIG_IMAGESOUTPUTDIR` will now terminate with fatal errors instead of potentially writing outside the output tree. Change-Id: Ib99c821645d27a394a13fb5cc79b90d7b2047564 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* QDoc: Refactor Generator to use OutputDirectoryPaul Wicking2025-11-201-34/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | Generator uses direct QDir operations for directory creation and file copying across multiple functions, with inconsistent error handling. The `copyTemplateFiles` function has a bug where it passes the full source file path as the destination filename to `Config::copyFile` instead of extracting just the filename, causing files to be copied with incorrect names. The scattered QDir usage makes it difficult to audit where directories are created and whether path traversal vulnerabilities exist. The `copyTemplateFiles` bug means template files aren't installed correctly when referenced by their full paths. Convert these operations to use the new OutputDirectory's API, fixing the copyTemplateFiles bug by using `QFileInfo::fileName()` to extract just the filename. Explicitly handle `QFileInfo::path()` returning "." for files without directory components to avoid unnecessary `ensureSubdir()` calls. Centralize directory creation through the `OutputDirectory` abstraction while preserving existing semantics for images directory handling in `initializeFormat()`, which will be addressed separately. Change-Id: If026168b01930aabe716bacb5bc2a32ddde28c92 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* QDoc: Fix silent failures in manifest and help filesPaul Wicking2025-11-206-9/+35
| | | | | | | | | | | | | | | | | | | | | | | ManifestWriter and HelpProjectWriter write output files directly without ensuring the output directory exists. When given a non-existent output directory, they fail silently—appearing to succeed but producing no files. The same issue affects warning log initialization in `Location::initializeWarningLog()`. Users receive no feedback about why documentation isn't generated. This makes configuration errors difficult to diagnose. The silent failure violates the principle of failing fast with clear error messages. Use `OutputDirectory::ensure()` to create output directories with clear fatal errors on failure. Add explicit error reporting when files can't be opened for writing, converting silent failures into visible warnings. This makes directory creation failures fatal with descriptive messages and file open failures visible as error messages showing the full path that couldn't be opened. Fixes: QTBUG-141590 Change-Id: I620b20a40eb6cc63fac274fa612f9fe59604fa3c Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Qt Designer: Fix remaining use after free coverity scan resultsFriedemann Kleint2025-11-201-26/+10
| | | | | | | | | | | | | | | The removal of the entries of the subproperty to property maps happens in DesignerPropertyManager::slotPropertyDestroyed(). There is no need to additionally remove them from the maps in the uninitializeProperty() functions. Coverity-Id: 444450 Coverity-Id: 444465 Task-number: QTBUG-134195 Fixes: QTBUG-134256 Change-Id: Iba57307b08351f37a8227cfce9d7b3cdb382fa4d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* QDoc: Introduce OutputDirectory abstractionPaul Wicking2025-11-193-0/+199
| | | | | | | | | | | | | | | | | | | | | | | | | QDoc has no centralized abstraction for output directory handling. Directory existence checks and creation are scattered throughout the codebase using raw QDir operations, leading to inconsistent error handling and repeated validation logic. This makes it difficult to enforce policies (e.g. secure path traversal protection) uniformly across all file operations. It also means there's no type-safe way to pass around directory paths that are known to be valid, requiring repeated existence checks at every usage site. This change adds the `OutputDirectory` value type with factory methods that ensure directories exist before creating instances. This provides a single API entry point with type-safe guarantees about directory validity. The `ensureSubdir()` method includes built-in path traversal protection that rejects absolute paths and ".." components, preventing accidental writes outside the output tree. All paths are normalized using `QDir::cleanPath()`, and directory creation failures terminate QDoc with clear error messages via `Location::fatal()`. Task-number: QTBUG-141590 Change-Id: Ia3199e33ad8b3c610c5b3be6eebc18e2c8840dc5 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-11-191-3/+3
| | | | | Change-Id: I89dd076742413ad2bf78b4f92f9ee6700ed4ccb3 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qttoolsQt Submodule Update Bot2025-11-181-1/+1
| | | | | Change-Id: I8f6ac441c2c4dadb66b126ebb8ac91bc34dfcb75 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QDoc: Respect \inherits command when parsing \qmltype from a .qml fileTopi Reinio2025-11-183-3/+11
| | | | | | | | | | | | | | | The QML parser in QDoc always set the base type for a \qmltype as detected from the type declaration in a .qml file. An \inherits command was processed but its argument ended up being silently ignored. Do not overwrite the argument passed to \inherits. This allows authors to declare a base type explicitly for documentation purposes. Fixes: QTBUG-141954 Pick-to: 6.10 Change-Id: I56b474f726d901be357087005ea095bbe349303d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Linguist: Add auto-label placeholders for ID-based translationsMasoud Jami2025-11-1811-18/+552
| | | | | | | | | | | | | | | | | | | | | | | | | | Implement automatic label generation using placeholders in lupdate's meta-strings. Users can now use <context>, <class>, and <file> placeholders in //@ comments (C++ and Qml) to automatically generate labels from source code structure. The feature supports three placeholders: - <context>: Full context path (namespace::class) - <class>: Class name only (without namespace prefix) - <file>: Source filename Placeholders can be combined with custom text (e.g., <file>:<class>) to create descriptive labels without manual maintenance. The commit also makes the restriction of labels to ID-based translations more clear. Labels are prevented in text-based tr() functions even if they might have meta IDs, and issues warnings when misused. [ChangeLog][lupdate] Added auto-label placeholders (<context>, <class>, <file>) for automatic label generation in ID-based translations Change-Id: I1e820eb4a83067224e213eeff72b1fb9ed999468 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt Linguist/qmake parser: Fix Unity buildFriedemann Kleint2025-11-181-0/+3
| | | | | | | | | | | Fix: qttools/src/linguist/shared/parsers/qmakeparser.cpp:130:10: error: reference to ‘statics’ is ambiguous Task-number: QTBUG-115448 Pick-to: 6.10 Change-Id: Idd643e84ae4dd138c9a1d826916207890c94bb8f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Masoud Jami <masoud.jami@qt.io>
* linguist examples: remove doc reference to the removed Qml exampleMasoud Jami2025-11-181-3/+0
| | | | | | | | | | The Qml i18n example was removed in patch 688446. Though a left over reference to its documentation was still in linguist documentations. This patch removes the invalid reference to the removed Qml documentation. Change-Id: Ib95f511fdb5b3cd8e885bfd2598a63cf53c683bd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* ltext2id: fix coverity scan USE_AFTER_MOVE warningsMasoud Jami2025-11-181-2/+2
| | | | | | | | | This commit amends to 631925 and removes std::move since there's no benefit from moving into RHS of QString::op+=. Coverity-Id: 897286 Change-Id: I22ef116e539dd43ca27aba3472972f0679c21da5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QUiLoader: Replace macros used for page widgets translationFriedemann Kleint2025-11-181-39/+72
| | | | | | | As a drive-by, replace the conversion to a hash by a list search. Change-Id: Ia70fef31c788ce378c682c10b663d75ab64032d1 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Qt Widgets Designer: Fix remaining clang tidy warningsFriedemann Kleint2025-11-1813-68/+55
| | | | | | | | | | - Fix else after return - Include-related warnings - Use algorithm instead of loops - Minor fixups Change-Id: I610fe5ae95f80e061a3bcaa6b5659b52c3e7b5f3 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Qt Widgets Designer: Fix clang-tidy warnings about uninitialized variablesFriedemann Kleint2025-11-188-80/+73
| | | | | Change-Id: Ic7b9a29760d0de87816264bc262cf2233adf9fb8 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>