summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add move semantics to QContiguousCacheLars Knoll2020-03-141-34/+60
| | | | | | | | | | Provide move semantics for QContiguousCache. Do further cleanup of the code and avoid special casing for complex typeinfo where it won't make a difference anyway. Change-Id: I9bd261aec21be7a050e04f5b3a1f0b8e1d94c064 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Cleanup code in QContiguousCacheLars Knoll2020-03-141-94/+74
| | | | | | | | | Remove the union being used to hold the d-pointer, as accessing both members of the union on the same data is technically undefined behavior. Change-Id: Ia5a063d97538222575a47e9462c0675acdf32aef Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Pass --verbose flag to ninjaAlexandru Croitor2020-03-135-7/+7
| | | | | | | | | To allow seeing the exact compiler flags when build in Coin. We do the same for qmake builds. Change-Id: I8c43f35b95d722d914aaeaa8860720a3a0578737 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Don't make a private module depend 1kk times on the public oneAlexandru Croitor2020-03-131-1/+2
| | | | | | | | | The exported INTERFACE_LINK_LIBRARIES property now looks a lot more sane. Change-Id: I093fcb242607023dd0b103298562b299cb803028 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QRegularExpression: inline some compatibility callsGiuseppe D'Angelo2020-03-132-13/+13
| | | | | | | | | The functions take QStringView now. The ones taking QString can be implemented inline (BC break). Drive-by change, use qToStringViewIgnoringNull. Change-Id: Ia3089c574446418e5ab93e08e21869ef19fbfbfd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove an outdated commentGiuseppe D'Angelo2020-03-131-8/+0
| | | | | | | | QRandomGenerator is now used to seed QHash, so the comment is wrong. Change-Id: Ic50fe95ea4169b55290cc758f5aebfbb0a3ea085 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* cmake: Add default Info.plist for macOS with some important keysTor Arne Vestbø2020-03-134-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | The default Info.plist shipped with CMake lacks an NSPrincipalClass entry, which is crucial for making macOS apps run in full resolution on retina screens. We make sure the file is only picked up on macOS, not iOS and friends, since those platforms require another principal class. If needed we can extract the value out as a CMake variable and use the same file for all Apple platforms. Doing so would assume all keys are single-platform only, so if that's not the case we need platform-specific files. We should probably extract the package type out as a variable too, so that the file can be used for both apps, plugins, and frameworks, but doing so requires setting up that variable somewhere based on the target type, which CMake doesn't allow in an easy way. The file itself is based on the file CMake ships, combined with keys inherited from Qt's existing plist templates for qmake, and adjusted to match what Xcode generates by default these days. Change-Id: I3f5109e5fff63cdbd109a99d4008948d4bd2102b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* High-DPI: Enable AA_UseHighDpiPixmaps by defaultMorten Johan Sørvig2020-03-131-1/+2
| | | | | | | | | | | | | | The effect of this is that QIcon::pixmap() will/may return a pixmap larger than the requested size (with an appropriate devicePixelRatio set), suitable for high-dpi displays. Many use cases, such as painting the image with QPainter, will be unaffected by this change. User code which e.g. iterate over image pixels may have to be updated. Change-Id: I63e867cc1e3f2a0b5cad92e1ffab4fe4de33ae19 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* cmake: Disable GL deprecations on Apple platformsTor Arne Vestbø2020-03-121-0/+6
| | | | | Change-Id: I87b98ae68d996868cefaaf578722ac24be745145 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake handle ${QT_SOURCE_TREE} for include statementsLeander Beernaert2020-03-121-0/+7
| | | | | | | | | | Replace ${QT_SOURCE_TREE} with top level project directory when encountered in include statements. This is required to parse tests/auto/testlib/selftests/test/test.pro. Change-Id: I80f31142cf5a35441d1424c38e21bb097e44cd0f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Reformat the python scripts using blackAlexandru Croitor2020-03-123-29/+48
| | | | | | Change-Id: I1e2eba46eb7c9dfefd267be91790be7898634c3a Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Fix incorrect argument in QtBuildInternalsAndroidAlexandru Croitor2020-03-121-2/+2
| | | | | | | | Uncovered while building qtdeclarative. Change-Id: If1a36f2640a3a5d765e7ca74b0ba1d39ef2a18f0 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Install the QtBuildInternalsAndroid.cmake filleAlexandru Croitor2020-03-121-1/+5
| | | | | | | | | | It's needed when building qtdeclarative. Needs to be copy_or_install to support non-prefix builds as well. Change-Id: Ied59f6a1f8403be3721a0ad46f5a3b2f569028ca Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Regenerate tests projectsAlexandru Croitor2020-03-1227-18/+194
| | | | | | Change-Id: I559bf2c82d83fac9bd3c52a331d99e1e83bc3f87 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Don't build tests and examples by default on Android and iOSAlexandru Croitor2020-03-121-2/+2
| | | | | | Change-Id: Ia31733e2cadfb52d11426c40f3543bedc48342c4 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Propagate minimum required C++ standard to consumers of QtAlexandru Croitor2020-03-122-0/+11
| | | | | | | | | Aka the version of C++ that needs to be supported when compiling applications that use Qt headers (C++17 at the moment). Change-Id: I64dec297e8329f31b1d9864f216a95782049ed06 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake: Handle LIBS_SUFFIX define correctlyAlexandru Croitor2020-03-123-2/+14
| | | | | | | | | Matches the LIBS_SUFFIX define we use in Android conditions and replaces it with a sane amount of escaped characters. Change-Id: I7d870f992c70b105dd80b6fa94f87d3fa5644006 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* rcc: Teach rcc the --no-zstd optionAlexandru Croitor2020-03-124-7/+33
| | | | | | | | | | | | It is needed when cross-building Qt using CMake, where the zstd feature might have different values between the host and target, in which case the build system tells rcc not to use zstd when the feature is disabled. Amends d20c9805763ab3dc504ebf2cefd33499d89ef22c Change-Id: I9dc55b59b1be5272b79aa5f1e2daf2b516a157d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix spelling mistakesTor Arne Vestbø2020-03-111-1/+1
| | | | | Change-Id: I389727ce9b8d3ef2a54156b682ef5aeccb39ebd2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.15' into dev"Qt Forward Merge Bot2020-03-11131-1213/+6180
|\
| * Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-11131-1213/+6180
| |\ | | | | | | | | | Change-Id: Ibee5acec72a1a1769d4bc5f23f56c7dc8d4cf3cb
| | * Doc: Fix documentation for class qfloat16Topi Reinio2020-03-102-22/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class has documented member functions, but only the related \headerfile was documented. The class documentation itself was omitted with the \dontdocument command. Replace the \headerfile with a \class command, and move the global functions to be related to the class itself. Keep the title as a \keyword to avoid breaking any external links. The new class page will inherit the .html file name of the header page, so we're safe in that regard as well. Fixes: QTBUG-82800 Change-Id: Id51539b45e0642d91b304a37f95461ca3d6c9841 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * QVulkanWindow: Fix setQueueCreateInfoModifier signatureLaszlo Agocs2020-03-102-2/+2
| | | | | | | | | | | | | | | | | | | | | ...per API review. Change-Id: I4a5a1cc895eac32f21f8a830507b841318509992 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * Mimetypes: Build fix for Android builds on WindowsCristian Adam2020-03-101-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to Android's multi-abi the build will fail due to concurrent access: cmd /c C:\Projects\Qt\repo\qtbase\src\corelib\mimetypes\mime\generate.bat C:\Projects\Qt\repo\qtbase\src\corelib\mimetypes\mime\packages\freedesktop.org.xml > .rcc\qmimeprovider_database.cpp The process cannot access the file because it is being used by another process. Change-Id: I647e0a6d8aa03cf116b08a1dce6e61e8882661f4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| | * rhi: d3d11: Honor resource/sampler slot limitsLaszlo Agocs2020-03-101-66/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Show a warning but allow applications to survive by not attempting to call VS/PS/CSSetWhatever() with an invalid number of resources. Relevant for samplers in particular, where the limit is 16. Qt Quick 3D exhibits problems with this when using custom materials combined with shadow mapping, and while this is not a solution to the problem there, at least the problem is now clearly indicated instead of crashing. Task-number: QTBUG-82719 Change-Id: I83914b7648001fa421ed1cf07a7b7444e0ef8fc0 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * QDataStream: keep brace delimiters inside #if-scopesMårten Nordheim2020-03-101-1/+2
| | | | | | | | | | | | | | | | | | | | | Because it looks odd. Change-Id: Ic272ae7b1b5a3e0a70884caa683ccbdd3a61ff6a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| | * Schannel: Fix readBufferMaxSize impl with incomplete data optimizationMårten Nordheim2020-03-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following the incomplete data guesstimation optimization the tst_QSslSocket::readBufferMaxSize test would fail due to it waiting for 16K, but the readBufferMaxSize was 10 bytes. Amends 559b563d711db0760a51b0dce26536dbc8766a9d Change-Id: I5d17fac24e73c1305161aff744710b4c5b0b457a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * Bearer management deprecation cleanupMårten Nordheim2020-03-103-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For QNAM: Deprecate the to-be-unused enum and mark the property deprecated in docs For bearermanagement: Add a warning on the bearermanagement documentation page that it is deprecated. Change-Id: I2cbe12ddec444d9f704601f07f3a7c9b70dc4f3c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * Polish the Mandelbrot ExampleFriedemann Kleint2020-03-103-33/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix warnings about float constants and comparison. Use member or constructor initialization. Introduce some const for clarity. Use Qt_CONFIG. Task-number: QTBUG-81254 Change-Id: I71a6ebfba397c0f8e1dd2e61167233c8e5c137af Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * Doc: Mention .qrc compression attributes in resource compiler docsTopi Reinio2020-03-101-4/+15
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-76321 Change-Id: Idf7b4157b46d98392314ccddf6b714f9e620b5f8 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| | * Multithread some QImage routinesAllan Sandfeld Jensen2020-03-096-519/+996
| | | | | | | | | | | | | | | | | | | | | | | | Use QThreadPool to process QImage smooth-scaling, format conversions, and colorspace transforms multithreaded. Change-Id: Ic142b1fa899f56e7e5099d36ca713701a47b681b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * macOS: Support printing when no printers are installedTor Arne Vestbø2020-03-091-35/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even if there are no printers installed, we can still show the print dialog, which gives the user feedback about no printers being installed, allows them to install one, or allows them to print to PDF as a fallback. The code for printing to PDF has been re-enabled, and the conditions of QTBUG-38820 have been removed as the problem is no longer present. The code also takes into account the possibility that the user chose to print to PostScript, which we don't yet support, but warn about. We now also support opening the printed document in Preview. This requires a minor assumption about the print operation being done synchronously after the print dialog is accepted, but this is something we can improve in the future with internal APIs if it turns out to be a problem. Printing workflows such as sending the printed document via mail or messenger are not not supported, and will give a warning. Fixes: QTBUG-36112 Change-Id: I8ba9e2c5ce31a5a06542c4a7126d005e4b27f2be Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * Document how to use CMake for Qt NetworkKai Koehne2020-03-096-25/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add documentation on how to use a module from CMake, alongside the existing documentation about qmake. While at it, also remove the mentioning of the central include; It is not something we should actively advocate anymore. Instead, the documentation of every class gives the correct include to use. Task-number: QTBUG-73058 Change-Id: I71ed5a62f4f0a6d868dd1f84ea39e5ac385a2fb8 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
| | * WinRT: Use the fallbacks for getting the save file nameAndy Shaw2020-03-091-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To bring it in line with the other platforms, then it needs to check if the initially selected files are set and use the first one. Otherwise it can fall back to the initial directory if that happens to include a filename. Change-Id: If34ae0e7e10b6a3c25e9422d9b4f2c21e6bfc8d1 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * qmake: Document qmltypes and metatypesUlf Hermann2020-03-091-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-81615 Fixes: QTBUG-82305 Change-Id: I0a411ff2ebc2dbf5462fa110b1eb70a1876b6ae5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
| | * QDataStream: fix compilation with QT_DISABLE_DEPRECATED_BEFORE=0x0050F00David Faure2020-03-081-4/+8
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-81023 Change-Id: I0d56785d1fed2c4c8e0e87ccefb0b72b0ed3644a Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| | * QtSql/ODBC: allow table names with unicode charsChristian Ehrlicher2020-03-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The ODBC driver did not properly decode table names with unicode chars. Fix it by explicitly passing the unicode flag to qGetStringData(). Fixes: QTBUG-82401 Change-Id: Id6eb44cc85ce196ea97d0d6aef1cd573fa033970 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * Add default arguments to QPainterPath methods using transformJarek Kobus2020-03-0638-15/+52
| | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-82602 Change-Id: Id82f145ffb33e6d4ef9b81282ad14657b1c8fbd0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * rhi: vulkan: Silence useless desc.set validation warningsLaszlo Agocs2020-03-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is deemed more appropriate than having some time consuming tracking of descriptor types in pools, just to avoid the rare case of attempting a failing vkAllocateDescriptorSets(), which is then always followed by another, successful attempt. Change-Id: I7a3a1d80afe400dc96605a3d6c834e8b2c71143a Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * macOS: Disable system provided tabbing by defaultTor Arne Vestbø2020-03-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | macOS 10.12 introduced automatic window tabbing, where the OS provides tab handling on behalf of the application. The feature defaulted to being on, and the release notes asked applications that had their own tab handling to disable the automatic tab handling explicitly. Qt has its own tab handling, and should therefore disable the automatic handling. We do this on a per NSWindow basis, using the tabbingMode property of the window, instead of the global allowsAutomaticWindowTabbing property on NSWindow, so that individual windows can still opt in to the automatic tab handling. Doing it via the tabbingMode property also ensures that we're not affecting the host application's behavior in a plug-in setting. Ideally Qt's tab handling should read the userTabbingPreference property of NSWindow to pick up the system preference choice of whether to open new windows as standalone windows or tabs, but this is left for a later change. An alternative would also be to use the automatic window tabbing instead of our own implementation. Fixes: QTBUG-61707 Change-Id: Icf2078b63ec16202ff7fd83ea264a48dc61978e1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * Fix UB in QProcess deprecation warning fixesJoerg Bornemann2020-03-062-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | The commits e1e08629 and 66e905b1 introduced undefined behavior. Fix this by assigning the result of takeFirst to a temporary. Change-Id: I9e29412cf632d4836b95d47e12d8c07ab0645fbb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * Disable warnings for the deprecated QLinkedListSona Kurazyan2020-03-067-610/+908
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QLinkedList has been deprecated, but we still need to test it. Suppress the warnings for QLinkedList used in tests. Note, that I had to move some of the test code, to avoid repeating QT_WARNING_PUSH/QT_WARNING_POP everywhere. Change-Id: I4203b3ef50045c4f45475a08638dbdc60f68761d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Doc: Mark QColorSpace enum as introduced in Qt 5.15Kai Koehne2020-03-061-2/+2
| | | | | | | | | | | | | | | Change-Id: Ibf2da1ebb4eb9520a2a507ed6afb89f7176391bb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Doc: Fix \sa link for QResource::uncompressedData()Kai Koehne2020-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | No point in linking to itself. Change-Id: Id0bf3fa6878417e541ec0997d34758b0c59e99b3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Doc: Let SQL Drill Down example show correct use of qgraphicsitem_castPaul Wicking2020-03-062-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For qgraphicsitem_cast to work correctly with custom items, one must reimplement the type() function for each custom QGraphicsItem subclass. Do that in the example code. Fixes: QTBUG-7357 Change-Id: Ibf221817908355f0347cddfc46747b6955958f5f Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * rhi: Add support for arrays of combined image samplersLaszlo Agocs2020-03-0519-168/+451
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces a new QRhiShaderResourceBinding function that takes an array of texture-sampler pairs. The existing function is also available and is equivalent to calling the array-based version with array size 1. It is important to note that for Metal one needs MSL 2.0 for array of textures, so qsb needs --msl 20 instead of --msl 12 for such shaders. Comes with an autotest, and also updates all .qsb files for said test with the latest shadertools. Task-number: QTBUG-82624 Change-Id: Ibc1973aae826836f16d842c41d6c8403fd7ff876 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * Fix deprecation warning in QGenericUnixServicesJoerg Bornemann2020-03-051-1/+2
| | | | | | | | | | | | | | | | | | | | | Do not use the deprecated method QProcess::start(QString) anymore. Change-Id: I09eae2c8a1dbb53fd2de004e5030da9bb3c07b14 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * Fix deprecation warning in QProcess::execute(QString)Joerg Bornemann2020-03-051-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | Implement this method in terms of splitCommand and QProcess::execute(QString, QStringList). Change-Id: I1fe78fb53d8b6b34a8796f9fbda380a98a840c99 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * Add 'pass' test to testlib selftestsTor Arne Vestbø2020-03-0510-2/+170
| | | | | | | | | | | | | | | Change-Id: I858cd5e6ef7ad1064166efb7325c62065d46eb27 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
| | * QLoggingRegistry: use QStringView/QLatin1String moreMarc Mutz2020-03-053-28/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - QLoggingRule::parse() and the ctor take pattern as QStringView - parseNextLine takes lines as QStringView and produces the pattern as QStringView for QLoggingRule - (setContent has to wait for QStringTokenizer) - QLoggingRule::pass()'s first argument is always QLatin1String, so take it as one Use chopped() more, add a std::move(). Change-Id: Ic95ea77464a9922fef452846bc6d5053bd5de56e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>