summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Doc: fix typo in QNativeGestureEvent docsMitch Curtis2018-08-231-1/+1
| | | | | | | | | | | | | | | Change-Id: I83ac3463752488d7dbb758ea767ba186ddd3fa2a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | Handle uploading of faked sub-imagesAllan Sandfeld Jensen2018-08-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One trick that is possible to do with QImage is to make it be sub image of its imagedata by manipulating the data start and bytes-per-line, we can not upload that directly and need to detect the case and create a clean copy to upload. Task-number: QTBUG-70105 Change-Id: I7ce184a0892fb4071b6dcc1a1fd3881a4e0703cd Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* | | clangcl: Fix QtGui link error (missing fetchPixelsBPP24_ssse3)Friedemann Kleint2018-08-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Do not try using SSSE3 if the compiler do not support it. (see 648ee7aa020d04b160ec56187f49f761ffab93cc). Task-number: QTBUG-50804 Change-Id: I489b0bbacfde0c647c9d5b71ca3de992d7dc8878 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | configure: add sources matching names from vcpkgMårten Nordheim2018-08-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | It's possible to use vcpkg using the -I and -L arguments, but some of their libraries have different names than what we look for during configure, so add in those variations. Change-Id: Iee37197228cc0f15442ecd7ec4fc761f4d526e1d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | Fix big-endian build of qopengltextureuploaderAllan Sandfeld Jensen2018-08-221-1/+4
| | | | | | | | | | | | | | | | | | | | | Badly placed endif and lacking a break statement. Change-Id: Id6a3fb13b40e8ae8029e74f7668bafb6e0b9dd06 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into ↵Liang Qi2018-08-222-10/+21
|\ \ \ | | | | | | | | | | | | refs/staging/5.12
| * | | Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-08-222-10/+21
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/text/qtextengine.cpp tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h Change-Id: Ib9f968edbb0f3387c89bc25e914321d0738bfadc
| | * | Fix spacing in << operator for QEventMitch Curtis2018-08-211-1/+1
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turns QNativeGestureEvent(ZoomNativeGesturelocalPos=686.855,312.836, value=0.0259857) into QNativeGestureEvent(ZoomNativeGesture, localPos=686.855,312.836, value=0.0259857) Change-Id: Id30860a3c7a1b6da583369126a31934ddb32d4b9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| | * Don't reset the bidi level on spacesLars Knoll2018-08-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a regression introduced with the update to the bidi algorithm. Task-number: QTBUG-69633 Change-Id: I7eac45ed3ffb41f89ea3f793eedcfb6fcdace871 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * Only show the bidi cursor mark if we actually have bidirectional textLars Knoll2018-08-171-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Don't show the mark simply because we have unicode code points larger than 0x590. Task-number: QTBUG-69665 Change-Id: I9af97383f3bcd52277a5288e7ad06ec240c7e51c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Smooth image scaling for 64bit imagesAllan Sandfeld Jensen2018-08-225-68/+302
|/ / | | | | | | | | | | | | | | Adds support for smooth scaling 64bit images. Task-number: QTBUG-45858 Change-Id: If46030fb8e7d684159f852a3b8266a74e5e6700c Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | Fix big-endian buildAllan Sandfeld Jensen2018-08-211-0/+13
| | | | | | | | | | | | | | | | | | Declare rbSwap<QImage::Format_RGBA8888>, so we don't end up in a fallback definition not used by little-endian. Task-number: QTBUG-69951 Change-Id: I8512bba76da7d59a27593d37c70283d881c3e8fc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Windows QPA: Add option to detect AltGr key pressesFriedemann Kleint2018-08-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | According to MSDN, AltGr key presses are sent as a sequence of SYS left Ctrl + right Alt. Add an option to detect AltGr as modifier key. Task-number: QTBUG-69317 Change-Id: I30ce169d2e6dbbae194ff714abfbc732b53652ce Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Merge dev into 5.12Oswald Buddenhagen2018-08-2123-103/+194
|\ \ | | | | | | | | | Change-Id: I63f632b595f66d2fc93e9aa713500e3799e3df2a
| * | Implement exact match expression builder for QRegularExpressionSamuel Gaist2018-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QRegularExpression doesn't offer a direct equivalent of QRegExp's exact match. There are several places in the Qt sources that use this feature. This patch implements a small helper function that builds the expression as recommended in the documentation and updates the related code. [ChangeLog][Core][Tools] QRegularExpression now provides anchoredPattern() which is a helper function to build regular expressions used for exact matching. Change-Id: Idbbf142c4c5cb9b62abf8229f4ce85fd4409e5d0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | Improve Q_ASSERT readabilityJesus Fernandez2018-08-171-1/+7
| | | | | | | | | | | | | | | | | | | | | Change-Id: I231ecafe1eb48d74f787083e86a85536a90ed69b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * | macOS: Teach QWheelEvent to handle a new ScrollMomentum phaseTor Arne Vestbø2018-08-172-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We detect if there's an upcoming momentum phase using the same trick used by e.g. Mozilla in their event handling: https://tinyurl.com/yd8lcs4l, and as recommended by an Apple engineer: https://tinyurl.com/y8yytlgv The event is not guaranteed to be in the queue, but in practice it seems to be. If this assumption fails we can add a wait timeout to the event search instead of using [NSDate distantPast] as a timeout (which only looks at queued events). When the momentum phase is detected, QWheelEvent::phase will have the new ScrollMomentum value, and the phase transitions will be ScrollBegin -> ScrollUpdate -> ScrollMomentum -> ScrollEnd. We no longer send ScrollEnd to signify that the user's fingers have been lifted off the trackpad; rather, the first event with ScrollMomentum phase means that the fingers have been lifted and macOS is now sending simulated-momentum events. This means ScrollEnd is a reliable indicator that the entire scroll gesture (both the user interaction and the momentum) has ended. If the ScrollMomentum phase is skipped, it means the user's fingers came to rest before being lifted, so there is no momentum. In that case the transitions will be ScrollBegin -> ScrollUpdate -> ScrollEnd. Task-number: QTBUG-63026 Task-number: QTBUG-65160 Change-Id: I80191a472f6fa892387004c199166a6350124274 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Liang Qi2018-08-1711-25/+36
| |\ \ | | | | | | | | | | | | refs/staging/dev
| | * | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-08-1711-25/+36
| | |\| | | | | | | | | | | | | Change-Id: I8bb8227f9da982e7d5ebe5324fc27abd9ac0d4fc
| | | * Don't block on lost contextDavid Edmundson2018-08-161-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When glGetError returns GL_CONTEXT_LOST, on XCB + Nvidia at least, the error does not get cleared until the next successful glGetGraphicsResetStatus. We can't handle this properly until the start of the next frame where we will hopefully have a valid context, but in the meantime we should avoid locking up completely. Change-Id: Id438d44d83b926e1f3e4281ca3704231bf1a23cf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | | * doc: Add missing override and remove redundant virtual for snippetsAlexander Volkov2018-08-1610-21/+21
| | | | | | | | | | | | | | | | | | | | Change-Id: I2395fd01b93c4ea364225e0cf1a5f59908b691d0 Reviewed-by: Martin Smith <martin.smith@qt.io>
| * | | Add a method to clear the data to QStandardItemModelLuca Beldi2018-08-172-0/+35
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | After the behavior of setItemData has been changed following QTBUG-45114, QStandardItemModel was lacking an interface to clear all the data from a single index. Task-number: QTBUG-69616 Change-Id: Ide0b5bb6358439fc42c474df8b044fbace6def8d Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: David Faure <david.faure@kdab.com>
| * | Modernize the "thread" featureUlf Hermann2018-08-172-16/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add it to configure.json and replace all occurrences of QT_NO_THREAD with QT_CONFIG(thread). Add conditions for other features that depend on thread support. Remove conditions where we can use the QMutex and QThreadStorage stubs. Change-Id: I284e5d794fda9a4c6f4a1ab29e55aa686272a0eb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-08-161-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qconfig-bootstrapped.h src/plugins/platforms/xcb/qxcbbackingstore.cpp Done-with: Gatis Paeglis <gatis.paeglis@qt.io> Change-Id: I4af138ffb2f5306373244523768209e8873b2798
| | * Fix potential crash when showing line/paragraph separatorsEskil Abrahamsen Blomfeldt2018-08-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When showing line and paragraph separators at an offset from the start of the string, the end of string pointer would be incorrectly set, and we would read past the end of the string. If any part of this memory happened to match the line or paragraph separator, then we would overwrite it and have a crash. I couldn't find any reliable way to test this, since the crash depends on the contents of the memory after the string allocated by the algorithm. But with an overflow of 100 000 characters, I found that it crashed every time I ran the test. [ChangeLog][QtGui][Text] Fixed potential crash when using QTextOption::ShowLineAndParagraphSeparators. Task-number: QTBUG-69661 Change-Id: I17d1996b883560bacdc7ce114c8aeb2b0108faea Reviewed-by: JiDe Zhang <zccrs@live.com> Reviewed-by: Michal Lazo <xlazom00@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * | Fix documentation issue for QOpenGLContext::makeCurrentTor Arne Vestbø2018-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | Change-Id: Id0118e44e1ed44fecdd803dbc57ca0588a1afec0 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * | Improve QWheelEvent debug outputTor Arne Vestbø2018-08-151-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We now include the phase, which is helpful, and we distinguish between modern wheel events with a pixel and/or angle delta, and compatibility events sent from QWindowSystemInterface::handleWheelEvent with the old Qt 4 single value delta and orientation. Change-Id: I2efe9fe7a55c43240ec94bfa70cafaac6d52603c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * | Add direct conversions between RGB30<->RGBA8888Allan Sandfeld Jensen2018-08-151-30/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | Expands the existing conversions for ARGB32<->RGB30 to also handle RGBA8888 to avoid any performance regression of the 16bpc conversion path. Change-Id: I34e519a04276b0e7ff00c6125ba06c889045d2ac Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | Fix delta in QWheelEvent passed to QQuickItemFrederik Gladhorn2018-08-141-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While the property is deprecated, we should still set it, even in the legacy free constructor. The window system never sends x and y changes at the same time, so either coordinate will be null, therefor add them. This should restore the old behavior. Task-number: QTBUG-69089 Change-Id: Ie329cb4196f53c70b25934cbbac5e2e48c65d2b3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | qdoc: Fix several minor errors to reduce qdoc warningsMartin Smith2018-08-141-17/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update corrects several minor documentation errors that cause qdoc warnings. These include incorrect or missing \fn commands, incorrect uses of \e and \a commands together, incorrect spellings, etc. Change-Id: Ib26edef541fa3440025490bcf79cc101623e7f7b Reviewed-by: Martin Smith <martin.smith@qt.io>
| * | macOS: Handle missing key in QKeySequencePrivate::decodeString()Erik Verbruggen2018-08-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On macOS we pull out all the modifiers up front, which in the case of incomplete key sequences such as "Meta+Shift+" will result in an empty string as a result. The cross-platform code does not handle that case, so we need to exit early. This fixes an assert in tst_QKeySequence::parseString(). An assert has been added to QKeySequencePrivate::decodeString() to make the assumption about the 'accel' argument explicit. Change-Id: I135e62f9051a8b899202e5fb224b5d3c77bf2062 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | Allow setting the QIcon fallback themeAlbert Astals Cid2018-08-204-6/+53
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows apps that know their icons are in a given icon theme to set that theme as fallback, so in case the user theme does not include them, the icons can still be found. This solves the problem of missing icons that often happens when running KDE applications on a GNOME desktop. Change-Id: I4e5543d598012352a29ff79dab0357506d986b6d Reviewed-by: Dominik Haumann <dhaumann@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Implement support for 16bpc image formatsAllan Sandfeld Jensen2018-08-1113-454/+1769
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support for 16bit per color image formats in QImage. This makes it possible to read and write 16bpc PNGs, and take full advantage of the 16bpc paint engine. [ChangeLog][QtGui][QImage] QImage now supports 64bit image formats with 16 bits per color channel, compatible with 16bpc PNG or RGBA16 OpenGL formats. Task-number: QTBUG-45858 Change-Id: Icd28bd5868a6efcf65cb5bd56031d42941e04099 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-08-084-21/+29
|\| | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoabackingstore.mm src/plugins/platforms/cocoa/qcocoascreen.mm Change-Id: Iac965aea4867059dbf7bc401b71e8e8b5b259afb
| * Add QPlatformScreen::windows() helper to return all windows on screenTor Arne Vestbø2018-08-062-9/+17
| | | | | | | | | | Change-Id: Ib55b37b64ed0890ca777dfea8c4d702e267c34bf Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
| * Use consistent naming of QPA screen change callbacks in QGuiApplicationTor Arne Vestbø2018-08-062-12/+12
| | | | | | | | | | | | Change-Id: I76be8a993e5d71e472faf9a5770b4c1128e8a4c6 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Liang Qi2018-08-077-7/+194
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-08-077-7/+194
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/corelib/doc/src/objectmodel/signalsandslots.qdoc src/plugins/platforms/cocoa/qcocoamenuloader.mm src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/platforms/xcb/qxcbwindow.cpp tests/auto/gui/image/qimage/tst_qimage.cpp Done-with: Gatis Paeglis <gatis.paeglis@qt.io> Change-Id: I9bd24ee9b00d4f26c8f344ce3970aa6e93935ff5
| | * Doc: Fix wrong link in QFont documentationPaul Wicking2018-08-031-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-62072 Change-Id: I587534fc5723b3d198fe2065fbcf1bee4871a768 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Fix conversion from transparent indexed8 to RGB32Allan Sandfeld Jensen2018-08-031-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | A typo meant the color-table was not fixed. For safety fallback colors are also made opaque. Change-Id: I3e609882177604910c4343c86f00221a89af9078 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| | * Optimize blits of any compatible formatsAllan Sandfeld Jensen2018-08-032-2/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fast image blending is only used for SourceOver composition, but several of our embedded backends make heavy use of Source composition which doesn't have a short-cut. This patch adds a blitting short cut that works in those cases. Task-number: QTBUG-69724 Change-Id: Icc61a67cc27bc83863153d69cae60dd986d26f69 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Add missing optimization for loading RGB32 to RGBA64 using NEONAllan Sandfeld Jensen2018-08-031-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rest of the RGB64 routines were optimized, but the loading of RGB32 was not as it was originally not used much, but with ARGB32 using the RGB64 backend, it is essential for decent performance. Task-number: QTBUG-69724 Change-Id: I1c02411ed29d3d993427afde44dfa83689d117e0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Fix crash in qppmhandler for certain malformed image filesEirik Aavitsland2018-08-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ppm format specifies that the maximum color value field must be less than 65536. The handler did not enforce this, leading to potentional overflow when the value was used in 16 bits context. Task-number: QTBUG-69449 Change-Id: Iea7a7e0f8953ec1ea8571e215687d12a9d77e11c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * HiDPI: Fix calculating window mask from pixmap on drag and dropBłażej Szczygieł2018-08-021-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use platform window directly for setting a mask to prevent bitmap scaling if pixmap and window DPR are the same. Amends: 42f788ffe26d67864d569c3a3044619d49fc693a Task-number: QTBUG-61948 Change-Id: I5eec85c01f20bdefff7343e83ff10cbcb2c79508 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Add logging for QPlatformBackingStore::composeAndFlushTor Arne Vestbø2018-08-072-2/+9
|/ / | | | | | | | | Change-Id: I96778296480d2aaad5e01ed15353106bc90d4d2b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Fix potential out of bounds read in qpkmhandlerEirik Aavitsland2018-08-061-1/+1
| | | | | | | | | | | | | | Off-by-one bug in the validity test of the texture type field. Change-Id: I46ded85a0ad93166aa886e71f0c391f27e79f64f Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
* | Be more explicit about the effects of swapBuffers() on the current contextTor Arne Vestbø2018-08-061-1/+2
| | | | | | | | | | Change-Id: I7ab9e4e7323d49cf19774bfd0c51f8516ecb842d Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | QTextureFileData: Fix build with -no-openglJüri Valdmann2018-08-061-0/+1
| | | | | | | | | | | | | | Need to include <QSize> for operator<<(QDebug, const QSize &). Change-Id: I4857e9b43918243af66cc09ff352619595c081c9 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
* | Remove member function from CentralFileHeaderThiago Macieira2018-08-031-12/+11
| | | | | | | | | | | | | | | | | | I could have placed the class in an unnamed namespace. That would mark the member function as a local symbol too. But I preferred to move outside so I could make it static. Change-Id: Ie01831ddac5446fdbdeefffd154688c0883ed653 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Make local symbols of some leaked namesThiago Macieira2018-08-032-1/+3
| | | | | | | | | | | | | | | | | | Unnamed namespaces and static are great tools. Use them. Change-Id: Ie01831ddac5446fdbdeefffd15468b3acb3ced79 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>