summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Fix QMetaType benchmark.Jędrzej Nowacki2013-05-131-1/+2
| | | | | | | | Void is not constructible, so there is no point in checking how fast it can be constructed. Change-Id: Icb4b607bebce30fff5fc57b105101f019e0e0db5 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* test: Remove XFAIL from tst_qwidgetSergio Ahumada2013-05-131-4/+0
| | | | | | | | | | XPASS : tst_QWidget::update() QCOMPARE(w.numPaintEvents, 1) returned TRUE unexpectedly. Loc: [tst_qwidget.cpp(4017)] Change-Id: Ib7664871ed218f4c88fd2430491fa65443651927 Reviewed-by: Simo Fält <simo.falt@digia.com> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Build manual test for widgets from toplevel.Friedemann Kleint2013-05-134-1/+7
| | | | | | Change-Id: I411cfc28d2021eed0acf3949a141ffded1acdecc Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Disabling some concurrency in widget testsSimo Fält2013-05-102-2/+0
| | | | | | | | | | | There has been frequent failures with CI, especially with OSX 10.7. These seems to work ok in CI node when ran alone but CI is running those in parallel with some other tests, and this is causing errors, most likely due to lost focus. Change-Id: Ic4151099c27a4b5d91778c9b13e88d2d661e8a0d Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Rename Numpad to Num, ensure Numpad is translated in all cases on Mac.Mitch Curtis2013-05-101-4/+4
| | | | | | | | Numpad is unnecessarily long. Change-Id: I19a6ce129e26a4f6f8344f514317214c48abde6e Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: David Faure (KDE) <faure@kde.org>
* Make QFlags enum flags (C++11 strict enums) friendlyAlbert Astals Cid2013-05-091-0/+116
| | | | | Change-Id: I9ccb3e4d281a545ca1845db4f6aa7ac6c04e8621 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Stabilize QGraphicsWidget test.Friedemann Kleint2013-05-091-15/+12
| | | | | | | | | | | | | | | The test showed frequent failures with XCB in initialShow2() (line 3200) after 01bc34088eb8e7fb4842fa1c2117cddbac086136 (QTBUG-30923) which can be fixed by ensuring the widget from the HFW-test is deleted. Use QScopedPointer to ensure widgets are always deleted in case of test failures, too. Task-number: QTBUG-20778 Task-number: QTBUG-30923 Change-Id: I2af7737b604820463f760d6b6787dd5a5a93d602 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Fix a case of connect()ing to signals declared in a base classOlivier Goffart2013-05-091-0/+25
| | | | | | | | | | | | | | Fix connection to pointer to member signal that belongs to the base class, but whose type is a pointer to a member of the derived class. The current code only use the QMetaObject of the type coming from the function type to look up the signal id. But if the signal was casted to a pointer to member function of a derived type, then we also need to look in the base classes Change-Id: Ib98fc38f63942946acb34d9f83c100991d58e4e5 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Revert QDateTime serialisation to pre-Qt 5 behaviour.Mitch Curtis2013-05-082-4/+19
| | | | | | | | | | | | | | In Qt 5, I managed to break the guarantee that a deserialised local datetime is the same time of day (potentially different UTC time), regardless of which timezone it was serialised in. This happened after I fixed QTBUG-4057 with If650e7960dca7b6ab44b8233410a6369c41df73a, which serialised datetimes as UTC. This patch reverts QDateTime serialisation to pre-Qt 5 behaviour to restore the guarantee and consequently re-opens QTBUG-4057. Change-Id: Iea877f7ed886f530b928067789b53534e89fe8cb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix tabFocusFirst when that item is removed from QGraphicsSceneMiikka Heikkinen2013-05-081-0/+18
| | | | | | | | | | If tabFocusFirst is not cleared or set to another valid item, there will be crash later if the removed item is deleted after removal. Task-number: QTBUG-30923 Change-Id: Iba9a6ce9334c52f8e552b0accda95ebb5fcfcdb1 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* QLocale: add autotest for French_Morocco localeEl Mehdi Fekari2013-05-081-0/+1
| | | | | | Change-Id: Ie489557342bf9ea571ba4070e8982b1a13fc7021 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* moc: use fprintf instead of qWarningOlivier Goffart2013-05-081-0/+5
| | | | | | | | | qWarning now depends on QT_MESSAGE_PATTERN, depending on that variable. It will show things like the moc process id or the Parser::error function name. We don't want that. Change-Id: I5b35401200f0f7de2442aa77d700a82402081489 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Only expect EGL libraries in the cmake files if Qt is configured to use it.Stephen Kelly2013-05-071-1/+1
| | | | | | Change-Id: Ida382a80dba882bbeb920756adc0c16321efe37e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add qt_hash(QStringRef) overloadGiuseppe D'Angelo2013-05-071-0/+22
| | | | | | | | This enables fixing a performance regression compared to Qt 4. Also, add some qt_hash tests. Change-Id: Id830e17dec99fb67e5930c80029ac2233b2f427e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fixed applying invalid data from QLineEdit to modelIvan Komissarov2013-05-071-0/+131
| | | | | | | | | Task-number: QTBUG-2216 Change-Id: I5d1c18aadb380667dedc2bb9f9b7e3dd8178a24c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: David Faure <david.faure@kdab.com>
* Add QSKIP to hoverenter-test in tst_qgraphicsproxywidget.Friedemann Kleint2013-05-071-0/+1
| | | | | | | Task-number: QTBUG-25294 Change-Id: I7a674dc49d84c7c68a877bcf64c14e9726dd481e Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Fix XPASS in tst_qgraphicswidget (Windows).Friedemann Kleint2013-05-071-1/+1
| | | | | | | Task-number: QTBUG-20778 Change-Id: I90c8135fab85872cae22630c53fef7aed835a19c Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* QProcess/Win: drain output pipes on process finishJoerg Bornemann2013-05-071-0/+34
| | | | | | | | | | | | If a process dies before all output is read into the internal buffer of QProcess, we might lose data. Therefore we must drain the output pipes like we already do in the synchronous wait functions. Task-number: QTBUG-30843 Change-Id: I8bbc5265275c9ebd33218ba600267ae87d93ed61 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Autotest: Use the new test zone in all name-lookup unit testsThiago Macieira2013-05-073-61/+107
| | | | | | | | | | I also modified tst_QDnsLookup the test to use ';' as a separator as opposed to spaces because I added MX and SRV records with multiple RRs. Change-Id: I62c7b6ad342c1bb23c4d9ac9730e35ab422e3ea2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Add some extra tests for QString::argThiago Macieira2013-04-291-0/+22
| | | | | | | | | | Test locale-based formatting of numbers when we pass field width, base and fill characters. This now tests the fact that we replace a '0' for the locale's zero character. Change-Id: Ib872a592fd9a754e3ef11495a9497a6947056631 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* test: Mark tst_menubar::task256322_highlight as XFAILSergio Ahumada2013-04-291-1/+6
| | | | | | | | | | This test is unstable on Mac OS 10.7 with developer builds, so marking it as XFAIL if it happens to fail. Task-number: QTBUG-30565 Change-Id: If7094c3b19299f0dbe57cb82a8614032a75573d8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Get rid of this hack where QAccessible inherits from QObject.Jan Arve Saether2013-04-268-224/+24
| | | | | | | | | | | | | This was added just so that moc could pick up the enums and so that we could use the enums in Q_PROPERTY declarations, which was needed for accessibility in QML. It turns out that Q_GADGET is enough for us. This is a strictly a binary compatible change. However, QAccessible was marked internal in 5.0, so we are free to change it. In addition, this class is static and cannot be instantiated. Change-Id: I27e2e97c5f4b45c38678264c6b593a4383db8d3e Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Cleanup the SQL testsAndy Shaw2013-04-258-340/+342
| | | | | | | | | | This removes some XFAILS that were no longer correct and fixes some existing problems in the tests where ODBC is concerned. Change-Id: I91de526bb50ad4046ba07ddb5336aa3714966687 Reviewed-by: Mark Brand <mabrand@mabrand.nl> Reviewed-by: Caroline Chao <caroline.chao@digia.com>
* Do not include the treeview header if its hiddenJan Arve Saether2013-04-251-0/+6
| | | | | | | | | | | | Previously, accessibleTree->child(0) would return an interface for the header even if it was hidden. Also, the assertion was wrong since the index would be 0 if both row and column were 0. The assertion was actually found while using the project explorer of Qt Creator (2.7) Change-Id: I9f3cc2c13b6887569d10c4e062a64552f898231a Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Fix windows expose logicGunnar Sletta2013-04-251-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | Make sure the value of QWindowsWindow::isExposed is in sync with regions we expose. This provoked a couple of existing issues in the qwidget test. setWindowGeometry tested that windows with invalid sizes got exposed on screen. They didn't, but because the plugin sent bogus events, these used to pass. Same with windowMoveResize. The expect fails are also rather bogus. Showing invalid-size widgets could be considered undefined behavior. The Window manager could resize it, choose to not show it at all, etc, but they now pass on windows. resizeEvent has been broken since 5.0.0, but the test didn't spin the event loop so the second event didn't get delivered before the test completed. Task-number: QTBUG-30744 Change-Id: I3a9efcd095f366126a87739f4248185b6c81d407 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Run the CMake tests with QPrinter, not QPrintDialog.Stephen Kelly2013-04-241-1/+1
| | | | | | | | QPrinter is not implemented on android, so the test fails to link there. Change-Id: I10ca0179323362a9c9f74325332043c968d67d3c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Enable OpenGL library detection for mac.Stephen Kelly2013-04-241-5/+3
| | | | | Change-Id: If99d3faf2b08ac5109d619ff69efdaa3857c007f Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* SSL internals: do not write after shutting down the socketPeter Hartmann2013-04-231-1/+2
| | | | | | | | | ... but rather throw an error, so the HTTP layer can recover from a SSL shutdown gracefully. In case the other side sent us a shutdown, we should not send one as well, as it results in an error. Change-Id: Ie7a56cf3008b6ead912aade18dbec67846e2a87e Reviewed-by: Richard J. Moore <rich@kde.org>
* Fix retrieving of the generic system proxy via environment variablesThomas McGuire2013-04-231-0/+41
| | | | | | | | | | | | ignoreProxyFor() always returned true if the no_proxy was not set, which resulted in the first token being an empty QByteArray, causing the endsWith() check to always evaluate to true. Add a unit test that is enabled for those platforms that use the generic system proxy. Change-Id: I6081ad5e0b8e2c3fee1568835907c32bde5b7772 Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
* Remove QLocalePrivate::m_localeIDhjk2013-04-233-0/+89
| | | | | | | | | | | | | | It was only used for toUpper/toLower but always computed in the constructor, including QString::toLatin1 conversion and allocations. This needlessly slows down all other uses, including supposedly "cheap" operations QString::toDouble, or accesses inside QResourceFileEngine. The benchmarks indicates that doing it always when needed is bearable. There's still a lot of improvement potential on these code paths. Change-Id: I88b637ee11f9f7ea614f8da4ec5df0bf40664fce Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fixed QLayout::addChildLayout(QLayout *l) when l had a parentJan Arve Saether2013-04-231-0/+21
| | | | | | | | | | | Previously if l had a parent, addChildLayout would warn and skip the reparenting, but it would still add the sub layout to the layout. This caused some inconsistencies in the hierarchy which in worst case could cause crashes. Task-number: QTBUG-30758 Change-Id: I618ec3341636b97bd71e421201b22c746dcf43e1 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* File dialog manual test: Remove dot from default suffix.Friedemann Kleint2013-04-231-1/+1
| | | | | Change-Id: Icadfd2103bb89b5f9ea167737d9e6af05d7a6b86 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Fix QAbstractItemModel::moveColumn()J-P Nurmi2013-04-231-0/+4
| | | | | | | Task-number: QTBUG-30346 Change-Id: I3d6dbe1e88bb5e2748eadabb2663f30be16f8d18 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Fix QKeySequence::toString() returning gibberish for Qt::KeypadModifierMitch Curtis2013-04-231-0/+5
| | | | | | | | | | | | | This is the patch from the bug report with a few alterations to get it to compile, and also with the GroupSwitchModifier code removed, as this patch just focuses on Qt::KeypadModifier. The problem was determined to be in QKeySequencePrivate::encodeString, which doesn't handle the Qt::KeypadModifier flag. Task-number: QTBUG-4022 Change-Id: Ic981eb8b5cd88c7b36892d3019b8175db4b7b6f2 Reviewed-by: David Faure (KDE) <faure@kde.org>
* Add IMPORTED targets for the GL libraries used by Qt.Stephen Kelly2013-04-225-0/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | There may be multiple libraries specified in the mkspec, such as EGL and Mali, as used in devices/linux-sh4-stmicro-ST7108-g++, so create an imported target for each one. Also populate the Qt5Gui_EGL_LIBS variable with all created imported targets. Similar variables are created for the used OPENGL implementation. In the case of using the packaged ANGLE library, we already know the exact locations of the binaries. This makes it possible for third parties to use the same GL implementation as used by the Qt build itself. As these are used only privately by QtGui, they are also added to the DEPENDENT_LIBRARIES of that target so that they are found for rpath-link usage. On some platforms (eg Raspberry Pi), multiple include directories must be set to include egl.h, as the headers it includes for vcos are a bit scattered. Task-number: QTBUG-29132 Change-Id: I1126da3d37cd51c88d3670347c8b6405b285efb5 Reviewed-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix QTableView::doItemsLayout()J-P Nurmi2013-04-221-0/+34
| | | | | | | | | | | Keep the content aligned to the bottom when the view has been scrolled to the bottom and the content is relayouted (for example due to sorting). Task-number: QTBUG-30653 Change-Id: I9513e295e276d25ff2068036cd80dbf91314fe84 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* test: Disable tst_uic when -no-widgets is usedSergio Ahumada2013-04-221-0/+1
| | | | | | | | uic doesn't get compiled when -no-widgets is used, so disabling its test. Change-Id: I8c81ec468e40841548dacb356fd87ecf85d7b6ac Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Ensure the QLineEdit::returnPressed() signal is still emittedAndy Shaw2013-04-211-1/+10
| | | | | | | | | The signal needs to be emitted directly as the event is not passed to the QLineEdit if the QSpinBox gets the Key_Return. Since this signal may be relied upon then we ensure it is emitted directly. Change-Id: I17cdec62c9f995bacfd7d3cc66d6324f26c84c67 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Let platform plugin decide if accessibility is activeFrederik Gladhorn2013-04-193-2/+13
| | | | | Change-Id: I881a8ff3fedf3db73ee37046a4363c70960a92a6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Fusion & GTK styles need to check direction from style option not qappShawn Rutledge2013-04-181-20/+1
| | | | | | | | | | An RTL menu containing a menu item which opens a submenu was showing the wrong arrow if the application's direction was not also RTL. So now the test for QTBUG-30595 can be simplified: no need to set the application direction, and therefore less chance of failure. Change-Id: Id140656206c6fefea3649289477dc54c77e2dd5e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* An RTL submenu should be right-alignedShawn Rutledge2013-04-181-0/+36
| | | | | | Task-number: QTBUG-30595 Change-Id: Iac54cae70b5a2ac6be5a750279fb390bb158776a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Update test exclusion following bug fix in recent cmake versions.Stephen Kelly2013-04-171-2/+2
| | | | | | Change-Id: I8174ca78b4e2d8b4344278acf8ca4b0db3115d1a Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix qgraphicsview autotest build for WEC7.Janne Anttila2013-04-171-1/+1
| | | | | | | | | | | | | | logicalDotsPerInchX returns qreal, and qreal in WEC7 is defined to float instead double. There is no required overload: qFuzzyCompare(float,double) And for that reason build fails. Ensure qreal is casted to double which is default type used by compilers for floating point literals such as '96.0'. Change-Id: I24c701715b3dcf1a2137256a1c251c19d0c1dbe9 Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* Fix qsqlquery benchmark test build for WEC7.Janne Anttila2013-04-171-1/+1
| | | | | | | | | | | WEC7 does not have ws2_32 lib. The lib is needed for gethostname symbol, instead of using hard coded platform specific libs, rely on QMAKE_NETWORK_LIBS variable containing network libs. Change-Id: Ice39ca3f2d176cc5df88beded4b64d2b92f4f3ba Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* Fix qprocess benchmark test build for WEC7.Janne Anttila2013-04-171-5/+3
| | | | | | | | | | Use Q_OS_WINCE ifdef in both method declaration and definition, in addition combine QT_NO_PROCESS and Q_OS_WINCE ifdefs to one line. Change-Id: I0787e4341c41b46a5fc089f24a538c0ad40a0875 Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* Fix tst_qstyle autotest build for WEC7.Janne Anttila2013-04-171-2/+2
| | | | | | | | | | Apparently testAllFunctions method has been changed to take pointer, but code inside different WinCE defines was not updated. Change-Id: Id15380ecc1e85650d679cb7437923ff9c77057ae Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* Fix tst_networkselftest build for WEC7.Janne Anttila2013-04-171-12/+7
| | | | | | | | | | | | | | WEC7 does not have time() function. Let's use Qt APIs to query time and initialize random number generator, Qt APIs have already been adapted to work on all supported platforms. In addition use QByteArray instead of QString to avoid unnecessary type conversions later on with toLatin1(). Change-Id: I1ae3729397b0f4a1bd138022a4e122021e10f1e9 Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* Reduce qmetatype autotest build time for Windows CE.Janne Anttila2013-04-171-2/+2
| | | | | | | | | | | | | | | | | qmetatype autotest build for WEC7 took several hours [1] See timestamps 03:51:13 and 07:44:52. The timestamped Jenkins log is only available in Digia network. The corresponding log without timestamps is available from [2]. Use same workaround for all Windows CE / WEC7 builds as currently used for desktop MSVC2012. [1]: http://qt-ci.digia.com/job/QtBase_stable_Integration/cfg=wince70embedded-armv4i-msvc2008_Windows_7/940/consoleFull [2]: http://testresults.qt-project.org/ci/QtBase_stable_Integration/build_00940/ Change-Id: Ia21be8972d82c8d37073c9097b8d4094261e4126 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix tst_qfile build for WEC7.Janne Anttila2013-04-171-1/+3
| | | | | | | | | Windows Embedded Compact does not have drive letters like desktop Windows => do not try to build drive letter related test code for WEC7. Change-Id: I2c3659220a001510c0555e2dd773b4dd68e9c2cc Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Make QBuffer::bytesAvailable() workThiago Macieira2013-04-161-1/+22
| | | | | | | | | | | | | We don't need to keep an internal QBuffer position, we can just use the one from QIODevice::pos(). It will keep track of goings ahead and backwards for us, plus it will make the default bytesAvailable() work out-of-the-box too. This error was reported on IRC. Change-Id: I8559e8ee56edaa01ca8732c1f1012082ebe3a3f2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>