summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
Commit message (Collapse)AuthorAgeFilesLines
* eglfs: Introduce way of filtering out unwanted EGL configs.Samuel Rødal2013-01-186-3/+39
| | | | | | | | | | | | Some times a platform might want to exclude certain configs, for example based on EGL_NATIVE_VISUAL_ID. This patch introduces a new QEglConfigChooser class which has a virtual filterConfig() function which can be re-implemented in a sub-class to give finer control of how configs are chosen. Change-Id: I8b684f01be95a47307b1e429857f01337a9a38d8 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-01-1611-23/+56
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-1611-23/+56
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/widgets/styles/qstyleanimation.cpp Change-Id: Iae570895be6544de80f9c1ec309d1a08c59daff8
| | * Implement QPlatformWindow::isExposed() on Windows.Friedemann Kleint2013-01-151-0/+1
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-28439 Change-Id: I4a81a8947056ecd4e1e61ffb0e5d94ee2ad860df Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Merge remote-tracking branch 'gerrit/release' into stableFrederik Gladhorn2013-01-152-1/+6
| | |\ | | | | | | | | | | | | Change-Id: Ieb104d0e390218a063082c93bc9c7e412af2166d
| | | * XCB: Force XSync after creating WindowKai Koehne2013-01-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that dpy->request == dpy->last_request_read after setting up a new window. If we don't do this, last_request_read might never be updated until the difference hits a limit that can lead to hangs in the application (see e.g. QTCREATORBUG-8373). Task-number: QTBUG-29106 Change-Id: I390493ca6f966dc105d3ea3a2c48abec01177bc2 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | | * Change all shmget calls to user-only memoryThiago Macieira2013-01-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop the read and write permissions for group and other users in the system. Change-Id: I8fc753f09126651af3fb82df3049050f0b14e876 Reviewed-by: Richard J. Moore <rich@kde.org>
| | * | Windows: Force toplevel flag in setParent() in both cases.Friedemann Kleint2013-01-151-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When re-applying window flags in setParent, force top level on or off according to state. Task-number: QTBUG-28872 Change-Id: If931fcb38394f472a6cdf260aa935c1d03779611 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * | QNX: Make QWidget::hide() work immediately.Sergio Martins2013-01-141-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3ea2556769703a8cd4c2931cc2332ab0733fbea6 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
| | * | Clear backingstore for windows with alpha channel.Friedemann Kleint2013-01-112-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes painting artifacts in translucent windows. Task-number: QTBUG-28531 Change-Id: I00a7a86f88a40d356fa3e37bd497a288b2118469 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * | fix linuxfb crash on program startKonrad Rosenbaum2013-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the KDGETMODE ioctl should use a pointer to int as param, not a pointer to pointer to int, otherwise it may crash Change-Id: Ie255d240f3b6ca1ff5398f972308116135374ae3 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
| | * | More explicit QCocoaAccessibleElement memory mngmtMorten Johan Sorvig2013-01-094-8/+16
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't autorelease in the elementWithInterface function, rename it to createElementWithInterface. The element can then be released immediately or autoreleased ("delete later"). Change-Id: I155a85404c34d756c1752eb7c24a7fb0f3cf2e77 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | | Fixed dead keys on MS WindowsJuan Luis Boya García2013-01-161-3/+9
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Qt4, there is a bug which causes Qt to drop dead key modifiers (like graves and acutes) if the user types enough fast on MS Windows. This happens because of an extrange behavior of Windows, which drops dead keys on ToUnicode() calls. This patch tries to workaround that. Task-number: QTBUG-8764 Task-number: QTBUG-10032 Change-Id: Ifdde25817743194fd5c0b7533c27f46a7a108ca4 Reviewed-by: Friedemann.Kleint@digia.com Reviewed-by: oliver.wolff@digia.com Reviewed-by: marc.mutz@kdab.com Reviewed-by: bjoern.breitmeyer@kdab.com Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | Use backslashes for UNC paths.Gatis Paeglis2013-01-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ShellExecute fails to open a share folder due to using '/' instead of '\'. Windows API doesn't support forward slashes for extended-length path. Extended-length path are path that start with a "\\?\" prefix. For example, "\\?\c:\very_long_path\foo\bar.txt", or in the case of a UNC path that would be "\\?\very_long_path\foo\bar.txt". [1] [1] http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath Task-number: QTBUG-13359 Change-Id: Ibb113abeebd56f106f76520bc23dba797de548fa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | QPA, Cocoa: Add platform popup menusGabriel de Dietrich2013-01-112-1/+42
| | | | | | | | | | | | | | | | Also, allow to set menu-wide font (instead of per menu item), and minimum width. Change-Id: I5f83f260602f55b9409ad69abf670afb59b2d33a Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | Refactor paint/font-engine shouldDrawCachedGlyphs and supportsTransformationsTor Arne Vestbø2013-01-101-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some cruft had built up over time, and this is an attempt at cleaning up the naming and use of these functions, and should not have any behavioral effects. The function supportsTransformations() has been renamed in QPaintEngineEx to reflect its use, which is to decide if QPainter needs to pre-transform the coordinates of the static text before asking the paint-engine to draw it. The new name is requiresPretransformedGlyphPositions(). The OpenGL and CoreGraphics (Mac) paint engines keep their behavior of not needing pre-transformed text, while the raster engine needs this when using cached glyphs. The base-class implementation assumes that all transforms that include a projection will need pre-transform, which is also the case for the raster engine. All decisions in the paint engines about whether or not to use the glyph cache when drawing text are now deferred to the function shouldDrawCachedGlyphs(), which has been refactored for the GL paint engine(s) to share more logic. All implementations call the base class implementation, which ensures that large font sizes will not be cached. The raster engine will in addition ask the font engine whether or not it can produce glyphs for the glyph-cache with the given transform. This is the only remaining instance of the supportsTransformations() function, and will for all font engines except the CoreText engine support affine transformations. The CoreText engine on the other hand only supports translations (for now). Change-Id: I8fb5e43e3de3ef62a526a79a6dfeda7f9546771d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Fix frame of Aero-Style wizards.Friedemann Kleint2013-01-094-23/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add custom frames which are added to the system frame to the platform plugin. Make them settable when creating a platform window using dynamic properties and per window properties of the platform native interface. Use this in favor of the native event handling changing the frame in wizard_win.cpp since that caused the frame/backing store sizes of the QWindow to be wrong. Task-number: QTBUG-28099 Change-Id: Idd6416cf1b0eb629f56663088b0ce17162e1739d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge branch 'stable' into devSergio Ahumada2013-01-091-2/+7
|\ \ | |/ | | | | Change-Id: I7f0dab6bdb1f3cc1d3e6c30166ff6db9dfae37e9
| * Fix QNX QPA plugin clipboard implRafael Roquetto2013-01-081-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | QQnxCliboard::setMimeData was not cleaning the system clipboard aproppriately when m_mimeData != 0 but m_mimeData->userMimeData == 0, as it would return early before the empty_clipboard() statement. Also, we need to emit the dataChanged() signal after the clipboard has been cleared as well. Change-Id: Ie06609e6e3a0a0135f1cdb6cf4c90b490ef2fc28 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge "Merge branch 'stable' into dev" into refs/staging/devJędrzej Nowacki2013-01-079-28/+50
|\ \
| * \ Merge branch 'stable' into devFrederik Gladhorn2013-01-079-28/+50
| |\ \ | | |/ | | | | | | | | | | | | | | | Conflicts: tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp Change-Id: I6b8d505fc22f052c307ca27f58f7d16f98965f47
| | * Cocoa: Fix zombie NSScreen crashGabriel de Dietrich2013-01-042-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While the Cocoa documentation says we should not cache [NSScreen screens], it seems that we should not cache its referenced objects either. This caused a crash in desktop components when using Dial because, given the way it is being rendered, we need to know the screen pixel ratio. Task-number: QTCOMPONENTS-1279 Change-Id: If5c3c6f14d04925215b9dca011143a2056a68846 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
| | * Windows: Add fallback for UpdateLayeredWindowIndirectJonathan Liu2013-01-041-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The UpdateLayeredWindowIndirect function is only available on Windows Vista and later. If UpdateLayeredWindowIndirect is not available (e.g. on Windows XP), use UpdateLayeredWindow instead. Change-Id: I8af23c051560f7e54eda390dae7553543c00a94b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Do not crash in the bridge because of inconsistent hierarchyJan Arve Saether2013-01-031-2/+4
| | | | | | | | | | | | | | | Change-Id: I732b624b9918ff4ab59ef46322fd42167b438a8d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| | * QNX: Don't crash because the window hasn't been initialized yet.Sergio Martins2013-01-032-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't call window->handle() inside the backingstore ctor, because we might still have the window ctor in the call stack ( ex: a QWindow sub-class that creates a backingstore inside it's ctor). Crash can be reproduced by running examples/gui/analogclock. Change-Id: I4622ceaeb05696c5ae0181a528f58e5d102dcb22 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * WINCE: Follow new library naming schemaAndreas Holzammer2013-01-031-2/+2
| | | | | | | | | | | | | | | Change-Id: Iad85e64bf504053e21cad809d2435c1ca239201b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Fix warnings found by GCC 4.7 in the XCB platform pluginThiago Macieira2013-01-032-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | qxcbnativeinterface.cpp:246:8: error: unused parameter 'context' [-Werror=unused-parameter] qxcbcursor.cpp:550:85: error: 'root' may be used uninitialized in this function [-Werror=maybe-uninitialized] Change-Id: I5fa4e717c86d0e8198e501e6c799e0ceb9264708 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | | Add API dealing with QMargins to QRect.Friedemann Kleint2013-01-072-12/+1
|/ / | | | | | | | | | | | | | | | | | | - Addition of a QMargin to a QRect. - Removal of a QMargin from a QRect. - Remove implementation from Windows platform plugin. Change-Id: Iae54bc13e94a7ece48853b1d3f3de2bfc154d2dd Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* | Merge branch 'stable' into devFrederik Gladhorn2013-01-0462-273/+1181
|\ \ | |/ | | | | | | | | | | | | | | | | | | Conflicts: examples/widgets/painting/shared/shared.pri src/corelib/tools/qharfbuzz_p.h src/corelib/tools/qunicodetools.cpp src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp src/plugins/platforms/windows/qwindowsfontdatabase.cpp Change-Id: Ibc9860abf570e5ce8b052fb88feb73ec35e64bd3
| * Fix warning about unused variableThiago Macieira2013-01-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | qeglfshooks.h:77:21: error: 'hooks' defined but not used [-Werror=unused-variable] Defining a static variable in a header file is a terrible idea. But if I remove it, other code breaks and I don't have the time to fix them all. Change-Id: I4f94cbc7f0790df91853662749701e8fb11c2347 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| * Cocoa: Re-enable per class palette on QPA pluginGabriel de Dietrich2012-12-241-16/+16
| | | | | | | | | | | | | | Task-number: QTBUG-28443 Change-Id: If66604e8d002be6cf4c308378199c96be7422e06 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
| * add and use qtHaveModule() functionOswald Buddenhagen2012-12-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | this is much more elegant than the so far propagated !isEmpty(QT.foo.name). also replace feature-specific tests (no-gui and no-widgets) and the obsolete contains(QT_CONFIG, foo) syntax. Change-Id: Ia4b3c8febcabf9eeca67b1f9173a523820b1038b Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Fix some typosSergio Ahumada2012-12-211-1/+1
| | | | | | | | | | Change-Id: I4e8d9bd8ea66ec810e4f1fbfd8ddbf25c4b3d980 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
| * fix linker command lineOswald Buddenhagen2012-12-211-1/+1
| | | | | | | | | | | | | | | | gcc is apparently tolerant against this abuse. icc is not. Task-number: QTBUG-28775 Change-Id: I872d32177562f076ca8aecd263bc4bb3c7e8edc0 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
| * Merge "Merge 'release' into stable" into refs/staging/stableOswald Buddenhagen2012-12-212-0/+46
| |\
| | * Merge 'release' into stableOswald Buddenhagen2012-12-192-0/+46
| | |\ | | | | | | | | | | | | Change-Id: I57aaa6747c1bfacc7dee036cd69d91a8c0d9ae7a
| | | * Fix font sizes when X11 has a forced dpi settingv5.0.0Lars Knoll2012-12-182-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On X11, the X resource system can override the physical DPI of the screen for resolving font sizes etc. Correctly load the setting and adjust the logicalDpi() accordingly. Change-Id: Id60d03d1d214fb99e9de17a65976abd170bb7cca Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | | * Initalize the printinfo on Mac if it requests and it needs initalizingAndy Shaw2012-12-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the print panel was closed then it would clean up the printinfo and if it was requested for the same QPrinter then it would not be recreated in time. Therefore we check if it is initalized and if not we re-initalize it. Task-number: QTBUG-28657 Change-Id: I7dc9011b80e03cfa3eae8fee2fcf6cc8021a8566 Reviewed-by: Lars Knoll <lars.knoll@digia.com> (cherry picked from commit dde9569d389b4382e8869ac48f942adb3c51ade7) Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
| | | * Fix styleName support in QPA font databaseJiang Jiang2012-12-142-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Font styleName support was disconnected since Qt switched to QPA fontdatabase. Now add the code from Qt 4.8 back to enable this in QPA. Change-Id: Iab2cbfd5468f87542183348c2123ca4b2c270692 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> (cherry picked from commit fa7661d8b25fa338649a301010e1b5a2b63da731)
| | | * Mac: fix bugs for font selection in QFontDialogLiang Qi2012-12-141-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use localized family name and style name when selecting font with non-English locale Task-number: QTBUG-27415 Change-Id: Ie81507ed011fc096e0f5edad146e97c392e86494 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> (cherry picked from commit 3c09f6bc9aee0c97427fe8da6efdc73b4ac473aa)
| * | | Prevent a crash if the pixmap passed in is nullAndy Shaw2012-12-201-0/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | If the pixmap passed in is null then we should not try to create a NSImage for it, so we just return 0 instead. Change-Id: Idae7ba304c97878e0aa8ae1eead5f4bb644a73de Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * | Blackberry: Reset virtual keyboard when shown.Sergio Martins2012-12-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The keyboard mode is shared between applications. You can reproduce this bug by clicking on a spin box, it will open a number only keyboard, then close the application and run an application that shows a text edit: a number only keyboard will appear. PPS keyboard already does this. Change-Id: Ia22e96ce13ad0cec1fd3b43fcdf4d03abfc25134 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * | Initalize the printinfo on Mac if it requests and it needs initalizingAndy Shaw2012-12-171-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the print panel was closed then it would clean up the printinfo and if it was requested for the same QPrinter then it would not be recreated in time. Therefore we check if it is initalized and if not we re-initalize it. Task-number: QTBUG-28657 Change-Id: I7dc9011b80e03cfa3eae8fee2fcf6cc8021a8566 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * | Rename conflicting symbol QVariantToVARIANTMiikka Heikkinen2012-12-173-14/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It appears this method has been copied from ActiveQt. When building Qt statically, linking Windows platform plugin into any application that also uses ActiveQt will cause error about duplicate symbol. Renamed QVariantToVARIANT to QVariant2VARIANT to avoid conflicts. Renaming is done here rather than ActiveQt, as that symbol is in exported header in ActiveQt. Task-number: QTBUG-28645 Change-Id: Id0d7fc51d4455b463515e7c6178798ad61217c35 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
| * | Windows: Remove warning when creating QWindowJonathan Liu2012-12-171-1/+0
| | | | | | | | | | | | | | | | | | Change-Id: I63c76710ab84c88ba8b4b6f24e6161ae2db77a5f Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * | Cocoa: make accessibility hit test not crashMorten Johan Sørvig2012-12-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Check if the accessibility element is valid before calling childAt. Change-Id: Id63c11f18b262c3c3a839db8ee2d11c0d7adc822 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| * | Ensure the native filedialog starts up with the right directoryAndy Shaw2012-12-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Mac it was not starting the dialog with the specified directory when one was present. If a filename was given as well then it would start up fine. Task-number: QTBUG-28161 Change-Id: I7cce0d065dd57e6433ce62380d4263d6e20b6e7c Reviewed-by: Liang Qi <liang.qi@digia.com>
| * | Fix memory leak in cocoa accessibility.Morten Johan Sorvig2012-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Autorelease ("delete later") the created attribute name array. Change-Id: I2d7af9eb1fd899f04c8acb90204600a2dd43fa20 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| * | Don't use NSAccessibilityUnignoredChildren.Morten Johan Sorvig2012-12-142-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function is massively ineffective on deep hierarchies and not strictly needed. (It's supposed to filter out "Ignored" children - VoiceOver will do that anyway based on accessibilityIsIgnored()) Change-Id: I9a74b5f5e9b7880e0d46d5330f7192472eac7a36 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| * | Fix styleName support in QPA font databaseJiang Jiang2012-12-142-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Font styleName support was disconnected since Qt switched to QPA fontdatabase. Now add the code from Qt 4.8 back to enable this in QPA. Change-Id: Iab2cbfd5468f87542183348c2123ca4b2c270692 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>