summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* Manual dialog test: Add a message box for printer errors.Friedemann Kleint2015-03-051-8/+41
| | | | | | Task-number: QTCREATORBUG-13742 Change-Id: I137854eee589cde7a6cf3b841b0b63311e031517 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Introduce QQuaternion::dotProduct()Konstantin Ritt2015-03-051-0/+55
| | | | | Change-Id: I14b9857ca0a43808b7d536fc258a6bb10f611211 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Make QCoreApplication::applicationName available after app destruction.David Faure2015-03-051-4/+9
| | | | | | | | | | | | | | | | Calling applicationName() in the destructor of a global static (e.g. via QLockFile) was working when calling setApplicationName explicitly but otherwise it would suddenly return an empty string. This led to inconsistencies, the application name switching from non-empty to empty at saving-on-destruction time. There was already a global static, used when setting the app name explicitly before construction. Use it now to store the app name in all cases (explicitly set, or fallback). Change-Id: I71d3a0c40158f8bfd022c385b198346a2594b1cb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add missing fetchAndXxx methods to atomic classes based on std::atomicThiago Macieira2015-03-0551-19/+111
| | | | | | | | And add tests for the GCC intrinsics and for std::atomic. Task-number: QTBUG-43794 Change-Id: Ic5d393bfd36e48a193fcffff13b9b2dbaee80469 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix bind+connect in both TCP and UDPThiago Macieira2015-03-042-13/+182
| | | | | | | | | | | | | | | | | This has been known to be broken for a while. Now it works: you can bind and you'll retain the port (and the file descriptor) for the connect call. Incidentally, in fixing the binding for more than one IP for the hostname (with event loop), this commit fixes the setSocketDescriptor XFAIL. [ChangeLog][QtNetwork] Fixed a bug that caused both QTcpSocket and QUdpSocket to close the socket and lose any bound ports before connecting. Now bind()/setSocketDescriptor() followed by connect() will retain the original file descriptor. Task-number: QTBUG-26538 Change-Id: I691caed7e8fd16a9cf687b5995afbf3006bf453a Reviewed-by: Richard J. Moore <rich@kde.org>
* Merge remote-tracking branch 'origin/5.4' into 5.5Oswald Buddenhagen2015-03-041-4/+4
|\ | | | | | | Change-Id: I556be99cc7ad3fc6f7177542b7444269616a7478
| * tst_QNetworkDiskCache: Stop using actual web serversThiago Macieira2015-03-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | www.example.com is a reserved domain (RFC 6761), but IANA is running a web server there. As for www.foo.com, that also exists, is a real website and is often content-filtered in corporations (it triggers a firewall warning for me -- "You attempted to visit a site that is in violation of Intel acceptable use guidelines"). So use a localhost instead, since we don't actually need to connect to the servers to do the work. And since we don't need to connect, I chose port 4 as it's extremely unlikely someone is running an HTTP server there (/etc/services lists it as unassigned). Change-Id: Ia0aac2f09e9245339951ffff13c82439c6d5f945 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Optimize fallback RGB888 to RGB32 conversionAllan Sandfeld Jensen2015-03-032-2/+29
| | | | | | | | | | | | | | | | | | | | | | | | Improves the conversion from RGB888 to RGB32 on platforms without SIMD versions. This includes the fallback used on non-neon ARM devices. Besides image conversion the routine is also used for decoding JPEG. On x86 this version is within 0.7x of the speed of the SSSE3 version. Change-Id: Id131994d7c3c4f879d89e80f9d6c435bb5535ed7 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | QTabletEvent manual test: use built-in QDebug operatorShawn Rutledge2015-03-031-77/+11
| | | | | | | | | | | | | | | | There's no need to decode the event details here anymore, and anyway this had a bug: it always said the device is unknown. Change-Id: If99dddbe2136d95e818f4fe526f62650cbd7c1ca Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | autotests: fix the build in case of QT_NO_WHEELEVENTShawn Rutledge2015-03-037-1/+34
| | | | | | | | | | | | | | Wheel event tests aren't possible if there's no wheel event. Change-Id: Ibe380c01fbf6cebfd2f43c6ecb52863134ea3c01 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Oswald Buddenhagen2015-03-026-13/+138
|\| | | | | | | Change-Id: I95b3a87c5068c6b8068b30a35655b4c2419e7f9e
| * Fix drawing of background for multipage QTextTable cellsJoni Poikelin2015-03-021-0/+115
| | | | | | | | | | | | Task-number: QTBUG-31330 Change-Id: I0103919ee2864b7cd8bed41e6d6fe4ac5b84142e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Revert "Update the DNS and name-resolver tests to the official zone"Thiago Macieira2015-03-013-7/+7
| | | | | | | | | | | | | | | | | | | | This reverts commit 24c52bd44b700725d4feec0d2e05a7e382e59c4e and makes the Qt unit tests requiring DNS zones to use the temporary test zone in macieira.org (Thiago's domain). Change-Id: Ia0aac2f09e9245339951ffff13c6d3752c83b773 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
| * Fix crash when converting format of QImage created from bufferEirik Aavitsland2015-02-261-0/+13
| | | | | | | | | | | | | | | | | | | | When doing format conversion, the optimized inplace codepath did not check if the image data was readonly, i.e. if the QImage had been created by the constructor taking an existing external buffer. Task-number: QTBUG-44610 Change-Id: I085ff8da427bc4ee392f548dffd2418b63148965 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
| * Autotest: fix existence check after c8c68ec.David Faure2015-02-241-6/+3
| | | | | | | | | | | | | | | | | | The files were moved to a qrc resource, so the string is never empty, we need to use QFile::exists to make sure they exist. And the error message was wrong, pointing to current dir. Change-Id: I532bda9f6221fb5c69b779b8b48baac9ede90eba Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com>
* | Prevent static functions of Q[Gui]Application from crashing if there is no ↵Friedemann Kleint2015-02-272-0/+62
| | | | | | | | | | | | | | | | | | | | instance. Add tests. Task-number: QTBUG-44499 Change-Id: I160b089ad3f23ab71a87519e50f8a2ef5d2a4a6f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Use C++ <cmath> instead of <math.h> in math3d autotestsKonstantin Ritt2015-02-263-9/+10
| | | | | | | | | | Change-Id: I2e13ec190ec42ac7732ce9ed3ca5567f637beb1e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Output registered enums in qDebug operator for QFlags.Friedemann Kleint2015-02-261-0/+8
| | | | | | | | | | Change-Id: Ia424df234fbd333782c10f0a4422875bb1bfc1f5 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | [QQuaternion] Fix naming of the new methodsKonstantin Ritt2015-02-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | According to the Qt naming policy, methods that return value(s) via the mutable parameter(s) should have "get" prefix to mention that. [ChangeLog][QtGui][QQuaternion] Added methods to convert a quaternion to/from Euler angles and to/from rotation matrix. Change-Id: I95704e1f4623dc4ca54cd237ea203539fb60d452 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Reverse iteration in QMetaEnum::valueToKeys().Friedemann Kleint2015-02-261-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, values that are composed of others are not handled correctly. For example, Qt::Dialog|Qt::FramelessWindowHint (Qt::Dialog=0x2|Qt::Window) is currently output as "Window|FramelessWindowHint" since Qt::Window matches first and its bits are removed from the flag value so that Qt::Dialog in the next iteration no longer matches. Change-Id: I67db5c977c75f887392aa8f345c5e6e9d82c5c26 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | QSysInfo: expand Linux distribution detection to /etc/lsb-releaseThiago Macieira2015-02-253-0/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some older (or weird) Linux distributions don't have /etc/os-release, so let's try to read /etc/lsb-release instead. If we find a file called /etc/<distronamelowercase>-release and it's bigger than the pretty name we read from /etc/lsb-release, use that. Because the order of the keys changes between the two *-release files, we can't do a sorted search anymore. Change-Id: I1a800c709d3543699131ffff13c48532d5074f3c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Dirk Hohndel <dirk@hohndel.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QVariant: fix converting enum to stringOlivier Goffart2015-02-251-1/+1
| | | | | | | | | | | | | | Use QMetaEnum::valueToKey instead of valueToKeys. Change-Id: I270f0820a03aaebde94c37c011c5e9b81421b50f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Fix crash when accessing QStyleHints before QGuiApplication is constructed.Friedemann Kleint2015-02-252-1/+38
| | | | | | | | | | | | | | | | | | | | | | Make styleHints a static member variable of QGuiApplicationPrivate and fix accessor accordingly. Extend tst_QApplication::settableStyleHints() to run without QApplication instance as well and add a similar test to QGuiApplication. Task-number: QTBUG-44499 Change-Id: I42b92ef38f7dd512d08d70accfa7dd4f09a22f01 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Add manual test for QMimeDatabase.Friedemann Kleint2015-02-253-1/+147
| | | | | | | | | | | | | | | | | | | | Add command line test application that can print the mime type of a file or dump all mime types. Task-number: QTCREATORBUG-13996 Task-number: QTCREATORBUG-14005 Change-Id: I5ef2fa4b9fbab986b1db4fc0bd8abaacdf4f8fa0 Reviewed-by: David Faure <david.faure@kdab.com>
* | add autotest for qmake parserOswald Buddenhagen2015-02-252-1/+1945
| | | | | | | | | | Change-Id: Ib3dcb6c1aaac20ca6a3bc0dc564e16ec7bd152db Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
* | add autotest for ioutilsOswald Buddenhagen2015-02-252-0/+99
| | | | | | | | | | Change-Id: I63700a57e0edf5aec02abfffdc7601743379f12c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | add test for the qmake libraryOswald Buddenhagen2015-02-254-0/+85
| | | | | | | | | | | | | | | | | | the existing test is a blackbox test. this one is going to be different. the first test is a bit trivial ... Change-Id: Iba1b0b5c32490677551ee92c36f381b884c2765d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Decide whether to synthesize mouse events on a per device basisAlexander Volkov2015-02-253-26/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently Qt uses the QPlatformIntegration::StyleHint SynthesizeMouseFromTouchEvents to check whether to synthesize mouse events from touch events. But not only platform plugins can produce touch events, they can be created by e.g. QTest::touchEvent() and in this case we almost definitely need synthesizing regardless of the platform. This commit introduces a QTouchDevice::MouseEmulation capability which replaces use of the QPlatformIntegration::SynthesizeMouseFromTouchEvents. So it's possible to pass QTouchDevice without this capability to QTest::touchEvent() and be sure that mouse events will be synthesized. Notice that touch pads always emulate mouse events. As a result we can activate some tests which were disabled for specific platform configurations by commits 6c1670d8c273819435867c42725c0db0eee597dc and e9760f1559361c39f269fb89f1ebd01f6ee8378d. Change-Id: Idc82fa4007a095fc1cb5934979361b0023d2b793 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Fix QT_POSIX_IPC supportPasi Petäjäjärvi2015-02-251-1/+1
| | | | | | | | | | | | | | | | | | On platforms which does not have at all sysv support, all posix ipc tests and compilation failed because sysv specific header files were included unconditionally. Change-Id: I5713ace6daeb6e79f8794ce42b2b3dfa1b95ab2d Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | tst_QDnsLookup: Output more information on failure.Friedemann Kleint2015-02-251-1/+34
| | | | | | | | | | Change-Id: Id4edf9b0672dbcabc7f749a489ae8fb6c6dde993 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-2478-168021/+358273
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/xml/htmlinfo/simpleexample.html examples/xml/rsslisting/rsslisting.cpp qmake/generators/win32/msbuild_objectmodel.cpp src/3rdparty/harfbuzz-ng/src/hb-private.hh src/corelib/global/qlogging.cpp src/corelib/io/qstorageinfo_unix.cpp src/corelib/thread/qwaitcondition_unix.cpp src/gui/kernel/qguiapplication.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp src/testlib/doc/src/qt-webpages.qdoc tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
| * Disable tst_qaccessibilitylinuxFrederik Gladhorn2015-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This test accidentally causes the screen reader (in newer Gnome environments) to be launched. This messes up the CI machines enough that nothing works afterwards. Disable the whole test until I write the proper fix. We don't lose anything because it was marked as insignificant anyway. Task-number: QTBUG-44434 Change-Id: I410e80580977178ea99a370c6c0909d1fb49a71c Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
| * Timezones: Fix handling of offset-from-UTC QTimeZonesThiago Macieira2015-02-231-0/+12
| | | | | | | | | | | | | | | | | | | | Those QTimeZones failed to convert to other timezones because the data() virtual function was never overridden and reimplemented. That meant all QUtcTimeZonePrivate objects were *really* UTC, with no offset. Task-number: QTBUG-44600 Change-Id: Ia0aac2f09e9245339951ffff13c5294bb783c674 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * QVector: fix use of invalid iterators in removeAll()Marc Mutz2015-02-221-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The c2m() function which converts a const_iterator into an iterator is a broken concept for an implicitly shared container such as QVector, because the act of calling begin() as the starting point already detaches and invalidates the c2m argument. This could be fixed in c2m, but the bug wasn't even in c2m, but in removeAll(), which called end() before c2m, so the c2m argument was already invalidated when entering c2m. The solution is to store the positions as indices instead of iterators before calling the first detaching function. Task-number: QTBUG-44592 Change-Id: I66cf4f1277e71148a4d5b5bbfb6a3369ad02db68 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Make sure there's a scene before using itAlbert Astals Cid2015-02-171-0/+11
| | | | | | | | | | | | | | | | | | | | Fixes crash hovering links in quassel Task-number: QTBUG-44509 Change-Id: I77d8d9118ad185ed70a46e91445e2960200e562b Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Fix crash in QAccessibleTextWidget::attributes()Jan Arve Saether2015-02-171-0/+1
| | | | | | | | | | | | Task-number: QTBUG-44006 Change-Id: I79d7d84206a3e4abcd49c7c6e5e91b7c9c753dd6 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
| * Make sure the QSplashScreen isn't closed instantly when calling finish()Andy Shaw2015-02-172-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | Most of the time the widget passed in to finish() will not yet have a window handle so it would just call close() straight away. This way it ensures has a window handle. Task-number: QTBUG-35757 Change-Id: I2e212a2ea496cc4e4bba57a8c2d0d127afc43e48 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| * bic: Add 5.{1,2,3,4}.0 bic data for linux-gcc-amd64Sergio Ahumada2015-02-1466-167900/+358023
| | | | | | | | | | | | | | | | | | Remove the ia32 data since there are no linux x86 machines in the CI system (which makes the data useless from an automated testing point of view) and most people use x64 these days anyway. Change-Id: Ifdf8850767869eb2706e2a9d6396314d1fb25500 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
| * re-enable more QWidget testsJoerg Bornemann2015-02-131-5/+1
| | | | | | | | | | | | | | | | | | Re-enable tests that were skipped because of open, now closed, bugs. Change-Id: Ic7dbe0a9cf74df1e69550536d5923a62e2186b6f Task-number: QTBUG-26424 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * Fix path to examples part of tst_GuiAppLauncherSergio Ahumada2015-02-131-112/+112
| | | | | | | | | | | | | | | | Task-number: QTQAINFRA-323 Change-Id: I178cb788531c500051a7738512d8e19e1d7e7ad8 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
| * Document and further test that QJsonObject::keys() is sorted.Mitch Curtis2015-02-111-0/+2
| | | | | | | | | | Change-Id: I6b145c1240cce85ad3fea6fb90ddbed629487f83 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Fixed crash when adding items with spansJan Arve Saether2015-02-091-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This only occurred if the item added was the only item in the last row/column, since then the the internal grid failed to expand (in this case it would always call expand(0, 0), which would not create the extra row/column). [ChangeLog][QtWidgets][QGridLayout] Fixed crash that sometimes happened when adding items with spans that spanned to the bottom/right edge. Task-number: QTBUG-38052 Change-Id: Iba95f6d9d9356b4d1c84c7b93f4af9b4ea0cf714 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
| * Fix reported build failure with VS2010 on windows 8.1.Richard J. Moore2015-02-091-3/+3
| | | | | | | | | | | | Task-number: QTBUG-44321 Change-Id: I885e3dab52193f7dfd245345fde53f6bb3420430 Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
* | Merge dev into 5.5Oswald Buddenhagen2015-02-2337-202/+400
|\ \ | | | | | | | | | Change-Id: Id6dbbbfc542c214fe695c6795c6aaf23aedc1cd1
| * | QDateTime: drop quotes in QDebug outputMarc Mutz2015-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | As requested in review of 1d2efe1f27bedcbaa157ef4e82b8eda33dda46ad. I didn't add a comma in front of the timeSpec() as the other fields aren't separated by commas, either. Change-Id: I54d74b7199ca7e46e28d2ceca22b02205e318c90 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * | tst_QNoDebug: don't use sprintf if there're no argumentsMarc Mutz2015-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This slipped in with commit 1d2efe1f27bedcbaa157ef4e82b8eda33dda46ad, but is of course completely bogus (though harmless). Change-Id: If3875b65af0fa3fe85216391599433158043e361 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * | Remove BlackBerry PlayBook support.Rafael Roquetto2015-02-201-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reasons: - the PlayBook NDK is old and its compiler does not keep up with newest C++11 improvements inside Qt code. - the PlayBook NDK diverges considerably from the standard BB10 NDK, making it non-trivial to keep a common codebase. - It's a defunct platform. - Maintenance time is limited. [ChangeLog][Platform Specific Changes] Removed BlackBerry PlayBook support. Change-Id: Ia338aff55f4e4b747ebdecb0e1463a369a656c03 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
| * | Use qrc for test data in QFileInfo test on all platformsEskil Abrahamsen Blomfeldt2015-02-183-36/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To make the test compatible with cross-compilation, we need to bundle test data in qrc, and then extract files to the file system during initialization. We did this for Android before, but the change is required on many platforms and since it will also work on desktop platforms, we consistently just do it this way everywhere. Change-Id: I7f65bd9e1dd6f217e6adffda44a40da7599cfe72 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * | Fixed license headersJani Heikkinen2015-02-1717-17/+17
| | | | | | | | | | | | | | | Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * | more autotests for spaces, destdirs and library linkingOswald Buddenhagen2015-02-1712-37/+56
| | | | | | | | | | | | | | | Change-Id: Ie106d1151e61a50081bccea0a6d0d70728451a5b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>