aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/statemachine
Commit message (Collapse)AuthorAgeFilesLines
* Remove qml statemachine plugin from qtdeclarativeKarsten Heimrich2020-08-2316-1862/+0
| | | | | | Task-number: QTBUG-80316 Change-Id: I584b699a1eec88117f343870bd2cd01075da64f7 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Don't leak QQmlBoundSignalExpressions in signaltransition.cppUlf Hermann2020-06-241-5/+8
| | | | | | | | | We need to adopt them, not addref the newly created object. Fixes: QTBUG-83214 Pick-to: 5.15 Change-Id: Ic8660e65d4b7c7698657f6b2806b5478f7f15ea1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Replace QQmlBoundSignalExpressionPointer with QQmlRefPointerUlf Hermann2020-06-242-3/+3
| | | | | | | They do the same thing. Change-Id: Ia35832e6175728e7480d09caba6d3833718d9e80 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove --dependencies option from qmltyperegistrarUlf Hermann2020-05-261-2/+0
| | | | | | | | | | | We don't need to list the dependencies in the qmltypes files. The information given in the qmldir file should be enough. Ultimately, we should get rid of all hidden dependencies. Task-number: QTBUG-84286 Change-Id: Iaf67d476b449215715270043591d8c4858104ea6 Reviewed-by: Christian Kamm <mail@ckamm.de> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Encapsulate QQmlContextDataUlf Hermann2020-03-231-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class is not a private detail of QQmlContext. And it is incredibly hard to see who owns what in there. Let's add some civilization ... We enforce refcounting for QQmlContextData across the code base, with two exceptions: 1. QQmlContextPrivate may or may not own its QQmlContextData. 2. We may request a QQmlContextData owned by its parent QQmlContextData. For these two cases we keep flags in QQmlContextData and when the respective field (m_parent or m_publicContext) is reset, we release() once. Furthermore, QQmlContextData and QQmlGuardedContextData are moved to their own files, in order to de-spaghettify qqmlcontext_p.h and qqmlcontext.cpp. When the QQmlEngine is deleted, any QQmlComponents drop their object creators now, in order to release any context data held by those. Before, the context data would be deleted, but the object creators would retain the dangling pointer. [ChangeLog][QML][Important Behavior Changes] QQmlContext::baseUrl() does what the documentation says now: It prefers explicitly set baseUrls over compilation unit URLs. Only if no baseUrl is set, the CU's URL is returned. It used to prefer the CU's URL. Change-Id: Ieeb5dcb07b45d891526191321386d5443b8f5738 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Store a QV4::ReturnedValue in QJSValueUlf Hermann2020-03-181-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Being careful, we can now save primitive values inline. We use the heap pointer of QV4::Value as either QString* or QV4::Value* for complex types. We cannot store persistent managed QV4::Value without the double indirection as those need to be allocated in a special place. The generic QVariant case is not supported anymore. The only place where it was actually needed were the stream operators for QJSValue. Those were fundamentally broken: * A managed QJSValue saved and loaded from a stream was converted to a QVariant-type QJSValue * QVariant-type QJSValues were not callable, could not be objects or arrays, or any of the special types. * Cyclic references were forcibly broken when saving to a data stream. In general the support for saving and loading of managed types to/from a data stream was so abysmally bad that we don't lose much by dropping it. [ChangeLog][QML][Important Behavior Changes] When saving a QJSValue to a QDataStream only primitive values or strings will be retained. Support for objects and arrays was incomplete and unreliable already before. It cannot work correctly as we don't necessarily have a JavaScript heap when loading a QJSValue from a stream. Therefore, we don't have a proper place to keep any managed values. Using QVariant to keep them instead is a bad idea because QVariant cannot represent everything a QJSValue can contain. Fixes: QTBUG-75174 Change-Id: I75697670639bca8d4b1668763d7020c4cf871bda Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Merge remote-tracking branch 'origin/wip/cmake' into devAlexandru Croitor2020-03-121-0/+30
|\ | | | | | | | | | | | | Conflicts: dependencies.yaml Change-Id: Ifff48b9d0e7962d481e63c49399e2d304e1011e5
| * CMake: Regenerate and adapt to merge from devwip/cmakeAlexandru Croitor2020-03-121-2/+2
| | | | | | | | | | | | Change-Id: If8daa6152a563d4309d7342414780ef75b9f5589 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
| * Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2020-03-1212-33/+142
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: dependencies.yaml src/qml/qml/qqmlengine.cpp Change-Id: I6a73fd1064286f4a2232de85c2ce7f80452d4641
| * | Regenerate projects to handle private deps correctlyAlexandru Croitor2020-02-051-4/+1
| | | | | | | | | | | | | | | | | | Change-Id: Ifcbab0407e93dfc35d0459d7d29dee2cd3508a86 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | QML Type Registrar changesLeander Beernaert2020-01-241-0/+1
| | | | | | | | | | | | | | | Change-Id: I36254a688f575e6c7f717ee4019e4d49f73a60f7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | Post merge fixesLeander Beernaert2020-01-241-2/+2
| | | | | | | | | | | | | | | Change-Id: Ie8aca222809f35174fb6c6488832ec3ff5432272 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | Merge remote-tracking branch 'origin/dev' into wip/cmakeLeander Beernaert2020-01-163-193/+6
| |\ \ | | | | | | | | | | | | Change-Id: I0c5b939c70bdb91ccdf7068784308416dcaa5736
| * | | Regenerate all projects with new CMake API versionAlexandru Croitor2019-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ie0db35f674137c229eaf049616f38f8e818f7092 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | Regenerate projectsAlexandru Croitor2019-11-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I38044c382e4d84b5865a19cdd04cc8922bd72a77 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | Regenerate required projects after dev -> wip/cmake mergeAlexandru Croitor2019-10-141-0/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic5f1909731ec11b4fb6bc8823506d272c529ecfb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2019-10-149-14/+112
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed dependencies.yaml because we don't use it yet in wip/cmake. Fixed conflict in qmlcachegen.cpp. Change-Id: Ie1060c737bee1daa85779903598e5b6d5020d922
| | * \ \ Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-09-279-14/+112
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/folderlistmodel/plugin.cpp src/imports/shapes/plugin.cpp src/qml/qml/qqmlengine.cpp src/qmlmodels/qqmlmodelsmodule.cpp src/qmlworkerscript/qqmlworkerscriptmodule.cpp src/quick/items/qquickitemsmodule.cpp Change-Id: Ib9215a07aa95b5801ce3cb7287f7903926e8c838
| * | | | | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-10-111-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | Change-Id: I4a91928610f79c8e21a05781953ffa41508c828a
| | * | | | Merge remote-tracking branch 'origin/dev' into wip/qt6Ulf Hermann2019-09-051-1/+1
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/qml/qqmlengine.cpp src/qmlmodels/qqmlmodelsmodule.cpp Change-Id: Id60420f8250a9c97fcfe56d4eea19b62c6870404
| * | | | | | Regenerate qtdeclarative before mergeAlexandru Croitor2019-10-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5710110679220c4e22bc7f8b540f18a51b735ddf Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
| * | | | | | Add qt6_add_qml_module() public APILeander Beernaert2019-09-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add qt6_add_qml_module() as a public API for building QML modules. Since the shared implementation details are small, it was easier to just reimplement the shared code than to unmangle the more complicated version we use to build Qt from QtBuild. This patch includes an example conversion. Changes for pro2cmake will follow in a separate patch in qtbase. Change-Id: I942526cc7d978e2d8309b506e785f9c1509d0bbc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | | | | Re-generate QML imports after latest pro2cmake changesSimon Hausmann2019-08-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The resource prefix is now calculated. Change-Id: If6faf9aea193a534d3b02d00de28c59724974d3c Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | | Update qml modulesLeander Beernaert2019-08-011-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updated qml modules to be compatible with the latest changes to add_qml_modules. Change-Id: I3342a1375bfa64a16fb0c54f812c56bad173f73c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | | | | Update add_qml_module() call to match new requirementsLeander Beernaert2019-07-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add INSTALL_QML_FILES as the default option for all qml_plugins. Change-Id: I567aeff7b4b2b40765c83ac08ab7af3917a25981 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | | | | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-07-241-2/+1
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I52b2d17d9334313e4b3d84b52432f2ebc77f7415
| | * | | | | Fix module imports when building with Qt Version 6.0.0Simon Hausmann2019-07-151-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For modules such as QtQuick we register 2.$QT_VERSION_MINOR to allow our users to simply use the latest "Qt version" with their imports. When switching to version 6.0.0, code that used import QtQuick 5.13 would stop working because we had some types registered to say minor version 10 but nothing after that, and the qmlRegisterModule() call would use QT_VERSION_MINOR, which is now zero. Therefore in this Qt 6 branch, let's stick to the latest Qt 5 release planned, to maintain compatibility. Change-Id: I174be32cef8de152cd32010156ae716bd474397c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * | | | | | Build projects from src/importAlexandru Croitor2019-07-241-0/+30
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to build the projects under src/imports. All the CMakeLists.txt were generate with pro2cmake, except for src/imports/builtins. Change-Id: I06046ede82ba5b1e677e92b7548f543d020b0354 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-113-13/+0
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | | | | | | | Change-Id: I0d32fc5b99f8c9e4acb922fffe4dd5f3c5be553c
| * | | | | Remove hard-coded notes for 'Corresponding handler' for QML signalsTopi Reinio2020-03-103-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDoc will generate these notes automatically. Task-number: QTBUG-37355 Change-Id: I8ed058ecbbcc630ad0351f6ce167c3fa61936f6f Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | | | | Fix all import versionsUlf Hermann2020-02-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bump all the *.15 versions to QT_VERSION and use QML_IMPORT_VERSION rather than IMPORT_VERSION. Change-Id: I5bfbc960d119a7386bdcedb9bdbfdbfa4486a187 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | | | | Add major version to all Q_REVISIONsUlf Hermann2020-02-196-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Id72fbe10c16de61bd847773d0055d83cfe03f63c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-02-178-32/+132
|\| | | | | | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/qtqml/plugin.cpp src/qml/qml/qqml.h src/qml/qml/qqmlmetatype.cpp src/qml/qml/qqmlmetatype_p.h src/qml/qml/qqmltypeloader.cpp src/qml/types/qqmlbind.cpp src/quick/items/qquickitemsmodule.cpp tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp Change-Id: I52548938a582cb6510271ed4bc3a9aa0c3c11df6
| * | | | statemachine: Use new QQmlListProperty capabilitiesUlf Hermann2020-02-067-31/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ic471ba4f82bdf1ac63953927d0a83f514d0e49d0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | | | Synthetically reference type registration functionsUlf Hermann2020-02-041-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add unused volatile pointers to the type registration functions in each import plugin. We need to do this in order to prevent the linker from optimizing the registration away. There are two ways for this to happen: When linking statically, the linker will examine the referenced symbols on a per-object base and leave out all unreferenced objects. When linking dynamically, the linker may do the same on a per-library base and drop any unreferenced libraries from the dependencies. Forcing a reference to the type registration function prevents both. The volatile technique allows us to remove the previous qCDebug() hack. Having an unused volatile auto variable should only result in a single memory read as runtime overhead. The qCDebug() technique would generate a read and a block of mostly dead code (as no one would ever use that logging category). Fixes: QTBUG-81622 Change-Id: I255667276dfd355b19baa17b1aad3db406bf1954 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | Fix maximum minor to 15 for importsUlf Hermann2020-01-141-1/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | QT_MINOR_VERSION resets to 0 in dev. Change-Id: I0b0210c3664c8c42b5dfabf13abac2beef2a0e34 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | / Generate registrations for all importsUlf Hermann2020-01-103-193/+5
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we can generate all QML type information at build time, we should also use it. Move the types for QtTest into the testlib import plugin. They don't need to be exported from QtQuickTest. Trigger the resource initialization of the shapes library from the plugin so that we retain a dependency and the linker doesn't optimize the module initialization away. Change-Id: Icc8cb338aa03ef1e3085e29356a5db7b73ba0a01 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | Specify parameters of type registration in class declarationsUlf Hermann2019-09-269-14/+112
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using this technique we can automatically register all necessary revisions and minor versions of a type, using the metaobject system. This greatly reduces the potential for mistakes and resulting incompatibilities between versions of imports. We assume that for each type we need to register all revisions of its super types and its attached type, and that the revisions match. That is, if you import version X of type A, you will also get version X of its attached type and of any super types. As we previously didn't take these dependencies into account when manually registering the types, a number of extra revisions are now registered for some types. Potentially, we can now generate the qmltypes files at compile time, using moc. Change-Id: I7abb8a5c39f5e63ad1a0cb41a783f2c91909491b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Regenerate plugins.qmltypesUlf Hermann2019-08-261-1/+1
|/ | | | | | Change-Id: I9e470d08ee93c44663e6f99cebe7817c90cba3e4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* StateMachine: Warn about invalid childMode changesErik Verbruggen2019-05-212-0/+16
| | | | | | | | | | | | In QML there is 1 way to set the childMode property on a state machine, so for invalid values we can generate a nice warning. The fix for the behavior of the underlying QStateMachine is in cfdbfcebbda5f26b89c70df6b191b17ef242e9d7 Task-number: QTBUG-49975 Change-Id: I142bdaed2e5336b95bf659066143ac6c2cadeb62 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Split CompiledData::CompilationUnit in twoUlf Hermann2019-05-162-5/+7
| | | | | | | | We need a CompilationUnit that only holds the data needed for compilation and another one that is executable by the runtime. Change-Id: I704d859ba028576a18460f5e3a59f210f64535d3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Remove unused includes of qv8engine_p.hUlf Hermann2019-04-091-1/+0
| | | | | Change-Id: Ic135a863581d29a3afb9c6c7f070d2630b3913b4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Update plugins.qmltypes for Qt 5.13Kai Koehne2019-03-131-1/+1
| | | | | | | | Task-number: QTBUG-73484 Change-Id: I089f5122817a4da1fce13f55d2975240d741b9f6 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Update plugins.qmltypesKai Koehne2018-09-062-1/+3
| | | | | | | | | | | | | by running cd qtdeclarative/imports; for path in `find . -name Makefile -print`; do pushd `dirname $path`; make qmltypes; popd; done in the build directory. Local file paths in the command line were then edited out by hand. Task-number: QTBUG-70264 Change-Id: I931604aff6a779915708395e8b8dbdf659cbd637 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Clean up QQmlCustomParser APISimon Hausmann2018-07-302-5/+5
| | | | | | | | Consistently provide a smart pointer to the compilation unit in the two virtual functions. Change-Id: I2f43d4d17102082577f2502424d288d40eb7479d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove the code to manually initialize resources in static buildsSimon Hausmann2018-05-021-8/+1
| | | | | | | | | After commit be9a56e5e3ced5d0d668fa24e4c65ae928f2e25a in qtbase, this is not needed anymore. Instead the resource system injects the plugin entry point with a reference to all resources. Change-Id: I7275029bd4c15eda6bb8c2ab7ae8c1cd3933aedb Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Document latest QtQml.StateMachine import version to be 2.11Kai Koehne2018-04-202-2/+2
| | | | | | | | | Since commit 214fbaa57b73296a0 the latest minor version of the import is automatically the Qt minor version, so let's also document this. Change-Id: I61a1015d74beaeac9d7a2aecd73e3f05c8a545c9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* add qmlRegisterModule to all QML plugins (QUIP 99)Shawn Rutledge2018-03-211-0/+3
| | | | | | | | | | | | | | | | | Now it should always be possible to do import QtQuick.Module x.m where x is the module's major version and m is Qt's minor version. [ChangeLog][QtQuick][Important Behavior Changes] In Qt 5.11 and newer versions, QML plugin modules are available with the same minor version as the Qt release minor version number. For example it's possible to import QtQuick.Window 2.11 or import QtQuick.Layouts 1.11 even though there haven't been any API changes in these modules for Qt 5.11, and the maximum possible import version will automatically increment in future Qt versions. This is intended to reduce confusion. Change-Id: I0d28ed04d186bcdd5acde95b8ed0b66c1c4697e3 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Simplify handling of function expressions as signal handlersMichael Brasser2018-03-211-7/+0
| | | | | Change-Id: I4bfa05b4619c248119c78d05e64270e6627f6065 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Handle function expressions in SignalTransitionMichael Brasser2018-03-211-3/+11
| | | | | | | | Extend 22b13921f8067f8a93164875a4ad59bed85b0400 to SignalTransition. Change-Id: Ic7d03353efaa7ba894b913e5b0bc193d648d21df Task-number: QTBUG-50328 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>