summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Make qt5_use_modules find dependents only in the parent directory.Stephen Kelly2013-04-111-1/+2
| | | | | | | | | Similar to 70420ec3 (Look for cmake package dependents only in the parent directory., 2013-04-02), make sure this cmake function only searches for sibling packages as dependencies. Change-Id: Icab23d333fa6a750ee262b592fae39f0ba334fee Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make the umbrella Qt5 CMake Config file find components only in the parent ↵Stephen Kelly2013-04-111-3/+3
| | | | | | | | | | | | | directory. Similar to 70420ec3 (Look for cmake package dependents only in the parent directory., 2013-04-02), make sure cmake only searches for sibling packages as components. Change-Id: I9e0c13dfcdba28a9fd6892828b0f509dd63e6604 Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QFreetypeFace: Fix getFace() uses UTF-8 paths on non UTF-8 localesKonstantin Ritt2013-04-115-6/+6
| | | | | | | | | | QFontEngine::FaceId::filename is intended to be local8Bit-encoded but QFreetypeFace::getFace() always treats it like UTF-8-encoded. Also replace explicit (to|from)Local8Bit and toLatin FaceId::filename conversions with QFile::(en|de)codeName, where appropriate. Change-Id: Ic7beabf0a160f2f02f1667bcb8e6067adaba1c16 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix QFontconfigDatabase unable to fallback to a localized familyKonstantin Ritt2013-04-113-15/+13
| | | | | | | | | | | | | | | | When populating the font database, FcPatternGetString(FC_FAMILY) gets a localized font family name; but, in fallbacksForFamily, it gets a non-localized font family name, so it unable to find the proper font to fallback. Simply register all family name variants as aliases to localized name and make sure they are checked when getting fallback families. Task-number: QTBUG-28806 Task-number: QTBUG-30415 Change-Id: I71c03ae9b51a28736c2576f3442f1bbdb3497c09 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Use CMake facility for verbose makefiles instead of an env var.Stephen Kelly2013-04-101-0/+4
| | | | | | | | | It should also have an effect for Visual Studio project files, not just makefile generators. Change-Id: I395071f09b29a6e8967a3d44e41d30480ae783f7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Windows: Dont use black as clear color on opengl windowsJens Bache-Wiig2013-04-101-4/+1
| | | | | | | | | | | Perhaps this made sense when all our open gl examples were black, but with components and I would assume the majority of use cases we should use the default window background color to fill exposed window background during a resize. Change-Id: Ia439a7c3919243efa6026e2e07bee62c25557df0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* QNX: Adjust rotation according to initial orientationRafael Roquetto2013-04-103-0/+14
| | | | | | | | Task-number: QTBUG-29201 Change-Id: I37e82904e0f3d8b372b31ee7d1379e61c788c622 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
* QNetworkConfigurationManager: check whether app is shutting downPeter Hartmann2013-04-101-1/+5
| | | | | | | | | | | | | | | | ... before trying to update the configurations. Before, we would check whether the pointer to the QNetworkConfigurationManagerPrivate instance was 0 and in that case construct it. This would mean that this code path was taken "at app shutdown", i.e. when the qAddPostRoutine had already been called but the other statics were still accessed. Note: This is not thread safe, but neither is the rest of the code; making it thread-safe would require additional changes. Task-number: QTBUG-30585 Change-Id: I8f6cf616e3f3ba1e84b8246589fb7210d2dae57a Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix access to invalid memoryKai Koehne2013-04-101-1/+2
| | | | | | | | | QString::toLatin1() creates a temporary QByteArray. Task-number: QTBUG-30578 Change-Id: I17c60bbade1486399f745c7e9878c6467971e6cc Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Doc: Fix minor typoSze Howe Koh2013-04-101-1/+1
| | | | | Change-Id: Id99a1ea0be841cf7cfaf3c671d36dbddc290fcad Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Remove QT_{BEGIN,END}_HEADERS macrosSergio Ahumada2013-04-101-4/+0
| | | | | | | These macros are useless from Qt 5.1 on. Change-Id: I4574e87ef36e7bc67d2f1caa38c685a837708764 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Mac: Ensure the native filedialog sets file name when savingLiang Qi2013-04-091-2/+2
| | | | | | | | | | | | The name field string was not set in native dialog when one was present. The previous fix is not correct. In the doc of setNameFieldStringValue, it said "The value must not be nil". Task-number: QTBUG-28342 Change-Id: I847fb7472b8fecc0303433d8bf72b6a5bd7da72b Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* OSX window: set QWindow geometry after native window is createdShawn Rutledge2013-04-091-2/+1
| | | | | | | | | | | | | | | Initial window position is at 0,0 by default, then it's corrected in createNSWindow (by calling initialGeometry). After window creation, QNSWindowDelegate will receive the windowDidMove notification and call QCocoaWindow::windowDidMove() which then calls QNSView::updateGeometry(). It will not call QWindowSystemInterface::handleGeometryChange() because the window is still being constructed. So we can fix this by directly setting QWindow::geometry in the QCocoaWindow constructor. Task-number: QTBUG-30382 Change-Id: I3db7a6e83693e5787ae82dcab1767de938d2e5d1 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Mac: Return Qt::Key_F9 for F9, not Qt::Key_F8hjk2013-04-091-1/+1
| | | | | | Task-number: QTBUG-30520 Change-Id: I7006e43ea638796045925e753a2ef8f9d0a066e9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* doc: Minor changes to qtgui.qdocconfSergio Ahumada2013-04-092-3/+3
| | | | | | | Changing "C++ API" -> "C++ Classes" to match all the other modules. Change-Id: I434cd9c32b1db18395242e73564fe309c8ebb99e Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Use Q_DECLARE_PRIVATE for Oracle and DB2 pluginsAndy Shaw2013-04-094-12/+31
| | | | | | | | | This completes the change started with 0bdc86d9ef7be8e27598d245c6ca8026f08aff12 by providing the implementation for the Oracle and DB2 sqldrivers Change-Id: Ia14415c6d7dea51f1369a81236f79aff892b3af7 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Doc: Fix minor typoSze Howe Koh2013-04-091-1/+1
| | | | | | | | | QDoc needs correct capitalization to create a link to the class ref Change-Id: If95ab1245fcad6c0f624b88eb4522ba78be7d6a6 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: fix compilability of the exampleThiago Macieira2013-04-091-1/+1
| | | | | | | | QDBusConnection::registerObject takes an object. Task-number: QTBUG-30483 Change-Id: Ibebec48e8c9d3df0d3fa1177c3887ea5c75e8623 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Doc: add row for Qt 5.0 datastream versionThiago Macieira2013-04-091-0/+1
| | | | | | | | | | | We seem to have two tables. That's a bad idea, but they are there. I won't add Qt 5.1 until we're certain that the datastream isn't changing. It's preferable to lack information than to show the wrong value. Change-Id: Ibc7eb95bbbf3b35388f910154372fdd896735430 Reviewed-by: Martin Smith <martin.smith@digia.com>
* qdoc: Removed dead code from qdocMartin Smith2013-04-083-17/+10
| | | | | | | | | | | | | | | | The documentation used to have "Main Classes" list for C++ classes, and qdoc kept track which classes were supposed to be listed as "main" classes. This is no longer used, so this change removes the code that marked a C++ class as a main class and tested whether a class was a main class. This dead code was seen while preparing the way for changing qdoc to output a documentation page for obsolete C++ classes and functions and obsolete QML types and functions. Task-number: QTBUG-30511 Change-Id: Iccc31b46b7c3c144038372cad4771d974f207937 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Cocoa: Properly clean window mask dataGabriel de Dietrich2013-04-082-4/+6
| | | | | | | Also, get rid of qt_mac_toCGImage and QPainter warnings. Change-Id: I9e2a0e93d74c318d99651de9222994615e082ac9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* mkspecs are installed to QT_HOST_DATA instead of QT_INSTALL_ARCHDATA.Volker Krause2013-04-081-3/+3
| | | | | | | These are the same for normal builds, but differ when cross-compiling Qt. Change-Id: I75eccc6f4b67b440a08c4aba41aabb7df686c9f9 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QSQLITE2Driver: use Q_DECLARE_PUBLIC/Q_DECLARE_PRIVATEMark Brand2013-04-082-11/+15
| | | | | | | Follow-up to 0bdc86d9ef7be8 Change-Id: I0a480b5780eb22b1c22e8a47b3a13ab1cd97b934 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Don't bypass overwritten [set]data() methods in the proxy.Volker Krause2013-04-081-4/+2
| | | | | | | | | By calling itemData() of the source model directly, the result cannot contain data provided by the proxy model itself. The base class implementation however will call data() on the proxy instead. Change-Id: Ib0ef5f5621457adbfa4bd896a756dfcb98d0ae54 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* ANGLE: Avoid memory copies on buffers when data is nullAndrew Knight2013-04-083-7/+90
| | | | | | | | With data=0, ANGLE can crash when setting the buffer data. As this should be a legal operation, don't perform a memcpy when data is null. Change-Id: I3fa1260482549b1da50d7a68001a65decb98f258 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* ANGLE DX11: Prevent assert when view is minimized or size goes to 0x0Andrew Knight2013-04-083-1/+69
| | | | | | | | | | | | | This allows the Direct3D 11 version of ANGLE to gracefully allow surfaces with dimensions of 0. This is important because Qt may resize the surface to 0x0 because of window minimization or other user action (window resize). As EGL specifies that empty (0x0) surfaces are valid, this makes sure an assert doesn't occur in the case that a valid surface is resized to an empty one. Change-Id: Ia60c4c694090d03c1da7f43c56e90b925c8eab6d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Upgrade ANGLE to DX11 ProtoAndrew Knight2013-04-08259-16614/+27726
| | | | | | | | | | | | | | | Upgrades ANGLE to dx11proto (dx11-MRT-support tag), which splits out support for DirectX9 & DirectX11. The DX9 codepath is used by default; CONFIG+=angle_d3d11 must be passed to the ANGLE project to build for DX11. Existing patches to ANGLE have been updated (or removed if no longer needed), and a patch has been added to make DX9/DX11 codepaths mutually exclusive. Change-Id: Ibe13befadb94f04883eca449d0ee1f0da955ff92 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Axel Waggershauser <awagger@gmail.com>
* Make QTextCursor accessibility boundary finder availableFrederik Gladhorn2013-04-0811-138/+137
| | | | | | | | | This allows re-using the function in QtQuick. In addition TextBoundaryType is moved to QAccessible and QAccessible2 as namespace ceases to exist. Change-Id: I184bc2c181a22ca51ac4db4e5a080dc26d4acfe0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* QWizard/Win: Support RTL layout in Aero styleAhmed Saidi2013-04-082-3/+25
| | | | | | | | Task-number: QTBUG-30462 Change-Id: Ie6b3ba4975542a9d92611eb9a8547215e41d3c2c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Ahmed Saidi <justroftest@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Mac: a dialog should have a titlebar by defaultShawn Rutledge2013-04-081-2/+5
| | | | | | | | Change 595deca5 for QTBUG-22316 resulted in having titlebars only on modal dialogs. Change-Id: Ic23c957e0e95cf567d90831e105cc402465df982 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix MSVC warning about truncation from 64bit to 32bit int.Friedemann Kleint2013-04-061-1/+1
| | | | | Change-Id: Id3e2f148aa430045d32d61b61eabc3f7197cbbf0 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* QGtkStyle: Try to get the theme name from GtkSettingsDmitry Shachnev2013-04-051-32/+6
| | | | | | | | Note that GtkSettings is already used for retrieving the icon theme name. Change-Id: I935d903c703f7d832b0350d3cfd3a638f22d1391 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Android: Implement debugging without relying on shell run-ashjk2013-04-051-15/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This uses explicit handshakes between the application and the gdbserver start and the host side by using the gdbserver socket and two files ("ping" file in the application dir, "pong" file in /data/local/tmp/qt) The sequence is as follows: host: adb forward debugsocket :5039 host: adb shell rm pong file host: adb shell am start host: loop until ping file appears app start up: launch gdbserver --multi +debug-socket app start up: loop until debug socket appear gdbserver: normal start up including opening debug-socket, not yet attached to any process app start up: touch ping file app start up: loop until pong file appears host: start gdb host: gdb: set up binary, breakpoints, path etc host: gdb: target extended-remote :5039 gdbserver: accepts connection from gdb host: gdb: attach <application-pid> gdbserver: attaches to the application and stops it app start up: stopped now (it is still waiting for the pong anyway) host: gdb: continue gdbserver: resumes application app start up: resumed (still waiting for the pong) host: write pong file app start up: java code continues now, the process is already fully under control of gdbserver. Breakpoints are set etc, we are before main. app start up: native code launches Change-Id: Iaa28b8664dbebc39022d1be7ff5533c52ce39715 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Update java part for Ministro 9.xBogDan Vatra2013-04-057-36/+63
| | | | | | | Add default source and repository. Change-Id: Idfa7936e8a2879fad9944702c2aa5c6d4638185a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: use Fusion style by defaultPaul Olav Tvete2013-04-051-2/+3
| | | | | | | | | | | The Android style is not fully implemented yet, so prefer the Fusion style by default. Task-number: QTBUG-29565 Change-Id: Ida413e6b34a41b618b8e2206688922195ffcc519 Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: set logicalDpi based on DisplayMetrics.scaledDensityPaul Olav Tvete2013-04-058-9/+38
| | | | | | | | | | | | | | The mathematically correct way would be to set logicalDPi to 160*scaledDensity, but then a 12 pt font would be gigantic. On iOS, we use a factor of 72 to be compatible with the native APIs, but that means that a 12 pt font is very small. A factor of 100 means that desktop apps look reasonable by default. Task-number: QTBUG-29674 Change-Id: I607f110150fb95685a6980b92f6f92f2b489f959 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Don't call virtual methods after the source model is destroyed.Stephen Kelly2013-04-052-1/+3
| | | | | | | | | | | | | Calling clear_mapping causes the persistent indexes to be queried, and mapped using map_to_source, so that they can be restored later. That is not the appropriate response to the source model being deleted because there won't be anything to restore. Simply clear the stored mapping information instead so that the source model actually exists when mapToSource is called by the framework. Change-Id: I99692ee7aa9c6714aec45c68fe4a2d62be189d60 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* EglFS: allow the hook to override logicalDpi()Paul Olav Tvete2013-04-054-0/+18
| | | | | | | | Task-number: QTBUG-29674 Change-Id: Id88a8735ceb7f5bcb63344b3b0653486a6caa70d Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Windows: Ignore mouse events generated by Windows.Friedemann Kleint2013-04-051-1/+5
| | | | | | | | Task-number: QTBUG-29946 Change-Id: Idef0e7cc8bc407377e60e4a9d67c3ba78b347b76 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Mark widget framestrut as dirty when window flags change.Friedemann Kleint2013-04-051-0/+3
| | | | | | | | | | | | | When undocking a dock using the undock button on a main window with native children, the dock widget goes to 0,0 (content position) causing the window frame to be off-screen since the frame is still 0,0. This change causes the frame to be recalculated such that the frame position is 0,0. Task-number: QTBUG-28872 Change-Id: I32896107cd7b982811f45de43dbad82e7407ea7a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Test that the CMake files create appropriate version variables.Stephen Kelly2013-04-051-1/+28
| | | | | | | Change-Id: I1d8061302fbb8494b5ae31e20a644745fe969f10 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QGtkStyle: remove obsolete themeName != "Qt" checksDmitry Shachnev2013-04-051-12/+0
| | | | | Change-Id: Ibb6d952f6abc398ac5deb94d3bdfd8560777aa44 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Windows: Do not use native dialogs for non-modal dialogs.Friedemann Kleint2013-04-051-4/+2
| | | | | | | | | | | | Windows file dialogs are always modal (inheriting IModalWindow). As the QtQuick dialog plugin has a widget-based fallback now, there is no need to use native dialogs for the non-modal case. Task-number: QTBUG-30513 Change-Id: I8b62af86fde34e8c0cf5e917d2e62260e16c82fb Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* The default behavior should be double buffered, not singlebufferedGunnar Sletta2013-04-051-3/+2
| | | | | | | | | Without this, it is not possible to do vsync drawing on NVidia GeForce 210 on Windows 7. Change-Id: I6064826eaa55266344393f50cdf5d17113350255 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* QSaveFile: allow saving to a writable file in a non-writable directoryDavid Faure2013-04-053-17/+90
| | | | | | | | | | The only way to make this possible is to disable the atomic-rename-from-temp-file behavior. This is not done by default, but only if the application allows this to happen. https://bugs.kde.org/show_bug.cgi?id=312415 Change-Id: I71ce54ae1f7f50ab5e8379f04c0ede74ebe3136d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix incorrect classification of glTexImage3D.Sean Harmer2013-04-0522-80/+122
| | | | | | | | | See https://www.khronos.org/bugzilla/show_bug.cgi?id=449 for upstream bug in gl.spec which incorrectly marks glTexImage3D as deprecated. Change-Id: Ib307a5315dd37b8b18389df54b1c93e6a43c61dd Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* iOS: Fix build on case sensitive file systemsTor Arne Vestbø2013-04-041-1/+1
| | | | | Change-Id: I920e7320e429006aef9433db3e942dc257dc72eb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* QTDSDriver: fix index out of rangeMark Brand2013-04-041-1/+1
| | | | | | | | Follow-up to 5544208e2. Change-Id: Iba3ff291622533e8050ddc0494e4488233727ebe Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSqlDriver: use Q_DECLARE_PUBLIC/Q_DECLARE_PRIVATEMark Brand2013-04-0415-106/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | 406c8ef6e67da introduced deriving the private SQL driver classes from QSqlDriverPrivate. However, the drivers continued to keep their own pointer to the private class, even though QObject provides the same pointer. Worse yet, the private class is allocated too late and not even passed to QSqlDriver. The result is that QSqlDriver allocates a separate instance of QSqlDriverPrivate. This is likely to cause all kinds of chaos. The private class needs to be allocated in time pass it to QSqlDriver which passes it on to QObject. This commit covers the the base class and drivers: ibase mysql odbc psql sqlite tds Fixes for the remaining drivers will follow. Change-Id: Id8e7ec4205b0ca6cd00bd022c9cd24f137089245 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* QSqlDriverPrivate clean-upMark Brand2013-04-041-15/+10
| | | | | Change-Id: Ia6cbb37330bc0beed7498e43cd18bb2a1afb8e3d Reviewed-by: Andy Shaw <andy.shaw@digia.com>