summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* get rid of test type 'shell'Oswald Buddenhagen2016-08-1212-187/+160
| | | | | | | | | | | | it's bound to the bourne shell, which is not readily available on windows hosts. on the way, the pch, fvisibility, and bsymbolic_functions tests were rewritten as regular compile tests. they now just verify that qmake's built-in support for the tested features actually works. Change-Id: Ibac246f21b5ececa40da3f576dc789982eaf9fdf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* nuke forgotten orphaned test (xkb)Oswald Buddenhagen2016-08-122-72/+0
| | | | | | | d520c825f already mentioned it, but failed to actually remove it. Change-Id: I3aef8f057baad1c1c66aab8b3e5c4e879a544834 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove dead code relating to largefileLars Knoll2016-08-121-1/+0
| | | | | | | | | We set CONFIG+=largefile directly from configure, and there is never a largefile feature in QT_CONFIG. Change-Id: I3518c749d674529b272685b6ed6c738e48ee5cd7 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* remove left over debug messageOswald Buddenhagen2016-08-121-1/+0
| | | | | Change-Id: I2750e9561c006e7e9dae569af0e1c9095cb1b8f7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* rename the -redo status file to config.optOswald Buddenhagen2016-08-122-7/+10
| | | | | | | | | configure.cache is really kinda misleading. the old name is still recognized for backwards compat. Change-Id: I5ca461e99a0f9336ad70adfa5b8f6bb81ad73bbb Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* remove redundant LIBS += -lGALOswald Buddenhagen2016-08-122-2/+0
| | | | | | | | it's part of the egl libs. Change-Id: Id41909f2e1cc5a6a1a22a49d4bf24da43e69a417 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QRegion: mark as sharedMarc Mutz2016-08-121-0/+1
| | | | | | | For BC reasons, it can only be NOT_MOVABLE_UNTIL_QT6. Change-Id: I09e158e0f6ce24f47ad4d19ea78832dbd2352db3 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Cocoa: use QImage::toCGImage()Morten Johan Sørvig2016-08-121-42/+10
| | | | | | | | Keep behavior of converting via Format_ARGB32_Premultiplied for unsupported formats Change-Id: I64083a88a99640dde42a0a201ce8ea08affe5259 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* QSslDiffieHellmanParameters: make fit for releaseMarc Mutz2016-08-125-38/+55
| | | | | | | | | | | | - add missing \since 5.8 on free functions - fix \relates of qHash to point to QSslDHP, not QHash, which is in another module - API fix: use named instead of unnamed ctors - share code between ctors - API fix: add inline move ctor (for now, this requires using a naked d pointer, which isn't much of a problem, since the class is immutable). Change-Id: Ic30f9c3c03b8a3798e0676e38991ead85c587214 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Add list of 3rd party code attributions to Qt Core, Qt GUI, Qt SQLKai Koehne2016-08-123-1/+39
| | | | | | | | | | Also document the current license the modules are available from, since this is not consistent anymore across Qt. Task-number: QTBUG-55139 Change-Id: I117fdb0cda7bd7ff92aa825e29c28f22a8a2f96d Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* Add \externalpage for The Qt CompanyKai Koehne2016-08-121-0/+4
| | | | | Change-Id: If8f8e949c6c6799fbe2e382fee3b1fcccab6a350 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add qt_attribution.json filesKai Koehne2016-08-1240-0/+1358
| | | | | | | | | | | | | | The format is documented in http://wiki.qt.io/Qt_attribution.json Also add a LICENSE file in case there is none yet (usually copied from the source headers). Task-number: QTBUG-55139 Change-Id: Ib54c73d0bb9946cfd8579e86c6858035184ca516 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Make imageAt and formatAt more robus against different font metricsSimon Hausmann2016-08-122-9/+2
| | | | | | | | | Don't try to locate the text by coordinates at the edge of the text but simply aim at the center vertically _and_ horizontally. Task-number: QTBUG-52991 Change-Id: Ia9e84fc5d12491840e739c4eea730fe13058f3c7 Reviewed-by: Simo Fält <simo.falt@theqtcompany.com>
* QCoreTextFontEngine: Remove calls to deprecated API on macOSGabriel de Dietrich2016-08-121-17/+10
| | | | | | | | | | CGContextShowGlyphsWithAdvances has been deprecated since 10.9. We use instead CTFontDrawGlyphs as recommended by Apple. Change-Id: I568bf588f403228e3b695e42dfe39de807537a9d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Darwin: Add QImage::toCGImage() conversion functionMorten Johan Sørvig2016-08-116-2/+205
| | | | | | | | | | | | | | | | | | | (Move QT_FORWARD_DECLARE_CG to qglobal.h) This function converts to CGImage for supported formats. This is done by creating a CGImageRef that reuses the QImage data. The CGImage and QImage ref counting systems are bridged, implemented by using CGDataProvider that holds a copy of the QImage. Unlike the previous internal implementation this public version does not implicitly convert unsupported formats to ARGB32_Premultiplied. See included documentation for the complete description. Change-Id: Ie3984a7a8331e02a6f1c42943caaf76854e93538 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* evdevtouch: Enable touch in multi-screen eglfs environmentsLaszlo Agocs2016-08-119-9/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parse the touchDevice property from the KMS/DRM config file. When all outputs have an explicitly specified index in the virtual desktop, we can set up a mapping between the device node and the screen index. It is somewhat fragile (device nodes may change, requires explicit virtualIndex properties for all outputs, etc.) but better than nothing. For example, having the screen on DisplayPort as primary and the touchscreen on HDMI as the secondary screen breaks by default because touching the second screen generates touch (and synthesized mouse) events for the first screen. Assuming the touchscreen is /dev/input/event5, the issue can now be fixed by setting QT_QPA_EGLFS_KMS_CONFIG with a configuration like the following: { "device": "drm-nvdc", "outputs": [ { "name": "HDMI1", "touchDevice": "/dev/input/event5", "virtualIndex": 1 }, { "name": "DP1", "virtualIndex": 0 } ] } Task-number: QTBUG-54151 Change-Id: If97fa18a65599ccfe64ce408ea43086ec3863682 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* eglfs: Configurable screen order in the virtual desktopLaszlo Agocs2016-08-1113-74/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | Say one wants a virtual desktop with the display on HDMI above the display on DisplayPort: { "device": "drm-nvdc", "virtualDesktopOrientation": "vertical", "outputs": [ { "name": "HDMI1", "virtualIndex": 0 }, { "name": "DP1" } ] } Undefined virtualIndex values map to INT_MAX and will go after the explicitly specified ones. However, the sorting is stable so the original order from the DRM connector list is preserved between such outputs. Task-number: QTBUG-55188 Change-Id: I204fb08205ea7dbfbcdefd1d22ed22f5387f3e8c Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Document HTTP2Allowed attributeTimur Pocheptsov2016-08-111-0/+8
| | | | | Change-Id: Ia318bf4b73f4716106f60370ed9ddff94f677eba Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* Enable cleartext HTTP/2 and bring the auto-test back to lifeTimur Pocheptsov2016-08-1110-92/+119
| | | | | | | | | | | | | | HTTP/2 does not require TLS connection, it can work in a cleartext mode. Plus at the moment only OpenSSL backend allows HTTP/2 negotiation via ALPN/NPN (and none of our CI configurations with OpenSSL supports these extensions, rendering HTTP/2 auto-test useless). This patch implements cleartext HTTP/2 ('h2c') in 'direct' mode - this is allowed if a client has a prior knowledge that HTTP/2 is supported by a server. Change-Id: I4978775e9732c40bc77f549b83bb4a5d1761887e Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* http2frame - do not rely on a socket's bufferTimur Pocheptsov2016-08-113-85/+115
| | | | | | | | | | | | | | | - Whenever we have a read notification, read this data, even if it's not enough for a frame's header - otherwise, QNAM can use a socket in an Ubuffered mode and FrameReader can potentially fail to read anything correctly. - Do not call/rely on bytesAvailable and do not try to invoke _q_receiveReply in Qt::QueuedConnection mode, instead try to read until we end up in an incomplete frame or some error. Change-Id: I7f44ba9e34bc64f3e26bd29080f0050da635b3ae Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* add some unix-specific options understood by configure.exeOswald Buddenhagen2016-08-112-7/+20
| | | | | | | | | | | | it's really a bit weird that the windows configure has more options to configure unix features than the unix one, even if some are just workarounds for missing auto-detection. unlike in configure.exe itself, -posix-iconv is now also understood for symmetry with -gnu-iconv and -sun-iconv. Change-Id: Ic15376e5822e43b998bd17f02c11e5dd0567dc2b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* add missing 'disable' fields to {sun,gnu}-libiconv featuresOswald Buddenhagen2016-08-111-0/+2
| | | | | Change-Id: Ieed30c1cf388157c47c8a58979b8c214223d351a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* refactor the configure help outputOswald Buddenhagen2016-08-111-429/+263
| | | | | | | | | - remove the redundantly listed -no-* options and indicate the defaults differently - completely regroup the options into somewhat logical sections Change-Id: Iaa87c2f3749944cd3fc2ec18975767c04892f746 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix ssl handling in configure to be compatible with configure.exeLars Knoll2016-08-111-0/+3
| | | | | | Change-Id: I0fdd3aebaa9d2a4c68ee6ebc0b7a24868f3c2aa5 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* fix quoting in the basic qmake command constructionOswald Buddenhagen2016-08-111-4/+6
| | | | | | | | | ... and refactor it to make it less scary. note that "qmake_args" now basically means "qmake + args". Change-Id: Ifa5b756642de95e2aadf01606d936ea1d7a18210 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* don't use error() for user errors, take 2Oswald Buddenhagen2016-08-111-4/+4
| | | | | | | missed configure.pri previously. Change-Id: Ie642526a830ca6471d3f92507c7b22c812db0d86 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* use qtLog() to also print command outputOswald Buddenhagen2016-08-111-2/+1
| | | | | Change-Id: I950bc86b0b2dafcb8f2369478f391dc05280194f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix configure qtLog()Oswald Buddenhagen2016-08-111-4/+3
| | | | | | | | its actual function was qtLogCommand(), but all callers outside configure_base.prf apparently didn't know that. adjust implementation. Change-Id: I910d4ba33c6f31debc81c37e3bfff1a288190355 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* make sure that we capture the entire test command's outputOswald Buddenhagen2016-08-111-1/+1
| | | | | | | | the command can be a compound statement (usually 'foo && bar' style), so enclose it in parens before redirecting stderr. Change-Id: Ib72a2c8ddfd17bf9457e9cfe2652121258ce9a64 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* make it impossible to lie about the feature an output belongs toOswald Buddenhagen2016-08-102-4/+2
| | | | | | | | | | overriding an output's 'feature' field would just lead to confusing error messages. the right way is setting the 'name' field. adjust the 'dbus' library output to this policy. Change-Id: I912133f3a0a50fc55f2e16a1ed6bfa464aae8d88 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* make the egl-viv and egl-brcm config tests less convolutedOswald Buddenhagen2016-08-103-5/+1
| | | | | | | | don't mix in gles2 stuff, and rely on the library definitions from the mkspec. Change-Id: Id81b27a8c4f24729866d3ceb5cf97b443def542c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* restore lost egl-mali-2 testOswald Buddenhagen2016-08-101-1/+6
| | | | | Change-Id: I6e9e8244768d7e702a8a20ed18f5f0293dfefead Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* rename the eglfs-* testsOswald Buddenhagen2016-08-101-8/+8
| | | | | | | the test names should be about the dependency, not the purpose. Change-Id: I6e45f4caa36e6c6a9e62092416bcab89893db3d2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* remove redundant x11 handlingOswald Buddenhagen2016-08-103-16/+0
| | | | | | | | one of the effects of CONFIG+=x11 is LIBS+=$$QMAKE_LIBS_X11, so it's positively pointless for project files to do the same. Change-Id: I4085acd6254401897b34e131c2cb57f1f76a3638 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* delete orphaned config testsOswald Buddenhagen2016-08-1021-614/+0
| | | | | | | | | | | | mitshm, xcursor, xfixes, xrandr, xshape, and xsync were dead for a long time (see also 4cb795cbdb). glxfbconfig was also dead (see also d54b77d55). x11/notype and x11/xkb became dead in 4535913c4f. javascriptcore-jit became dead in 24f1025663. stdint was another webkit vestige (see also 1b716724f7). Change-Id: I04f408cb917c767951645c6445f15f24378fa43a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix over-quoting of OPENSSL_LIBS and QT_HOST_CFLAGS_DBUSOswald Buddenhagen2016-08-102-2/+4
| | | | | | | | | | we pass the pre-quoted value directly to the output function, which adds another layer of quoting. to avoid over-quoting, introduce the 'eval' attribute which sends the value through eval() first, thus removing the extra quoting. Change-Id: Ic63a50cb7eccc61b0f730476e124339aeb95586c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix exit paths when pkg-config is not foundOswald Buddenhagen2016-08-101-2/+4
| | | | | | | | while the previous code actually worked, it's probably more or less coincidence that running "false" produces the correct result. Change-Id: Ib332bd6789ac7188570ba1af4676494b4e2c9d8c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix use_gold_linker not being used by compile testsOswald Buddenhagen2016-08-101-0/+3
| | | | | Change-Id: Ib43ddb5174fd2d9b45f3c1a3e6d90f2b8f0dddd1 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* platform-scope the test executables the arch test is looking forOswald Buddenhagen2016-08-101-3/+3
| | | | | | | | this is clearer, and avoids potential false hits if the target OS is changed without cleaning the build dir first. Change-Id: If88f3c555740dc9ff559c172b4b005ed8bfb60ae Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* don't distclean before every compile test run in non-clean build dirOswald Buddenhagen2016-08-101-1/+2
| | | | | | | | | | | | | due to gmake's Makefile auto-rebuild feature, the distclean would typically invoke qmake. overall, the step would almost double the run time of each compile test. instead, just clean between the regular qmake and make steps. this deletes the object file the test executable depends on, so this is sufficient to trigger a full rebuild. Change-Id: If8e254e172dd169e31fd606d9ef31d9a14f670d8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix 'test' field checking in qtConfOutput_library()Oswald Buddenhagen2016-08-101-2/+5
| | | | | Change-Id: I7cfcc33e188713f32d31e023999f5059c0bd05b1 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* add support for returning the command's exit status to $$system()Oswald Buddenhagen2016-08-105-15/+28
| | | | | | | ... and make use of it in qtRunLoggedCommand(). Change-Id: I242dfde344f555800cef1f55d3cb85418a93277f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix handling of multi-token fields in config test definitionsOswald Buddenhagen2016-08-102-22/+31
| | | | | | | | | | | | | | standardize on the fields in the json structure being single strings in which separate elements are quoted and space-joined (because quoting is unlikely to be necessary in the json file itself, and this format avoids the visual noise of array handling). the quoting itself is expected to be qmake-compatible, which is assumed to be the case for the output of pkg-config (it's actually shell-quoted, but that's the same except in some not-so-relevant corner cases). Change-Id: Icc1d7abc02c449fa759d9714bc5e56e2b8809585 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix passing arguments with spaces to configure -D/-I/-L/-FOswald Buddenhagen2016-08-102-8/+8
| | | | | Change-Id: Ic03e487e5988fa38246975b52d1494af58ccb22f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* remove workarounds for spurious function argument inheritanceOswald Buddenhagen2016-08-101-8/+8
| | | | | | | the qmake bug has been fixed recently. Change-Id: I4a4226b3cd77d449980f73e41cd256ed43940a09 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix QZip autotest and enable QZip and QTextOdfWriter tests againOswald Buddenhagen2016-08-102-3/+5
| | | | | | | | | don't refer to non-existent feature 'OdfWriter', and test these classes if we have a developer build. Change-Id: I59b0d4bbba4958ed3bd76f504cd8b493dbd7f877 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Add a benchmark for QReadWriteLockOlivier Goffart2016-08-103-0/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Results on current dev branch [955b2bdfc0cb1d707f8914be230e5e00c548b6ab]: thread count: 4 ********* Start testing of tst_QReadWriteLock ********* Config: Using QtTest library 5.8.0, Qt 5.8.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 6.1.1 20160707) PASS : tst_QReadWriteLock::initTestCase() PASS : tst_QReadWriteLock::uncontended(nothing) RESULT : tst_QReadWriteLock::uncontended():"nothing": 1,113,292.1 CPU ticks per iteration (total: 11,132,922, iterations: 10) PASS : tst_QReadWriteLock::uncontended(QMutex) RESULT : tst_QReadWriteLock::uncontended():"QMutex": 35,490,310.7 CPU ticks per iteration (total: 354,903,108, iterations: 10) PASS : tst_QReadWriteLock::uncontended(QReadWriteLock, read) RESULT : tst_QReadWriteLock::uncontended():"QReadWriteLock, read": 40,513,695.0 CPU ticks per iteration (total: 405,136,950, iterations: 10) PASS : tst_QReadWriteLock::uncontended(QReadWriteLock, write) RESULT : tst_QReadWriteLock::uncontended():"QReadWriteLock, write": 43,179,327.2 CPU ticks per iteration (total: 431,793,272, iterations: 10) PASS : tst_QReadWriteLock::uncontended(std::mutex) RESULT : tst_QReadWriteLock::uncontended():"std::mutex": 37,733,243.0 CPU ticks per iteration (total: 377,332,430, iterations: 10) PASS : tst_QReadWriteLock::uncontended(std::shared_timed_mutex, read) RESULT : tst_QReadWriteLock::uncontended():"std::shared_timed_mutex, read": 71,517,438.7 CPU ticks per iteration (total: 715,174,388, iterations: 10) PASS : tst_QReadWriteLock::uncontended(std::shared_timed_mutex, write) RESULT : tst_QReadWriteLock::uncontended():"std::shared_timed_mutex, write": 69,967,867.5 CPU ticks per iteration (total: 699,678,676, iterations: 10) PASS : tst_QReadWriteLock::readOnly(nothing) RESULT : tst_QReadWriteLock::readOnly():"nothing": 479,393,335.3 CPU ticks per iteration (total: 4,793,933,354, iterations: 10) PASS : tst_QReadWriteLock::readOnly(QMutex) RESULT : tst_QReadWriteLock::readOnly():"QMutex": 823,493,383.2 CPU ticks per iteration (total: 8,234,933,832, iterations: 10) PASS : tst_QReadWriteLock::readOnly(QReadWriteLock) RESULT : tst_QReadWriteLock::readOnly():"QReadWriteLock": 559,816,053.6 CPU ticks per iteration (total: 5,598,160,536, iterations: 10) PASS : tst_QReadWriteLock::readOnly(std::mutex) RESULT : tst_QReadWriteLock::readOnly():"std::mutex": 961,903,416.3 CPU ticks per iteration (total: 9,619,034,164, iterations: 10) PASS : tst_QReadWriteLock::readOnly(std::shared_timed_mutex) RESULT : tst_QReadWriteLock::readOnly():"std::shared_timed_mutex": 1,786,254,363.5 CPU ticks per iteration (total: 17,862,543,636, iterations: 10) PASS : tst_QReadWriteLock::cleanupTestCase() Totals: 14 passed, 0 failed, 0 skipped, 0 blacklisted, 44507ms ********* Finished testing of tst_QReadWriteLock ********* Change-Id: I42189f7a356dcb36378e9d54111b7fbe89e62402 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* libinput: Fix high dpi scaling supportLaszlo Agocs2016-08-101-1/+3
| | | | | | | | Bring it onto the level of evdevtouch. Task-number: QTBUG-55182 Change-Id: Iaba58234fa6289870d60f0fcc351d4b97655f3e2 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* eglfs: Fix rotation support with the DRM backendsLaszlo Agocs2016-08-107-11/+13
| | | | | | | | The change in QEglFSScreen::geometry() was not reflected in the advanced backends that subclass it. Change-Id: I6494a96f0b9afaea3722c61035d4b46bf2473897 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* eglfs: Add basic support for controlling how the virtual desktop is formedLaszlo Agocs2016-08-103-5/+34
| | | | | | | | | Choose between horizontal (default) and vertical. Task-number: QTBUG-55188 Change-Id: Ibc490b0ad8c60b66db785455c57987eb8afdad0d Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com> Reviewed-by: Andy Nichols <andy.nichols@qt.io>