summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Sergio Ahumada2013-07-2441-124/+266
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-07-2341-124/+266
| |\ | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp Change-Id: I18a9d83fc14f4a9afdb1e40523ec51e3fa1d7754
| | * document that validity of exitCode() depends on exitStatus() == NormalExitOswald Buddenhagen2013-07-221-3/+7
| | | | | | | | | | | | | | | Change-Id: Ied16681f08c59de16ac365b9ae76c2eacf6bc29c Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| | * xcb: Don't use Xlib's XBell() functionUli Schlachter2013-07-221-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | XBell() just sends a Bell request to the X11 server. This can be done equally well (and with less ifdefs) through xcb's xcb_bell(). Change-Id: If41d955aa97acfe9e0a8b9fce05c11ebc146ce8e Signed-off-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * Prevent activation of windows with Qt::WindowDoesNotAcceptFocus.Friedemann Kleint2013-07-222-1/+6
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-32385 Change-Id: I307e2a3e5157b351663940d5d02fc16b3127b5dd Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * Ensure that the user codecs are listed in QTextCodec::availableCodecsThiago Macieira2013-07-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Codecs registered by creating new QTextCodec instances should be listed there. Task-number: QTBUG-32500 Change-Id: I56c00e0d6bbfef55a6cbd571bcf9aa2cf333ef3a Reviewed-by: David Faure <david.faure@kdab.com>
| | * Fix compilation of QtTest on Linux systems with old kernel headersThiago Macieira2013-07-211-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardcode our perf_event_open(2) function to simply return -1 and set errno to ENOSYS. This will disable the functionality. People compiling Qt with such old headers will probably carry quite a bit of dead code in QtTest. They should upgrade. Task-number: QTBUG-32507 Change-Id: I774b4a81bee5c3e2ddc75fa52520d123a6bebed9 Reviewed-by: Jason McDonald <macadder1@gmail.com>
| | * Changed digia contact details to */legal, updated licensesTeemu Kaukoranta2013-07-2010-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | Scripts are available in internal mkdist repo. Added license tags, updated licenses and copyrights/contacts Change-Id: Ibc734275f3000987eaa4f5c57f19d4e1fda2c479 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
| | * Fix warning about using QString's const char* constructor on MacThiago Macieira2013-07-201-1/+2
| | | | | | | | | | | | | | | Change-Id: I20ca50fdcdcfb075ad317247f147e4eb007a0c44 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| | * Ignore or suppress warning and debug messages in tst_QLocalSocketThiago Macieira2013-07-203-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The one in tst_QLocalSocket::writeToClientAndDisconnect just needed proper ordering: that's what waitForDisconnect is for. At the same time, we need to make sure we get the same message from all three implementations of QLocalSocket::waitForDisconnect (and without the useless space at the end). Change-Id: I21364263cf908df022df814a6a39fcb5783e84e6 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
| | * Fix incomplete override of QIODevice::open in QProcess and QLocalSocketThiago Macieira2013-07-206-55/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rule for a new override is that it must still work if the old implementation is called. The catch is that any class that derives from QProcess and isn't recompiled will still have QIODevice::open in its virtual table. That is equivalent to overriding open() and calling QIODevice::open() (like the tests). In Qt 5.0, QProcess::start() called QIODevice::open directly, not the virtual open(), so there's no expectation that a user-overridden open() be called. With that in mind, simply fix QProcess::start to not call the virtual open at all. Similarly with QLocalSocket, the calls to open were always non-virtual. Task-number: QTBUG-32284 Change-Id: I88925f0ba08bc23c849658b54582744997e69a4c Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| | * Fix compilation of run-time-resolved SSL on AndroidEskil Abrahamsen Blomfeldt2013-07-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need the same code for both the no-sdk and the sdk case for the OpenSSL code, since this is not covered by a system library, but by an external dependency in both cases. Task-number: QTBUG-32130 Change-Id: I976835556fcb0e6c32cfb3da4dd585e45490061b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * fix endless loop in QProcess/Win drainOutputPipesJoerg Bornemann2013-07-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 568f82fba397e06a26b4fd40f074e4432d02d248 was incomplete. If drainOutputPipes detected some readyRead it wouldn't end the loop. Task-number: QTBUG-32354 Change-Id: I4e594f1e148abe9ef36c047a55eee1b22fd5064b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| | * XCB: Set WM_CLASS.Friedemann Kleint2013-07-185-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set the instance name and class name of the application windows. Task-number: QTBUG-29396 Change-Id: Ia1fb492ab169108c3779deb8964bb731b322dd89 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * Better errorhandling for the fontengine on WINCE.Bjoern Breitmeyer2013-07-181-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CE fontengine only supports translations, scaled Text would only work if its an isometric scale and would require to create a new font from the old one. Rotations and more aren't supported at all. The freetype fontengine for CE supports this, so we give a warning that the font might be rendered incorrect, but could render correct with the freetype engine. Task-number: QTBUG-32189 Change-Id: I3581c3fef8e4ee118c0038a6ccc237e66b583731 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * QNX: Handle Qt::WindowDoesNotAcceptFocus correctly.Friedemann Kleint2013-07-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Discovered while working on: Task-number: QTBUG-32385 Change-Id: Id1ff31ea6a367983676125810b4f49629233d374 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
| | * Fix typo in qdoc's messages.Takumi Asaki2013-07-171-2/+2
| | | | | | | | | | | | | | | | | | Change-Id: I837eaef4fb114c20a75ffc188b49aa612f07f507 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
| | * OSX: Disable window restoration for the Mac font panelLiang Qi2013-07-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | because if it is automatically restored it's out of the application's control, so the user's interaction will be ignored. Change I8ce3cd94f5ae81d7877a346743ca4e0e188baa02 did this for normal windows by default, but the dialog helpers generate windows which aren't affected by that. Change-Id: I819d7ab4e51e90783d55cee0676dbc33b38c5b00 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * Make *ItemBoundingRect modes work with custom shapes.Mitch Curtis2013-07-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, calling QGraphicsScene::items(QPointF(0, 0), Qt::IntersectsItemBoundingRect) or QGraphicsScene::items(QPointF(0, 0), Qt::ContainsItemBoundingRect) will exclude items whose shape does not contain QPointF(0, 0). This is because QGraphicsSceneIndexPointIntersector::intersect() also checks if the point is contained within the shape, instead of just checking if it is contained within the bounding rect. Task-number: QTBUG-19036 Change-Id: Ie701af2a5694d40cf9b3c9c19adbb09a53a4e398 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
| | * Fix QDBusAbstractInterface::isValid() for peer connectionsAlberto Mardegan2013-07-161-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not attempt to lookup the service owner on peer connections (it will fail). Make QDBusAbstractInterface::isValid() return a sensible result on peer connections, instead of always returning false. Task-number: QTBUG-32374 Change-Id: I1b02feaffb3b255188f8d63306f89f5034a32f22 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Detect popup window correctly in modal window blocked handling.Friedemann Kleint2013-07-161-2/+7
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-32433 Change-Id: Ida8f6237a383311bc2e231de90fd54b90ebd1508 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * Fix compilation of QLockFile on SolarisDavid Faure2013-07-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | flock isn't available but we use fcnlt already (which is the recommended alternative on Solaris) Change-Id: I718e59c4804950a26eeb610888e17ce666522dcc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QGuiApplicationPrivate::updateBlockedStatus(): Recurse over children.Friedemann Kleint2013-07-161-7/+14
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-32242 Change-Id: Ia43257a998507b9a367f41dc2395ab92cc89a118 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * Doc: Update description of QAbstractItemModel::supportedDragActions()Topi Reinio2013-07-161-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update documentation for the QAbstractItemModel::supportedDragActions() (virtual since 5.0) and the obsoleted setter function. Task-number: QTBUG-32410 Change-Id: I4f77601bca63e5f782ade1f577104500f541bbb1 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
| | * Mac OS: Fix a crash in tst_qgraphicsproxywidget.Friedemann Kleint2013-07-161-0/+3
| | | | | | | | | | | | | | | Change-Id: Ie93d77f00ee1e6a04ac20794e4d2d1e63cbdb636 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
| | * Define QT_NO_DEBUG with RelWithDebInfo and MinSizeRel builds.Stephen Kelly2013-07-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-32403 Change-Id: I709ca32ca5bc1a342593357735ef3911ef849eb9 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
| | * Windows: Synthesize expose event for shrinking windows.Friedemann Kleint2013-07-152-13/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synthesize expose events for all Windows except ANGLE-windows. Task-number: QTBUG-32121 Change-Id: Ifbff2730ec8f2e8cfe23eeb4022b76a6e432598e Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | | Add the RFC2822Date formatKevin Ottens2013-07-243-1/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDateTime can now be converted to strings compliant to RFC 2822. Additionally, it supports RFC 850 and RFC 1036 during parsing. By having them all together, all type of dates found in exchanged messages on the internet (including USENET) get supported. Change-Id: I771066c23f409d20b31b7d802f37852ea68ca2a0 Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | | BlackBerry: Rearmed socket notifiers after selectBernd Weimer2013-07-241-4/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Socket notifiers that are registered with BPS are disabled by a call to select. This solves the echoTest2 test case of QProcess. Change-Id: Ic7f3f14433477b89eaad5ffbeb6c22a1b5c2e910 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | | Support RGBA image formatAllan Sandfeld Jensen2013-07-2313-99/+1295
| | | | | | | | | | | | | | | | | | | | | | | | | | | Support the byte-ordered RGBA format which is used by OpenGL, and many endian neutral byte formats. Task-number: QTBUG-32201 Change-Id: I77cffb4c30c69545fa96ded2f537b2ebd9351acb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | | Bump QPA-API-version.Friedemann Kleint2013-07-2315-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes f5dbc876378ae58a7bdfe1e9664fc81caca18dfb (Use QUrl in QFileDialog API) and c96a6ab627100452864eb4d8da973300401c1bfa (Pass argc, argv to platform plugin) introduced changes to the plugin API. Task-number: QTBUG-29396 Change-Id: I46ee22d16f045b69f141dc6c982017586efef662 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: David Faure (KDE) <faure@kde.org>
* | | qdoc: Improve format of obsolete members fileMartin Smith2013-07-231-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The link to the class reference page for the class that contains the obsolete members is now embedded in the text description of what the page contains. This change affects both the obsolete members papge and the compatibility members page. Without this change, the link to the class reference page stands off on its own and makes it look like the class itself is obsolete or maintained for compatibility with previous versions. Since this is not the case, the link is now embedded in the text description of the page. Task-number: QTBUG-31379 Change-Id: Ic5f4554c8722ee193f2dfae9efd8adab98f32ca1 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | | doc: Ensure page name does not changeMartin Smith2013-07-236-79/+50
|/ / | | | | | | | | | | | | | | | | | | | | | | This fix ensures that the page name is set only once. Also included are a few internal documentation changes that bring qdoc's internal terminology up to date. Task-number: QTBUG-31578 Change-Id: Ib52a5a9024533d5a695cee0055bf2bc4d9bc2af9 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Move the declaration of QFileIconProviderPrivate to it's own file.Sérgio Martins2013-07-223-31/+89
| | | | | | | | | | | | | | | | | | | | | | | | Needed to backport qtbase/46685f755b01288fd53c4483cb97a22c426a57f0 to Qt4. We can't add new symbols in Qt4 to QFileIconProvider so we will make the private class a friend of the QFileDialog. Change-Id: I6bc5a2d127b09f20633e733a79de509c8c186c6c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* | xcb: touchpad supportShawn Rutledge2013-07-223-30/+110
| | | | | | | | | | | | | | | | | | | | | | | | Relative touch devices tend to provide a moving point for one finger, then when more points are pressed, the root_x/root_y stay stationary while the Rel X/Y valuators provide info about the movements around that point. Synthesize moving touch points from those so that gestures become possible. Behavior is now similar to that on OS X. Change-Id: I1c65fb04849d19f11c3bf166044f296d95c33da1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | added maximumTouchPoints to QTouchDeviceShawn Rutledge2013-07-224-3/+27
| | | | | | | | | | | | | | This was missing information which the driver can provide. Change-Id: I2574745635d6fdf608bc5617999aec46d9312c09 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Prevent QLineEdit from emitting edited signal (QTBUG-27347)Ivan Komissarov2013-07-211-2/+2
| | | | | | | | | | | | | | | | edited() signal should not be emitted when QValidator fixups text in a lineedit. Change-Id: Iccef45c4b858a65fd5097dc9e5033cefb09ad889 Reviewed-by: David Faure <david.faure@kdab.com>
* | TestLib: align the colons so the "actual" and "expected" align tooThiago Macieira2013-07-211-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: FAIL! tst_testcase::testcase: Compared values are not the same Actual (actual): F0O Expected (expected): FOO Now: FAIL! tst_testcase::testcase: Compared values are not the same Actual (actual) : F0O Expected (expected): FOO Change-Id: I6f0768e4ef53e065b85a56879cecbad06fa34aef Reviewed-by: Jason McDonald <macadder1@gmail.com>
* | QUrl: let StripTrailingSlash remove multiple trailing slashesDavid Faure2013-07-201-2/+4
| | | | | | | | | | Change-Id: Ic4c8f70bb729630d9110ed6766dd9e40f9ab4d80 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QUrl: add fileName() method. Complements QUrl::RemoveFilename.David Faure2013-07-203-0/+37
| | | | | | | | | | Change-Id: Ieda43364214c3b7aee43040e176e29ad48c14271 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Make QUrl store the first bad IPv6 character in the error stringThiago Macieira2013-07-201-11/+22
| | | | | | | | | | Change-Id: I9a0a521ff5c3188ba6f862e2b91369cb61787359 Reviewed-by: David Faure (KDE) <faure@kde.org>
* | Make QIPAddress::parseIp6 return the first bad characterThiago Macieira2013-07-204-27/+40
| | | | | | | | | | | | | | In case of undetermined error, returns end. Change-Id: Ic5d16bab5fc56ad24f19da25f73f9b844ce11d3f Reviewed-by: David Faure (KDE) <faure@kde.org>
* | QUrl: Make sure we don't return a dangling pointer from parseIpFutureThiago Macieira2013-07-201-2/+3
| | | | | | | | | | Change-Id: I54bf8d0fe72b8db8d158899ee4525c8d067272b8 Reviewed-by: David Faure (KDE) <faure@kde.org>
* | QUrl: Uppercase the version number in IPvFutureThiago Macieira2013-07-201-0/+4
| | | | | | | | | | | | | | | | | | We don't know what it might be used for. The RFC for URI says it's an HEXDIG, and since we uppercase all other HEXDIGs already (in percent-encodings...). Change-Id: I56d0a81315576dd98eaa2657c0307d79332543a5 Reviewed-by: David Faure (KDE) <faure@kde.org>
* | Make the URL Recode function to fix bad input in FullyDecoded mode tooThiago Macieira2013-07-201-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | So far, this function hasn't been used for input coming in from the user, so it wasn't necessary. But we may want to do it, or we may already be doing it accidentally somewhere that isn't triggering the failed assertions during unit testing. So let's be on the safe side and allow it. And test it too. Change-Id: Ib63addd8da468ad6908278d07a4829f1bdc26a07 Reviewed-by: David Faure (KDE) <faure@kde.org>
* | Fix IPvFuture use in QUrlThiago Macieira2013-07-201-5/+6
| | | | | | | | | | | | | | | | | | We have no idea what it might contain, but test it anyway to make sure it works. Turns out there were a few bugs the unit tests have now caught. Change-Id: I0a6c868365feec31c2360b3c341c8ca6944f4352 Reviewed-by: David Faure (KDE) <faure@kde.org>
* | Fix QUrl parsing of IPv6 hosts with encoded colonsThiago Macieira2013-07-201-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Registered names and IP addresses can only contain unreserved characters (letters, digits, dots, hyphens, underscores) and the colon, which is a gen-delim. For registered names and IPv4 addresses, we can simply use the default config -- if anything that remains percent-encoded, it means it's not a valid hostname anyway. For IPv6, we just need to decode the colon. Change-Id: If8083d47f6e5375f760e7a6c59631c89e4da8378 Reviewed-by: David Faure (KDE) <faure@kde.org>
* | QUrl: Add an "appendingTo" parameter to QUrl::appendFragmentThiago Macieira2013-07-201-4/+4
| | | | | | | | | | | | | | | | Will be needed in a future commit. Change-Id: Ia5f384442d25d277e7582a20d1c37da4303c64c3 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Make the Mach-O size checking a little more robustThiago Macieira2013-07-201-20/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not necessary to check at every point if we know the minimum file size: it must contain at least the header, one segment (__TEXT) and one section (qtmetadata). Most files have more than one segment and more than one loader command, so this check does not mean we can eliminate the checks further down. Also be more resilient against corruptions in the header data: check not only the additions, but the values themselves. For example, an offset + size addition could be smaller than the file size when the addition overflows in 32-bit. Another thing is that the cmdsize fields could be corrupt too. Change-Id: I7968a769c1cbe9150270c91823cafc4f8f833876 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Simplify the QLibrary plugin-detection codeThiago Macieira2013-07-201-104/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reason why the scanning of files was restricted to Unix is lost in history. My guess is that it was added *because* on Unix you couldn't do the LoadLibrary trick to load without dependencies. That is, it makes no comparison to whether scanning is faster than LoadLibrary. So assume that scanning is faster, especially now that we have memory mapping in QFile (it wasn't there in Qt 4.0). This simplifies greatly the codebase because we no longer need to try to load and later unload the library to check whether it is a Qt plugin or not, nor deal with Windows non-C++ exceptions. Just scan on all platforms. Change-Id: If269e009bfb9920805ca1aa6c2b66aacdd5b26e9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>