summaryrefslogtreecommitdiffstats
path: root/src/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Some Vista style cleanupJens Bache-Wiig2012-11-011-25/+28
| | | | | | | | Creates a function for cloning the style options used by Vista style. Change-Id: I4d83661acd6bdfff5c633447046a206018b537af Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Make ToolButton work with Macstyle for componentsJens Bache-Wiig2012-11-013-2/+22
| | | | | | | | | | We needed a new helper function for this. The widget cast was breaking desktop components. By using accessible role, we can make it work for both use cases without depending on the widget. Change-Id: Ic854dc45a4e5b7a50c5be701e903d58a4a914ee5 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Fix groupboxes for desktop components on macJens Bache-Wiig2012-11-011-1/+1
| | | | | | | | | | The logic was a bit odd as it would check if the groupbox had a font set and then override it anyway. Since we anyway want the fallback to be used for components we just make sure that the fallback is to use the same code path. Change-Id: Ic5071b43cda76e2bb7356a6f71cc8458c4e8bf27 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Strip trailing whitespace in itemviews.Stephen Kelly2012-11-017-11/+11
| | | | | | | | | | | Using git ls-files -z | xargs -0 sed -i 's/ \+$//' in the relevant directories. Change-Id: I861ef9952fb32ed2db9ec8b67864ec7d0d61f0f2 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix buttonsize on macstyle when no widget is definedJens Bache-Wiig2012-11-011-1/+1
| | | | | | | | | | | The previous size was incorrect and added far too much height when the widget was undefined. When it was defined it would get its size corrected so the patch should have very little effect on existing widget code. Change-Id: I7c22f4226eda270f0d71050bc4248686b035cb39 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Fix QCommonStylePrivate::stopAnimation()J-P Nurmi2012-10-301-7/+3
| | | | | | | | Make sure that QCommonStylePrivate::animation() does not return an animation that was already stopped. Change-Id: I35b7f8e0fabff9908f247b3632e35388e2c95a6d Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Add QNumberStyleAnimation for fading out scroll bars on MacJ-P Nurmi2012-10-302-0/+69
| | | | | Change-Id: I6a85ed069a418d62078af6490a3d3186d5599a95 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Send leave to most recently entered window when modal dialog is shown.Miikka Heikkinen2012-10-301-0/+1
| | | | | | | | | | | | | | | If a modal dialog was shown as a response to button click, the button retained its hover highlight, because it didn't get leave event. Fixed by tracking the most recently entered window and sending a leave to it when modal dialog is shown that blocks it. Also modified tst_QGuiApplication::modalWindow() autotest to check for enters and leaves. Task-number: QTBUG-27644 Change-Id: I387647e18a762a39d523e3df31221b9583a39f9d Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Remove some dead codeJan Arve Saether2012-10-291-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | This code became dead when the Symbian code was removed, and should ideally have been removed at that point. You can find the old code in 4.8 repo: bool showSystemDialogFullScreen = false; if (qobject_cast<QFileDialog *>(this) || qobject_cast<QFontDialog *>(this) || qobject_cast<QWizard *>(this)) { showSystemDialogFullScreen = true; } if (showSystemDialogFullScreen) { setWindowFlags(windowFlags() | Qt::WindowSoftkeysVisibleHint); setWindowState(Qt::WindowFullScreen); } So, obviously, stuff inside the #ifdef Q_OS_SYMBIAN was removed, but the side-effect of that was not realized..... Change-Id: I6b5d1066c97367c354af4da1ce6b9c60c8dc2120 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Do the actual removal of the Soft Keys API and related codeJan Arve Saether2012-10-2922-898/+4
| | | | | | | | | | | | | | | | | | | In addition to the actual removal of the softkeys API in QAction, this commit removes some enums related to the softkeys feature: Qt::WA_MergeSoftkeys Qt::WA_MergeSoftkeysRecursively It also removes some "zombie" enums: Qt::WindowSoftkeysVisibleHint = 0x40000000, Qt::WindowSoftkeysRespondHint = 0x80000000, (The only implementation that used these were removed when qapplication_s60.cpp and qwidget_s60.cpp were removed.) Change-Id: Ib6fc6d543def4757383d5f19256199d9d190c614 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Fix build on MinGW after 0f14ea3f3a05ef785b44fa610bf90ff3b5ba7bebKonstantin Ritt2012-10-292-8/+10
| | | | | | | | Also generalize set _WIN32_WINNT to 0x0501 and _WIN32_IE to 0x0501 globally, as it is out minimal requirement these days. Change-Id: I8ca9102d49c37f908fd8ac032f707f8fe4fdcb22 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove some dead code in switch statementsSergio Ahumada2012-10-293-4/+0
| | | | | | | | | | Following the Code Style described in http://qt-project.org/wiki/Qt_Coding_Style#e289ee44592e9c32d4212069f0806daf There is no need for a 'break' after a 'return'. Change-Id: I1eca350391a7e4e14e504d60b24b69982cc5ac47 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Implement QAccessibleLineEdit::characterRect()Jan-Arve Saether2012-10-281-0/+1
| | | | | | | | | | | | It was probably not implemented because it needed to access private APIs. However, accessing those from this a11y plugin is unproblematic. Forward-ported from Qt 4.8 with change d2fb64d52fc6ec229d775f829a9a0cb3d251aad3 (and then slightly improved) Change-Id: Ifa2d48c152fd75fc1fff49a05369787a7db3b902 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* QComboBox: new signal currentTextChangedMark Brand2012-10-262-3/+20
| | | | | | | | | | | Adds NOTIFY to currentText property. Test included. Change-Id: I3e92b585ad6697891d61537c82f6ab9e8beb1a00 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QComboBox: fix use in QDataWidgetMapper/QItemDelegateMark Brand2012-10-262-2/+18
| | | | | | | | | | | | | | | | | | | | | | | QItemDelegate and QDataWidgetMapper use the WRITE method on the USER property to set a value in a widget. This did not work for QComboBox whose USER property currentText lacked a WRITE method. This change adds the missing setter and flags it as the WRITE method. The setter setCurrentText() simply calls setEditText() if the combo box is editable. Otherwise, if there is a matching text in the list, currentIndex is set to the corresponding index. Test included. Follow-up to 816c5540179362500dfc175b77f05abf3ef25233 which restored currentText as the USER property. Task-number: QTBUG-26501 Change-Id: I5f2f999e60b09728ca03ead4e28fe36d1f3ee189 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView 5.0 - no emit of sortIndicatorChanged when unchangedThorbjørn Lund Martsum2012-10-261-0/+2
| | | | | | | There is no reason to emit this when there is no change. Change-Id: I34f0ceec7c4b0959b77bc5be3ce2c2ad55864598 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix syncing of visibility and enabled for menus on CocoaAndy Shaw2012-10-261-0/+2
| | | | | | | | | | | Fixed menu handling on Cocoa so if a menu is enabled/disabled or made visible or not then it will keep this in sync with the appropriate native menu entry. Change-Id: If269185fcf065fb1b2f60d6ef8c27c107eb4509f Reviewed-by: Pasi Matilainen <pasi.matilainen@digia.com> Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Fix a crash in QFileDialog when selecting an invalid name filter.Friedemann Kleint2012-10-261-5/+7
| | | | | | | | | | | When nameDetailsVisible is set to false and an invalid/empty string is passed to selectNameFilter(), the regexp used to strip the filter off the suffixes returns empty and a crash occurs. Change-Id: I926ea49514ff25a103977d8121fca1cf83d647f5 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix enter/leave event generation between native widgets when grabbing.Miikka Heikkinen2012-10-261-3/+8
| | | | | | | | | | | Removed enter/leave event generation when moving between between related windows in QWidgetWindow (i.e. native widgets) while some widget was explicitly grabbing the mouse input. This makes enter/leave event generation identical to non-native widgets. Task-number: QTBUG-27551 Change-Id: I4996007bd7922e073a2957ad267a6373e8f3fecc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove Windows as a dependency of mac styleJens Bache-Wiig2012-10-253-46/+103
| | | | | | | | | | There is not need to have this dependency any more since mac is overriding anything we depend on in Windows style anyway. Change-Id: I8fe0e0cc949265170947b492e04e08fdd4cf5027 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Remove widget dependencies on Vista style animationsJens Bache-Wiig2012-10-251-329/+350
| | | | | | | | This patch will make it possible to get animations on desktop components without using the widget pointer. Change-Id: I2d2eca111dab0d96f276ff3627505c0652c4b4e5 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Remove stale QT_MODULE() usage casesKonstantin Ritt2012-10-251-1/+0
| | | | | | | As of Qt5, this macro is defined to be empty; simply get rid of these leftovers. Change-Id: I167ccb4c9e92ec9b5e4faeb02bf9c5ef5d982b50 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Mac: Non-editable QComboBoxes shouldn't get focus by defaultGabriel de Dietrich2012-10-251-1/+19
| | | | | | | | | | On Mac, only line edits and list views always get tab focus. It's only when we enable full keyboard access that other controls can get tab focus. When it's not editable, a combobox looks like a button, and it behaves as such in this respect. Change-Id: Ia31b0ad01b48a47c1b81180364681d8614863106 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QStyleAnimation: writable duration & delay propertiesJ-P Nurmi2012-10-252-11/+35
| | | | | | | These will be needed by upcoming QFadeStyleAnimation and QBlendStyleAnimation. Change-Id: Ibc5092d5dbd834cb9b16353d3e83b95b04d9484b Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* QMacStyle: make default button animations independent of QWidgetJ-P Nurmi2012-10-254-115/+65
| | | | | Change-Id: I63c078050288e3151a9c6aad5d4ae28a58afd84f Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Implement viewOptions logic in QTableViewPrivate.Stephen Kelly2012-10-252-3/+11
| | | | | | | | | | | This is similar to the patch 05aa8c6c12509cce87d1a3811c5ea1dd83fa0898 which was applied to QListView. Task-number: QTBUG-26548 Change-Id: I38ff07230673a93a32b01a7f1951d0378d94185b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix: don't override the new non-cosmetic default pen in qwidgetaavit2012-10-251-1/+1
| | | | | | | | | | | | | As QWidget initializes any painter created in paintevent handler to have the pen color of the palette's foreground, setting it to 0 width, i.e. cosmetic, it negated the effect of the recent change to default 1-width non-cosmetic, ref. I04d910e9700baf7f13a8aac07a3633014bb9283e This caused scaled painting with default pen on QImage and QWidget to yield different results. Change-Id: I930b64bf7c0a8c84b9ea3edb49adc813370fed0e Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fixed crash on destruction of animating QDockWidget in a QMainWindowRohan McGovern2012-10-252-2/+5
| | | | | | | | | | | | | | | | | | | It doesn't make sense to hold an unguarded pointer to a QPropertyAnimation while assigning ownership of that animation to the animated widget. Destruction of the widget while the animation is in progress causes the animation pointer to become dangling; then the widget is removed from the containing QMainWindowLayout, which attempts to abort the animation, dereferencing the invalid pointer. The crash can be reproduced sometimes with tst_QDockWidget::taskQTBUG_2940_resizeAfterUndocking (which is in Qt4 only). Change-Id: I758bf7193b2ea39cd4d8e87197d8ff957d3368eb Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Fix widget borders when using global stylesheetstyleMiikka Heikkinen2012-10-251-9/+5
| | | | | | | | | | Recent fixes to stylesheetstyle caused not calling fixupBorder() when globalStyleSheetStyle is used. Task-number: QTBUG-27651 Change-Id: I73263c951e2db7d574e81da3f60a1b79f3852716 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
* Add ContextMenu event to QWindowSystemInterfaceMiikka Heikkinen2012-10-252-1/+37
| | | | | | | | | | | | | Context menu key wasn't working, as QPA had no handling for it. Added ContextMenu event to QWindowSystemInterface and proper handling to QGuiApplication and QWidgetWindow. Also provide Windows implementation. Task-number: QTBUG-27648 Change-Id: I7ce71ec4b5cdcc7be758e67f9faf6d863f7b19be Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Add QStyleAnimation::updateTarget()J-P Nurmi2012-10-232-4/+10
| | | | | | | | | For example a paused "default button" animation might want to update the target to get "non-default button" looks meanwhile the animation is paused. Change-Id: Ibb854a40f38a8971e7233b1f34a83056e6a9d827 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QStyleAnimation: fix threaded renderingJ-P Nurmi2012-10-232-5/+7
| | | | | Change-Id: I00875adf2e4b157a3f8b0b99e5280b1275635026 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Remove softkey API, it was only implemented for Symbian.Jan Arve Saether2012-10-222-4/+12
| | | | | | | | | | | | | | It is only removed from the documentation for now (I think this should go in the beta 2). That should liberate us to be able to change the API if needed for other platforms that might need a soft keys API. Once this goes in, the plan is to do the actual cleanup. Change-Id: I9a7a3eb45597cd013fe3c4bd479ad08a25ef0b9b Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove Cleanlooks and PlastiqueJens Bache-Wiig2012-10-2217-10662/+27
| | | | | | | | | We have a new style Fusion that will replace these styles. They will be moved to a separate module rather than included in platforms that do not need them. Change-Id: I51ebbcad5406e99130e5b12e62ba624d1489088c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix clipping and font problems with groupbox in Fusion styleJens Bache-Wiig2012-10-221-10/+14
| | | | | | | | | | | The groupbox did not take custom fonts into account when calculating the height of its titlebar. This resulted in clipping issues on Windows. Task-number: QTBUG-27655 Change-Id: I7252bc94d2bbb0731b9dbc1caa6cdd2074fdd7ab Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Make QPen default to 1-width non-cosmetic.Samuel Rødal2012-10-223-16/+5
| | | | | | | | | | | Use the Qt4CompatiblePainting render hint when painting with QPainter to treat default constructed QPens as cosmetic still. The NonCosmeticDefaultPen render hint gets documented as obsolete, since it was in any case not respected by the raster nor OpenGL paint engine. Change-Id: I04d910e9700baf7f13a8aac07a3633014bb9283e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Move some icon code from WindowsStyle to CommonStyleJens Bache-Wiig2012-10-223-456/+456
| | | | | | | | | | | Fusion style only depends on CommonStyle and it seems the autotest for tst_QFileSystemModel:iconProvider assumes an icon will be returned from standardPixmap. Since we dont want the icons to depend on style in this case we should move all this to commonstyle. Change-Id: I3a26367e5c0aefe2a39838f0c2cadc4f7afad89d Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Delete QWhatsThis() and QToolTip()Marc Mutz2012-10-223-7/+2
| | | | | | | | | | | | | | | These classes are not supposed to be instantiated. QToolTip() already was declared, but not implemented. This patch just adds Q_DECL_EQ_DELETE for better diagnostics on C++11. QWhatsThis() was implemented, but appears to be unused. Since it was private to begin with, successfully compiling QtWidgets is a sufficient test. Change-Id: I698ece8f0eebbcdac7be98456dd42197b758a825 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QDateTimeEdit: don't throw off auto-indentionMarc Mutz2012-10-221-3/+2
| | | | | | | | Reformulate #ifdef'ery involving {}s so as not to throw off auto-indention of code editors due to unbalanced {}s. Change-Id: I0f9858c78d0b6d923de75ca45c7d65ce3fa53e50 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix integer overflow in QSpinBox.Stephen Kelly2012-10-221-2/+17
| | | | | Change-Id: Ic204d42fbdffc44576f7e76132bc53621e836299 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Emit cursorPositionChanged in private slot.Frederik Gladhorn2012-10-221-2/+2
| | | | | | | | Since the private slot is already there and used, it might as well emit the signal and save us one connection. Change-Id: I899df74c20f8c2b7875a0f9d0a04465c5dc48bde Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Bring back accessibility for plain text edit.Frederik Gladhorn2012-10-221-0/+6
| | | | | | | | | | This ports 282951bc6c7ddb607fb7ebf61eb8de9acf3da77f aka Change-Id: If0269a49b9fcd1b3e9fcfd32fac912560df28f21 to Qt 5. Change-Id: I46f1d4947d90688b598993f76330e2e10aeca950 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Mac: Adapt scrollbar fadeout animation for QStyleAnimationGabriel de Dietrich2012-10-192-2/+11
| | | | | Change-Id: I39f1089e8d6ba1bb412d33aa4ebc0971aba52681 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QStyleSheetStyle: kill more dependencies to QWidgetJ-P Nurmi2012-10-191-10/+12
| | | | | | Change-Id: I5e58ec68c5d20fd7b201c83743f9d284e7c4dc52 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* remove explicit load(qt_build_config)s from the librariesOswald Buddenhagen2012-10-191-2/+0
| | | | | | | .qmake.conf (and previously .qmake.cache) already does that for us. Change-Id: I06cc01fa45921d7bd66dda7a0f88729faeff37bd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix excess enter/leave event generation for native widgetsMiikka Heikkinen2012-10-191-2/+25
| | | | | | | | | | | | | | | | | | | | | | Native widgets have a native window each, so QPA plugin sends enter and leave events for associated QWindow whenever mouse cursor moves from one widget to another. QWidgetWindow had no context to interpret these events as moves from one widget to another, since they were sent separately. This resulted in leaves and enters for each widget in parent chain, when only the bottom child should have gotten them. Fixed by peeking into window system message queue when handling leave in QWidgetWindow and retrieving the entered window from queued enter event. Also provided a convenience function that QPA plugin can use to ensure both leave and enter events are in the event queue when moving from one QWindow to another. Task-number: QTBUG-27550 Change-Id: I74fec0ac90f6848495c2392c5f7e41624ad8aea2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* QStyleSheetStyle: QObject-based style & render rulesJ-P Nurmi2012-10-192-97/+101
| | | | | | | | | The goal is to cut as many QWidget dependencies as possible and make stylesheets eventually work for the desktop components. Change-Id: Ib4aa47af07379fc39fd6df1961e113d03df6df35 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fixed inconsistent QPainter fill rules for aliased painting.Samuel Rødal2012-10-192-0/+13
| | | | | | | | | | | | | | | | | | | | | | Qt 5 is the time to get rid of all the old inconsistencies in the raster paint engine caused by trying to preserve the old X11 based coordinate system where (0, 0) is in the center of the top-left pixel instead of the upper left corner of said pixel. However, this was only adhered for line drawing and path / rect filling, and not for image or pixmap drawing and not at all when doing antialiased painting. By defining the antialiased coordinate system as being the right one and letting the aliased fill rules follow from that we finally end up with some consistent behavior that doesn't lead to surprises and workarounds in application code. It is still possible for applications to get the old behavior by setting the QPainter::Qt4CompatiblePainting render hint. This should make porting easier for the few cases where an application relies on the aliased fill rules we used to have in Qt 4. Task-number: QTBUG-27500 Change-Id: If86b95e77d838ec83033d64af86632b9a73c74a9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make sure uints remain uints when editing in itemviews.Stephen Kelly2012-10-191-1/+32
| | | | | | Task-number: QTBUG-22974 Change-Id: I07428862c4dffc629f868f3010f663eb655922d0 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Correct accessibility index handling in QListViewJosé Millán Soto2012-10-191-3/+3
| | | | | | | | QListView::currentChanged and QListView::selectionChanged changed to use 0-based indexes instead of 1-based indexes. Change-Id: Ie618970c9a37ec76156dbfab2e86685c3c8f374c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>