summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Fix Android Style plugin.BogDan Vatra2013-09-101-0/+4
| | | | | | | | Task-number: QTBUG-29565 Change-Id: Iedb861962e3638bcbdf9d9a72a47bebc63b425b9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Deprecate QFontDatabase::supportsThreadedFontRendering()Konstantin Ritt2013-09-104-12/+6
| | | | | | | | As of 5.0, this always return true. Change-Id: If225c7219e283da97e870f0d66a87b21c3cacfc0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Use Qt's own glyph cache with the freetype engine.Gunnar Sletta2013-09-101-2/+1
| | | | | | | | | | This fixes rendering in the OpenGL paint engine, simplifies our internal code paths and also produces nicer text for non-90 rotated glyphs Change-Id: Ib206065cd486ac29067f9ebf4a0d74189a673f1e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Make QFontEngine not derive from QObjectKonstantin Ritt2013-09-103-6/+12
| | | | | | | | | | | | | Whilst having the objectName set for each engine is somewhat handy when debugging, deriving from QObject just for that is a wasting of memory in all other cases. This also broke the font engine abstraction by allowing qobject_cast() to access some private data; the only sane way to distinguish engines is querying their Type value. Change-Id: Ib1d195692859eb39089f6d8d9016cb8f9dcc0400 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QFontEngineFT: Drop modularization leftoversKonstantin Ritt2013-09-091-4/+0
| | | | | | | FontConfig is not used in GUI these days. Change-Id: I0bf89de912f2df9f6397b5452b642df19829af7f Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix QPainter usage in non-GUI thread warning appearing in debugKonstantin Ritt2013-09-091-3/+3
| | | | | | | | | | | The third parameter is `extraCondition`, which is false by default, and it is used in condition `if (!extraCondition && QThread::currentThread() != qApp->thread()) {`. Passing extraCondition=true makes this condition always evaluate to false and thus hides a respective warning at all. Change-Id: Ia8ef48f341bd22f58375034d1992da716f78121d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Doc: Link to external docs in QOpenGLFunctions_* classesTopi Reinio2013-09-0923-22/+114
| | | | | | | | | | | These are wrapper classes that do not document their functions. This change adds links to docs on opengl.org / khronos.org where suitable, and changes the \brief commands to mention the correct OpenGL version/profile. Change-Id: I48154d5bce26f6753ca4400962939847c78a527d Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add HarfBuzz-NG supportKonstantin Ritt2013-09-082-1/+178
| | | | | | | | | | | | | | | | | Some features are of limited usefulness for now (same as with HB-old): * mixed scripts cases aren't handled correctly due to an outdated script and bidi itemization implementation; * language-by-script detection: the only fallback to locale's LANG is used Some features are missing entirely (in compare to HB-old): * justification points support: not implemented in HarfBuzz-NG Task-number: QTBUG-18980 Task-number: QTBUG-14590 Task-number: QTBUG-16128 Change-Id: Ic98a10054be5fac55224ef31c7261168c0bf8739 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add HarfBuzz-to-Qt bridging codeKonstantin Ritt2013-09-084-0/+861
| | | | | Change-Id: I2f61566fe69d18b80d5831238beb27b34b7be1c8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QTextEngine::shapeText(): Better error handling for corner casesKonstantin Ritt2013-09-081-4/+4
| | | | | | | | | Use Q_UNREACHABLE() instead of silly return to catch shaping errors, which are fatal ones in fact, since the application would assert/crash some later due to a hard dependency on the shaping result. Change-Id: Ie58a2f2686a795f6178a588de6f2a2e37e1ed13c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QTextEngine::shapeTextWithHarfbuzz() code simplificationKonstantin Ritt2013-09-082-66/+69
| | | | | | | | | | | | Move (sub-)item boundaries calculation (aka fallback font items) outside to be shared with HarfBuzz-NG based shaping a bit later. This implementation might silently break words or even graphemes so it needs to be reworked anyways; keeping it in a single place would make futher work some cheaper. Change-Id: Id9ca82b40e90b07ca29363fd43247c5fa9897eff Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove unused check_gradient functionThiago Macieira2013-09-061-6/+0
| | | | | | | | | Found by ICC 14. I wonder how the other compilers didn't detect it. qpainter.cpp(119): warning #177: function "check_gradient" was declared but never referenced Change-Id: Ie94c04f1734e6d7bab6b540d763bb6e7c16e4cb9 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix new change-of-sign warning detected by ICC 14.Thiago Macieira2013-09-061-1/+1
| | | | | | | | | | | | qpainter.cpp(1656): error #68: integer conversion resulted in a change of sign tmp->changeFlags &= ~(QPaintEngine::DirtyClipPath | QPaintEngine::DirtyClipRegion); tmp->changeFlags is uint, but QPaintEngine::DirtyFlag is backed by int. That means the bitwise NOT sets the sign bit, which makes it negative. Change-Id: Id8dfc2c7012b519cc5f5799d223cb95a79ccd401 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Remove deprecated QtAlgorithms calls from QtGuiGiuseppe D'Angelo2013-09-0513-24/+44
| | | | | | | | QtAlgorithms is getting deprecated, see http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I324ddf6129fe8884ecea97ef47abb7c071dfb34c Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Rely solely on alphaMapBoundingBox in QTextureGlyphCacheGunnar Sletta2013-09-051-6/+3
| | | | | | | | | | | | | | | We're currently adding a lot of transparent pixels to the cache, wasting both memory and cpu cycles while drawing. AlphaMapBoundingBox was introduced to return the exact same bounds as the alphaMapForGlyph function so we should only rely on this instead of adding arbitrary padding and margins all over the place. Windows still has an arbitrary +4 in the its drawGDIGlyph() which means batching will not work on windows, but at least now other platforms do not need to suffer. Change-Id: I714903fa195004400c09c3bf6570e46179775f09 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* qimagereader: fix build on iOSRichard Moe Gustavsen2013-09-051-1/+1
| | | | | Change-Id: Ia928e449ecec49988e0af69da0a7aded5bf36871 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Introduce QAbstractTextDocumentLayout::unregisterHandler()J-P Nurmi2013-09-042-0/+19
| | | | | | | | | | Required for QQuickText & friends to implement image resource handling in a clean way - to get rid of QQuickTextDocumentWithImageResources and eventually make QQuickTextEdit's document interchangeable. Change-Id: I12305b68065a5990997ca4a47821fd29e0e17476 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Doc: Fixed information about the default modules when using qmake.Jerome Pasion2013-09-042-1/+11
| | | | | | | | | -Qt GUI and Qt Core are included by default -Added entry about disabling "gui" in the .pro file -Information placed in snippet files Change-Id: I1c70dcac9ca2d443e9f658e2a27727d24a25cae1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix qt_pixmapToWinHICON() not to return invalid HICON for null pixmapsJ-P Nurmi2013-09-041-0/+3
| | | | | | Change-Id: Ieda923bf27514a3daa8a5de7836511ab32346260 Reviewed-by: Ivan Vizir <define-true-false@yandex.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix ICC warnings about functions declared but not usedThiago Macieira2013-09-042-2/+0
| | | | | | | | | | | | | | | Added Q_DECL_UNUSED for the function used in Q_ASSERT; removed the functions that really weren't used and added the #ifdef for the function that was only used under #ifdef. qmetaobjectbuilder.cpp(93): warning #177: function "priv" was declared but never referenced qobject.cpp(2349): warning #177: function "check_and_warn_compat" was declared but never referenced qpathsimplifier.cpp(141): error #177: function "<unnamed>::Rational::isValid" was declared but never referenced qtextengine.cpp(2584): error #177: function "<unnamed>::QScriptItemComparator::operator()(const QScriptItem &, const QScriptItem &)" was declared but never referenced Change-Id: I89a140d59211f10ecd88d751f0bcc0ea2fedff7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Add QPA session managerSamuel Gaist2013-09-049-50/+394
| | | | | | | | | | | | | | | | | | The QSessionManager doesn't allow customization in platform independent way. The new QPlatformSessionManager aims to change that. Now the QSessionManagerPrivate has a new QPlatformSessionManager member to forward all the calls to QSessionManager's functions. If no platform manager is present, the current behavior is used. QPlatformSessionManager mimics the current QSessionManager behavior. A new factory function has been added to QPlatformIntegration to return a QPlatformSessionManager Task-number: QTBUG-28228 Change-Id: Ida7ac16a8f5303df5014fcb67878170ebdb37203 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com> Reviewed-by: David Faure (KDE) <faure@kde.org>
* Fix QAbstractTextDocumentLayout::registerHandler() argument nameJ-P Nurmi2013-09-021-4/+2
| | | | | | | | Use the same argument name than in the header and docs -> no longer need for the \fn command in the docs either. Change-Id: Id84cb9298e0cb1b61df704603590d86f25323f2d Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix typo in QTextDocument::contentsChange() argumentsJ-P Nurmi2013-09-021-1/+1
| | | | | Change-Id: I2a9a130e77d87041a6551fea1056f3480d45e548 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Added applicationState() to QGuiApplication.Yoann Lopes2013-09-023-34/+60
| | | | | | | | | | | We only had the QApplicationStateChangeEvent to know about the application state. Added a function and a signal to offer a more convenient way to query the current state. Change-Id: I926aac0b3b53bd285df5825aff5b4c37ae863d03 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Sergio Ahumada2013-09-028-57/+320
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-08-278-57/+320
| |\ | | | | | | | | | | | | | | | | | | Conflicts: examples/widgets/doc/src/addressbook-fr.qdoc Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
| | * Use custom class for storing distance fields instead of QImage.Yoann Lopes2013-08-272-29/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Distance fields are stored using a one-byte alpha component per pixel, a format that QImage doesn't currently support. The Indexed8 format was used instead, limiting what could be done with the QImage. This patch introduces a new private class, QDistanceField, with a similar API to QImage and using the Alpha8 pixel format. Unlike QImage which aligns scanlines on a 4-byte boundary, QDistanceField tightly packs scanlines together. Task-number: QTBUG-30908 Task-number: QTBUG-32861 Change-Id: Ic273259ea07dfbd2b81a6358c0ca11a2330eb749 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | * Android: Fix crash when hitting Back button to quitEskil Abrahamsen Blomfeldt2013-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Android, it's possible to reach the condition when window == 0 if you hit the Back key, since the previous bail-out is disabled for this case. To avoid a null-pointer dereference, an extra check is required. Change-Id: Ic898cd82dd6e52c24505dd2248c98efcefc15b1c Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
| | * Ensure the docs for QOpenGLFunctions_ES2 are generatedThiago Macieira2013-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qdoc runs the preprocessor, so it probably skipped the definition for this class. Change-Id: I10933134d0c20131dd25e15bee914ebfac358b10 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Do not recreate window if it is moved to a virtual sibling screen.Friedemann Kleint2013-08-231-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-32681 Task-number: QTBUG-33062 Change-Id: Id37627231b7a129c398d90d3f01ded6bd5171088 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * Switch back to thumb for android armeabi.BogDan Vatra2013-08-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Add workaround for gcc 4.8 compile bug. Change-Id: Ie7a81ec25a79764989bbd9eb43dd5a8fbf442dfc Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| | * Check for window handle in QBackingStore::flush().Friedemann Kleint2013-08-221-0/+5
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-33062 Change-Id: Iab4ccc3a2a855ee7f6964659b53b3401af436212 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
| | * Don't use qt_mac_get_fixed_pitch() to resolve fixed pitch fonts on OSXTor Arne Vestbø2013-08-211-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The call was resulting in inifinite recursion on OSX 10.9 when Qt was built against the 10.7 SDK, as qt_mac_get_fixed_pitch uses QFontMetrics to resolve the pitch, and we would end up in the font resolver again when asking for the metrics. The CoreText font-database already takes care of resolving whether or not a font family is fixed-pitch, so the code is likely a leftover from the ATSUI-days, and can be removed. Task-number: QTBUG-31803 Change-Id: I37c90fa637927eb4adc16c0fd556c4c46c456034 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | | QPainter: Fix (!a == b) bugTobias Hunger2013-08-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The ! binds to a only, which is most likely wrong here. Change-Id: I4aa09407a8acc68f97bef474781193774e4a7597 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
* | | Fix warning about class/struct mismatchTobias Hunger2013-08-301-2/+3
| | | | | | | | | | | | | | | | | | | | | Clang does not like this:-) Change-Id: I9c65025d99d31b5ef1314dadf90eef02d23eacb0 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | QFileDialog: add MIME Type filtersDavid Faure2013-08-292-0/+14
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Currently just a convenience method for setNameFilters(), it uses QMimeType to create a name filter from the glob patterns and description defined in each MIME type. In the longer term, this API could be used to do proper mimetype-based filtering using QMimeDatabase::mimeTypeForFile() in the builtin QFileDialog (aka "not native"), instead of only looking at globs via the name filters. Change-Id: I0edccf5f30c514481b47cd100d743d1ed7a24024 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Add operator[] to QVectorND classesSean Harmer2013-08-276-0/+102
| | | | | | | | | | | | Change-Id: Ia786d4fab64da974bb60f24c05325925d42a1e70 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Move SnapToDefaultButton from QPlatformDialogHelper to QPlatformThemeAndy Shaw2013-08-234-18/+8
| | | | | | | | | | | | | | | | | | | | | | Since QPlatformTheme covers all dialogs whereas QPlatformDialogHelper is really only for the native dialogs then the SnapToDefaultButton hint is moved as it has relevance for all dialogs Task-number: QTBUG-32631 Change-Id: I1dce0bb4abcd4cfd39c4a199a33fc7078176ab4b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Accessibility for AndroidFrederik Gladhorn2013-08-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enables both modes for TalkBack, explore-by-touch and the normal swiping mode. It is partially inspired by the BarGraphView example of the Google/Android Eyes-Free project. Note that for any accessibility to work you'll need a device with api level 16 at least. Using reflection we should be able to dynamically pick up the classes if we have the high enough api level. Change-Id: I11b93bead451483782a1711434d45c8f9a35996f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Remove rowColumnExtents from QAccessibleTableCellInterfaceFrederik Gladhorn2013-08-221-6/+0
| | | | | | | | | | | | | | | | | | The API is broken and available in individual functions. Don't make it more complicated than necessary to implement the interfaces for new widgets. Change-Id: Ie408c369ef05b2b8e7ac666b25153d090fcf3aae Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Fix typo in qkeysequence.cpp code comment.Mitch Curtis2013-08-221-1/+1
| | | | | | | | | | Change-Id: I833c4da7363d7ae5dcfa5a901dadc0e327080e40 Reviewed-by: David Faure (KDE) <faure@kde.org>
* | Fetch StandardKey shortcuts from QPlatformThemeDavid Edmundson2013-08-206-267/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows platforms to dynamically alter their keyboard shortcuts, for example if they are user-configurable on that platform. Current behavior remains the same. QEvent previously used the hardcoded values in QKeySequencePrivate so this was modified to use QKeySequence::keyBindings(). In order to keep the speed of QEvent's former binary search, we moved this code to QPlatformTheme::keyBindings(), making it faster for all keyBinding lookups. As we now need to search by StandardKey instead of by shortcut the list is reordered and a test is changed to reflect that. Change-Id: Iefb402fbbe8768be2208ce036f3c2deed72dcc6c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Get rid of HB dependency in FT font engineKonstantin Ritt2013-08-205-61/+42
| | | | | | | | | | | | | | | | | | Instead of loading HB face in QFreetypeFace::getFace(), defer allocation until the first FT font engine for that face gets initialized; then, QFreetypeFace "reparents" and manages the loaded HB face. Change-Id: I2ac8ead4c6ed25d341af9c9cf0c34dfb979f8390 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-08-168-20/+61
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-08-148-20/+61
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/macx-xcode/Info.plist.app mkspecs/macx-xcode/Info.plist.lib qmake/doc/qmake.qdocconf src/corelib/global/qglobal.h tests/auto/other/exceptionsafety/exceptionsafety.pro tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp Change-Id: I3c769a4a82dc2e99a12c69123fbf17613fd2ac2a
| | * un-confuse lupdate: use #if 0 consistentlyOswald Buddenhagen2013-08-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | it's no good idea to #if 0 the opening brace but comment out the closing one. Change-Id: I6f9ca8f14f0dc82fb22df85de547564336ed0476 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Add offset reading support in pnghandlerSamuel Gaist2013-08-071-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the offset reading that matches the offset writing in writeImage Task-number: QTBUG-32674 Change-Id: I264ba41163e59638d7219e0a8913f9d455830883 Reviewed-by: aavit <eirik.aavitsland@digia.com>
| | * Don't crash if the QWindow's screen is temporarily invalidShawn Rutledge2013-08-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It can happen during the transition between screens when one screen is disconnected that the window doesn't have a screen. Task-number: QTBUG-32681 Change-Id: I066855a2ffe80f0680a3044e73f4f491c2c0eb5c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Fix ignoring closeEvents on OSX for QtQuick.Daiwei Li2013-08-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QCloseEvent's accepted state should not be inverted for the QWindowSystemInterfacePrivate::CloseEvent. To make Widgets work with this change, pass whether the close was accepted from close_helper to the QCloseEvent generated by QGuiApplication. Task-number: QTBUG-28965 Change-Id: If384b0355776b93df02dff2ab78b5647903200e7 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Josh Faust <jfaust@suitabletech.com>
| | * Doc: porting from QDesktopServices::DataLocation to QStandardPathsDavid Faure2013-08-031-1/+21
| | | | | | | | | | | | | | | | | | | | | Change-Id: Ifd96db46cc8d0170b136a9e3154ed37ebe6ad830 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>