summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add changes file for Qt 5.13.2v5.13.25.13.2Antti Kokko2019-10-151-0/+27
| | | | | | Change-Id: Ibe11b7fa1130754ab0a6b1c2379d7e80909dc757 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Bump versionFrederik Gladhorn2019-10-141-1/+1
| | | | Change-Id: I58ce340a94bf70b44704e7af2b48952858c22f21
* Merge 5.13 into 5.13.2Frederik Gladhorn2019-10-112-7/+9
|\ | | | | | | Change-Id: I5355c7537c1f4dc5bbf80e52e3c0c28282fd4446
| * Fix code snippet in qdoc manualPaul Wicking2019-10-101-2/+2
| | | | | | | | | | Change-Id: Id62ceaac5a34b165026ee81fa504dedaa0ecb1bd Reviewed-by: Martin Smith <martin.smith@qt.io>
| * Fix build with -no-feature-tooltipJoerg Bornemann2019-10-091-1/+3
| | | | | | | | | | | | Task-number: QTBUG-79048 Change-Id: Ie6493f923089b95ca7617a9485b466b55a6f0b73 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * Doc: Minor corrections qdoc manualNico Vertriest2019-10-071-4/+4
| | | | | | | | | | | | Task-number: QTBUG-78936 Change-Id: I9219581857e83daaae35a717a4d9cdf8f3c4a6aa Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | qdoc: Do not add class to map if isDontDocument() is trueMartin Smith2019-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | This update ensures that if a class node returns true for isDontDocument(), it is not included in the map used for generating the all classes list. This also applies to QML types. Task-number: QTBUG-78940 Change-Id: I020cb0dd2f16187d5f6c75b400778b1518d7e05a Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
* | qdoc: Remove multiple QTypeInfo entries from All Classes pageMartin Smith2019-10-101-1/+1
|/ | | | | | | | | | | | | | | QTypeInfo is a class that is generated by a Qt macro. It is not documented and is not supposed to be documented, but clang sees it as being in the public API. This update ensures that the class is marked internal prior to generating the index file. Ironically, this was one of the classes that motivated the addition of the \dontdocument command, and it was the test for isDontDocument() that caused this bug. We might have to visit the \dontdocument command again. Task-number: QTBUG-79088 Change-Id: I11307a2236e2ebcdcc205952056ddaca88fc0bd3 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Doc: Add doc for the \dontdocument commandNico Vertriest2019-10-021-0/+18
| | | | | | Task-number: QTBUG-78936 Change-Id: Ia8635aa1b2d2ce97e5c1390bcdd7a5c920d87e83 Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: WebXML output: Fix output for \group and \annotatedlistTopi Reinio2019-09-262-6/+29
| | | | | | | | | | | | | | | | | | The WebXMLGenerator did not handle atoms of type AnnotatedList. Adding this enables listing of grouped pages with the \annotatedlist command. Similarly, empty output page was generated for the \group page itself. This was because QDocIndexFiles::generateIndexSections() only handled groups when processing the root node, which we must skip in this generator. Add explicit handling for group nodes, enabling us to receive callbacks from QDocIndexFiles to add content for these pages. Task-number: PYSIDE-1088 Change-Id: Id72d589a51fc7aae21ad5cdbb3c1dfa78d4c23ae Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* qdoc: WebXML output format: Fix issues with example pagesTopi Reinio2019-09-265-83/+223
| | | | | | | | | | | | | | | | | Since QDoc no longer stores example files as nodes in its tree, the WebXMLGenerator failed to generate output for those files. Fix this by generating those pages explicitly as needed, overriding functions from the Generator base class. Prevent QDocIndexFiles from writing nested <page> elements when WebXMLGenerator is in use, as that does not work as expected with shiboken2. Fixes: PYSIDE-1088 Change-Id: I01c2af2391726f448271fdb810ffc3da923caca5 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Doc: Explain that property editor cannot handle custom class propertiesLeena Miettinen2019-09-201-11/+18
| | | | | | | | | That is, Q_PROPERTY types for custom types that have been declared with Q_DECLARE_METATYPE(). Fixes: QTBUG-17816 Change-Id: I48c33af13d85b877596caca4fbd1103bf383d6e8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* qdoc: Fix issues with related non-membersTopi Reinio2019-09-203-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The \relates command sets a node as a related non-member of another node, and sets that node as the new parent. However, the old parent still holds a pointer to the newly-adopted node; this is needed for searching. Some locations in the code did not handle the possibility of parent's children reporting a different node as their parent. Skipping these nodes when traversing the node tree eliminates duplicate entries from .qhp files. These duplicates are however needed in the .index files for linking to work, as links may reference both the global namespace and the scope the node relates to. Remove these duplicates from .qhp files, and omit parent names when generating 'id' attributes for related non-members. This reverts the .qhp content to what it was in Qt 5.12. Parents of related members must be skipped when resolving the full name of the node, otherwise searching for the name is likely to fail. Non-members related to a header file did not receive a valid location ('href'). Task-number: QTBUG-78474 Change-Id: Ie126219e8101beaa051f2f4a1a9f93c731fc8168 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: Do not prefix related non-members with a parent scopeTopi Reinio2019-09-121-2/+7
| | | | | | | | | | | | | | The fact that a related non-member has a parent-child relationship with the node it relates to is simply an implementation detail in QDoc - it should not be visible in the generated output. The same applies for proxy nodes - i.e. aggregates that hold children documented in another module. Fixes: QTBUG-77960 Change-Id: I8d83ee7022d5f15af720cbd65c138be0469d39a0 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
* qdoc: Remove superfluous '#' symbol from generated linksTopi Reinio2019-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | This sneaky regression happened as a result of rearranging the inheritance tree of Node-derived classes. HtmlGenerator::linkForNode() intends to add #anchor to a link if it's associated with a Node that does *not* generate an .html page of its own. It did this by checking whether a page is an Aggregate. However, since the node tree refactoring, TextPageNode instances are not Aggregates but do generate .html pages. This caused excess '#' to be added to all links pointing to a \page. Luckily, we have Node::isPageNode() which is designed for this purpose - it tells whether a node has an .html file associated with it. Fixes: QTBUG-78040 Change-Id: Ie847c69c4df79075e950aea1ea30c0dcea4f2e4b Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-09-083-7/+55
|\
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-09-083-7/+55
| |\ |/ / | | | | Change-Id: I0015980f763599ca60f28dd3408531d2a532cd6a
| * Merge "Merge remote-tracking branch 'origin/5.12.5' into 5.12"Qt Forward Merge Bot2019-09-071-0/+37
| |\
| | * Merge remote-tracking branch 'origin/5.12.5' into 5.12Qt Forward Merge Bot2019-09-071-0/+37
| | |\ | |/ / | | | | | | Change-Id: Iee0b05ae295b1337bebbdc3c457795dfc5b56ced
| | * Add changes file for Qt 5.12.5v5.12.55.12.5Antti Kokko2019-09-031-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + b22049ea14b62a2a743fd5fbd23563c566ef528a qdoc: Add id attribute for all HTML headings + c7f96f5301c2e60d1c5ef1e945e70e921afc71ce Close the last SELECT query with pending results + 0d2a9408ed2a5c664330c5742c9afb610a6c7348 lupdate: Improve documentation of -recursive, -no-recursive + fcb96af0215a9ae070face3997cdf84dafc057e5 distancefieldgenerator: Fix cmap error for some fonts + 8e7db0dd1cdc63c962359b37f882643dd3ed0e1a distancefieldgenerator: Avoid exceeding max texture size + d7e346b58260b24e02c64f82b2900bfba5951330 distancefieldgenerator: Remove unused variable + a05eb132416fcce8eb6a9fb240d0867796ed9deb distancefieldgenerator: Fix crash with multiple textures + 73ecd39debe850c11293fcf175c1e2b637edc5f3 distancefieldgenerator: Fix failure reading CMAP for some fonts + 2ecbaa7c29de2350486c6e83375ba8c83fee6cda Qt Linguist: Document CMake macros + e42dd0a13ebf37f7402a4cf09a6fb62b8c740c76 qdoc: Avoid duplicating version strings in HTML <title> element + 86f264b491fced5efd37127ac1a31880fe909f5c Bump version + a9790627873d17f91f29c9bd8be0fb609ec29f03 CMake: Ensure unique lst file name in qt5_create_translation + a690022b7e56b2e36a95ef22b854af4c82c5fdc8 Qt Designer: Enable editing of current dates + 40a7f2c6469e1702e791c66414051fed385a7930 distancefieldgenerator: Fix garbled text with large fonts on little endian Change-Id: I9dcfc3d86ec7744aadeb24e4fc1b293503373d86 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
| * | lupdate: Warn about calls with template literalsKai Koehne2019-09-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JS template literals do not really mix well with the Qt Linguist toochain, at least if template arguments are used: This makes the source string dynamic. So far qsTr(``) calls were just ignored. Now lupdate prints a warning. Task-number: QTBUG-76265 Change-Id: I935c382695a86ecd6fd076b31a68fa987be8fd84 Reviewed-by: Lucie Gerard <lucie.gerard@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | distancefieldgenerator: Fix performance when selecting unicode rangesEskil Abrahamsen Blomfeldt2019-09-031-7/+14
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling the QItemSelectionModel::select() function that takes a single index is extremely slow, so for large ranges that span e.g. 20000 glyphs in the font, such as some of the Chinese ideographic ranges can, the application would appear to freeze for many seconds while updating the selections. Instead we use the overload that takes a QList. Metrics: For a specific CJK font, this reduces the time taken when selecting a single unicode range from 30 seconds to 70 ms. [ChangeLog][Distance Field Generator] Improved performance when selecting unicode ranges in large fonts. Task-number: QTBUG-77499 Change-Id: I7ed9bec26b3cbc7e273d305f270a4a6690a81407 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.13.1' into 5.13"Qt Forward Merge Bot2019-09-051-0/+29
|\ \
| * \ Merge remote-tracking branch 'origin/5.13.1' into 5.13Qt Forward Merge Bot2019-09-051-0/+29
| |\ \ |/ / / | | | | | | Change-Id: If1fddd3261c81631773ac281d4f79e5e03b96bd7
| * | Merge 5.13 into 5.13.1v5.13.15.13.1Paul Wicking2019-08-061-7/+8
| |\ \ | | | | | | | | | | | | Change-Id: Ief65f3477b5e5023f8a0c940898c9ddd63a67d51
| * \ \ Merge 5.13 into 5.13.1Paul Wicking2019-08-0611-305/+350
| |\ \ \ | | | | | | | | | | | | | | | Change-Id: I9390352a6e8a8802b99c5aac0bb39ae1d11399f7
| * | | | Add changes file for Qt 5.13.1Antti Kokko2019-07-311-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ic1048e96daf722cae95fd6625455e55eb016ce0e Reviewed-by: Martin Smith <martin.smith@qt.io>
* | | | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-08-2410-15/+6
|\ \ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-2410-15/+6
| |\ \ \ \ \ |/ / / / / / | | | | | _ | | | | | Change-Id: Id2b91b27583724cfd289f264724aa780edcccbde
| * | | | Doc: Update info on full-text searchLeena Miettinen2019-08-192-15/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update screenshot. Fixes: QTBUG-65064 Change-Id: Ic8d1201e0f2947419836d633bc53997d009d646e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
| * | | | Doc: Update screenshotsLeena Miettinen2019-08-198-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I31313d1d941a0fe37bd515b5e52b5a471e6167e5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | | | | qdoc: Avoid errors related to PCH usageTopi Reinio2019-08-211-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove whitespace from the default parameters passed to Clang, and add '-ferror-limit=0' to disable the error limit. This helps to ensure we get a usable precompiled header on all platforms. Another issue that manifested on Windows was the order in which the (temporary) module header and the PCH was built - after writing the module header, its QFile was closed at the end of the function scope, and it received a timestamp later than the PCH. Some versions of libclang see this (rightfully) as a problem. Close the module header file handle before generating the PCH. Task-number: QTBUG-75053 Change-Id: I61d066c40eddfdfdcc4c8cd847f6bec40652f9e0 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | | | Fix applying font and option settingsJarek Kobus2019-08-213-35/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the code which applies changes to applyChanges() method. Fixes: QTBUG-77399 Change-Id: Ic4436ce65e246c518a6fcdfe119df772a0585468 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-08-171-1/+1
|\ \ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-171-1/+1
| |\ \ \ \ \ |/ / / / / / | | _ / / / | | / / / Change-Id: Ibd977a3a67db311434dc5062f23e4f7f270dbbb0
| * | | | distancefieldgenerator: Fix garbled text with large fonts on little endianEskil Abrahamsen Blomfeldt2019-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When writing the texture index of each glyph into the font, we would first do toBigEndian() on an int and then truncate this to quint16, causing the texture index to be 0 for all glyphs on little endian systems. This would cause glyphs that were not located in the first texture to be garbled in the output. [ChangeLog][distancefieldgenerator] Fixed broken text rendering when generating large glyph sets. Task-number: QTBUG-77501 Change-Id: I7c2d31a6e57182f440d7f78bd6305109846ccb75 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | | Binary compatibility file against Qt5.13.0 for QtToolsMilla Pohjanheimo2019-08-143-0/+61899
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | BC files added. Change-Id: I5ff442b4d389bc03ed829b9a896194025fff114c Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
* | | | qtplugininfo: don't abort on missing userdata if we don't careDavid Faure2019-08-061-7/+8
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Plugins *for* Qt have a MetaData object with Keys, but application plugins don't necessarily have that. Let's still make qtplugininfo useful for those plugins as well. Before: $ qtplugininfo /usr/lib64/plugins/kcm_colors.so qtplugininfo: /usr/lib64/plugins/kcm_colors.so: invalid metadata, user data is not a JSON object After: $ qtplugininfo /usr/lib64/plugins/kcm_colors.so IID "org.kde.KPluginFactory" Qt 5.13.0 (release) qtplugininfo: /usr/lib64/plugins/kcm_colors.so: invalid metadata, user data is not a JSON object Change-Id: Icfe55e4d1749b5d31db1787883487f33987263b3 Reviewed-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | qdoc: Fix "Inherited By" outputMartin Smith2019-07-3110-304/+345
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "Inherited By" list was incomplete for QObject (and other classes) because classes that inherited QObject from modules outside QtBase were not being included. This update cleans up the maintenance of a class's base class and derived class information so that the "Inherited By" list is more correct. Note that the "Inherited By" list can't be guaranteed to be complete because, for example, classes in external modules might inherit QObject, but if those external modules are not listed as dependencies of QtCore, QObject won't know about those classes. Task-number: QTBUG-77126 Change-Id: Ia0be361f9e909fee04e9680d4219c96812306712 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-07-301-1/+5
|\ \ \ | |_|/ |/| |
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-301-1/+5
| |\ \ |/ / / | | _ | | Change-Id: I0e4b55a4dd87223f15a6933b45e5bcb8c41ee439
| * Qt Designer: Enable editing of current datesFriedemann Kleint2019-07-291-1/+5
| | | | | | | | | | | | | | | | | | | | | | Qt Designer uses QLocale::ShortFormat for its date editor, which has a 2 digit year. This causes the year to expanded to the wrong year (99->1999) for the maximum value and other issues. Fix by making the year 4 digits. Change-Id: I6cb73c5027f340706f44cd5fe3bfec5e90facb46 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | Doc: Replace "return 0" with "return \nullptr" in QDoc's node.cppPaul Wicking2019-07-231-5/+7
| | | | | | | | | | Change-Id: Idfaf778aa13cb461bb9e0db344033aa8147a51d3 Reviewed-by: Martin Smith <martin.smith@qt.io>
* | qdoc: Fix the \reimp command outputMartin Smith2019-07-225-19/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When qdoc finds \reimp in a function node comment, it searches the parent class node's base classes to find the function node for the function that is overridden. When it finds this node it prints the "Reimpliments: Yyy::Xxx()" line in the current function node's documentation. This was not working correctly when the reimplemented function was in a different module. The problem was that the fact that the function in the base class had been documented was not recorded in the index file. This update fixes that problem. Now every element that was documented is given the "documented" attribute in the index file set to true. Sometimes, \reimp is used to say that a function reimplements an access function for a property in a base class. This update handles that case as well. See QToolButton::sizeHint(), for example. This change introduces a 6 new qdoc errors in QtBase about \reimp functions for which a documented base class function was not found. Change-Id: Idd444958c3118ade97642bf84781166e6ca8f036 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | qdoc: Add hasDoc() test to findOverriddenFunction()Martin Smith2019-07-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When qdoc finds \reimp in a function node comment, it searches the parent class node's base classes to find the function node for the function that is overridden. When it finds this node it prints the "Reimpliments: xxx()" line in the current function node's documentation. But the search for the overridden function is meant to be recursive. It was working recursively, but the search was ending prematurely on a function node that had no documentation. In that case, the search should go higher in the inheritance tree to find an overridden function that is documented. This update adds the hasDoc() test to that search function to ensure that the final matching function does have documentation. Change-Id: Iaf6481f8b3aa98df0d0ef188912f1338316f079a Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | qdoc: Add hasDoc() test to docMustBeGenerated()Martin Smith2019-07-161-1/+1
| | | | | | | | | | | | | | | | | | Even if a class declaration appears in an _p.h file, a doc page must be generated for it if hasDoc() returns true for the class node. Task-number: QTBUG-77026 Change-Id: I6ca7d614383aadfb6ffcae1c8e021d2998de6a9d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-07-161-1/+1
|\ \
| * \ Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-161-1/+1
| |\ \ |/ / / | | _ | | Change-Id: I0b7c7105d6c6df81a1c955b7edf475b5f173c1d2
| * CMake: Ensure unique lst file name in qt5_create_translationKai Koehne2019-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | get_filename_component(... NAME_WE) will remove all suffixes, so files like myapp.de.ts and myapp.en.ts will return the same base name. To just remove the .ts, we could switch to NAME_WLE, but that was only introduced in CMake 3.14 it seems. But why bother at all? The lst file name doesn't have to be pretty... Fixes: QTBUG-76723 Change-Id: I42e46310fe5e9cfb0a82f303ade700f3f0b1b600 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | qdoc: Correct algorithm for finding class qualifierMartin Smith2019-07-111-11/+14
| | | | | | | | | | | | | | | | | | | | | | The algorithm for finding the class qualifier for the function name in a \fn signature was incorrect in cases where the return type also had a class qualifier. This resulted in some clang error messages being printed when they should not have been printed because the class was marked internal. This update corrects that algorithm. Change-Id: I02983710c73251b8fc75ccb2893ae1d9f5aa0fe6 Reviewed-by: Paul Wicking <paul.wicking@qt.io>