profile/ivi/qtdeclarative.git
12 years agoUpdate copyright year in license headers.
Jason McDonald [Thu, 5 Jan 2012 04:29:18 +0000 (14:29 +1000)]
Update copyright year in license headers.

Change-Id: I0a8d99909cac867dce72da70b1bbcb649989a51b
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoDocument new Path elements.
Michael Brasser [Wed, 4 Jan 2012 23:58:47 +0000 (09:58 +1000)]
Document new Path elements.

Change-Id: Ic1e2aa7da63a7d9e12357a609fc52b3913f14f28
Reviewed-by: Bea Lam <bea.lam@nokia.com>
12 years agoDocument qmlRegisterRevision()
Martin Jones [Thu, 5 Jan 2012 05:03:50 +0000 (15:03 +1000)]
Document qmlRegisterRevision()

Task-number: QTBUG-22688

Change-Id: I8a6610951dc8320d9872e971ac2d1d86508b8faf
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoSupport <pre> in StyleText textFormat
Martin Jones [Wed, 21 Dec 2011 00:19:03 +0000 (10:19 +1000)]
Support <pre> in StyleText textFormat

Task-number: QTBUG-23159

Change-Id: I842d066efb3a78defba61cc31060840f771f9b11
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoDocument inputMethodHints and cursorRectangle properties.
Andrew den Exter [Thu, 5 Jan 2012 02:48:53 +0000 (12:48 +1000)]
Document inputMethodHints and cursorRectangle properties.

Task-number: QTBUG-22612
Task-number: QTBUG-20764
Change-Id: Ibab86c5934f0ad6e3115a00371a5b2a6961720b5
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoMake tst_QQuickListView::margins() more reliable
Bea Lam [Wed, 4 Jan 2012 23:36:31 +0000 (09:36 +1000)]
Make tst_QQuickListView::margins() more reliable

Change-Id: Ib66f5717316b4c8d71dbef408afbbb9b0698ad7a
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoEliminated usage of qttest_p4.prf in newly added test.
Sergio Ahumada [Wed, 4 Jan 2012 21:07:49 +0000 (22:07 +0100)]
Eliminated usage of qttest_p4.prf in newly added test.

Change-Id: I8f531276e1d769be116fea155c4c68cd698b8fec
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoFix clipping of TextInput contents.
Andrew den Exter [Wed, 4 Jan 2012 06:12:17 +0000 (16:12 +1000)]
Fix clipping of TextInput contents.

The boundingRect represents the clip rectangle of an item rather than
the size and position of its unclipped content.  This would prevent any
content from being clipped except the boundingRect is only re-evaluated
when the size of the item changes so the content is instead clipped to
the size of the original content.

Task-number: QTBUG-23422
Change-Id: I96f830f833129b3230f65452db67b00028c40d6a
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoUse QSignalSpy to save some code
Gunnar Sletta [Wed, 4 Jan 2012 13:50:52 +0000 (14:50 +0100)]
Use QSignalSpy to save some code

Change-Id: If4a9b68c39facdca34482bbf3dc22ae607b294e8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
12 years agoFix moving mixed visible and non-visible View items.
Andrew den Exter [Wed, 4 Jan 2012 07:55:26 +0000 (17:55 +1000)]
Fix moving mixed visible and non-visible View items.

A removal for a move that included both cached and non-cached was
only evaluating the first part of the removal and skipping the
remainder.

Don't skip all subsequent removals when two ranges are merged, instead
reset the current indexes to the start of the merged range and continue
on as normal.

Task-number: QTBUG-23432
Change-Id: Ieda49e2f68cd0bbbd31ba1e7dfd5af7c3e350d78
Reviewed-by: Bea Lam <bea.lam@nokia.com>
12 years agoExamples: Remove commented out 'plugins' list from .qmlproject files
Kai Koehne [Mon, 2 Jan 2012 14:53:14 +0000 (15:53 +0100)]
Examples: Remove commented out 'plugins' list from .qmlproject files

Change-Id: I24bacdd52f2f191dde8e0a2fa9718b38ab329597
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoAdd length property and insert, remove and getText functions to TextInput.
Andrew den Exter [Wed, 4 Jan 2012 00:53:26 +0000 (10:53 +1000)]
Add length property and insert, remove and getText functions to TextInput.

These mimic the functionality of their pre-existing counterparts in
TextEdit.

Change-Id: Idcb7549cd07ed3c287ab00b7828a3158690faf0e
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix crash in TextInput.
Andrew den Exter [Fri, 23 Dec 2011 06:04:44 +0000 (16:04 +1000)]
Fix crash in TextInput.

Ensure the text is laid out before calling componentComplete() on
QImplicitSizeItem, as that can potentially evaluate bindings which
would then access the uninitialized layout.

Change-Id: I5152c1494c54209dae61c13b2f45d343fb76bf9e
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoInitialize AnimIdx
Alan Alpert [Tue, 3 Jan 2012 02:06:33 +0000 (12:06 +1000)]
Initialize AnimIdx

Otherwise any attempted reads later will get a stale value from a
previous particle (only happens with custom affectors though)

Change-Id: Iab3c7736d5c01218174ef8b331057df57b591209
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoSpeed up TextInput and TextEdit creation.
Andrew den Exter [Tue, 3 Jan 2012 00:37:26 +0000 (10:37 +1000)]
Speed up TextInput and TextEdit creation.

Update the canPaste property directly when changing the read-only
property instead of connecting to the readOnlyChanged signal.

Change-Id: Ic6f6ba66f6b94448045703f7d2a66218548190dd
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoAdded a link to Number::toLocaleCurrencyString in the doc.
Denis Dzyubenko [Tue, 3 Jan 2012 12:57:16 +0000 (13:57 +0100)]
Added a link to Number::toLocaleCurrencyString in the doc.

Change-Id: If44cc225d132bd309efdb250aad74f8e11062e8f
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoIntroduce layerering support (ShaderEffectSource) directly in Item
Gunnar Sletta [Mon, 19 Dec 2011 23:50:15 +0000 (00:50 +0100)]
Introduce layerering support (ShaderEffectSource) directly in Item

This is enabled by doing "Item.layer.enabled: true". The implementation
is solely based on the existing shader effect (source) and simply
swaps in a sibling next to the item when enabled.

This change also adds the QSGTextureProvider to the public API,
as it is now a natural part of the QQuickItem API since all items
can be textures.

Change-Id: I26705c11e92d5623a5121300acc123782b784077
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
12 years agoCombined platform input contexts in tests into one shared
Pekka Vuorela [Tue, 3 Jan 2012 15:57:14 +0000 (17:57 +0200)]
Combined platform input contexts in tests into one shared

Change-Id: Ie56f5f8ca5617db6be92d256d455cae585cd6a71
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoUse Qt::ImhSensitiveData input hint on TextInput with password echo mode
Pekka Vuorela [Mon, 2 Jan 2012 14:40:12 +0000 (16:40 +0200)]
Use Qt::ImhSensitiveData input hint on TextInput with password echo mode

Change-Id: I1e9255af24b51ca42c1e6df7a92664be532ce725
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoRemove use of Qt::ImhMultiLine, to be deprecated/removed
Pekka Vuorela [Mon, 2 Jan 2012 14:11:03 +0000 (16:11 +0200)]
Remove use of Qt::ImhMultiLine, to be deprecated/removed

Change-Id: I02a1611c945bf3804081bb9d0cd8da470a5774d8
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoDo not leak interfaces during hit testing (QDA::childAt())
Jan-Arve Saether [Tue, 3 Jan 2012 12:15:18 +0000 (13:15 +0100)]
Do not leak interfaces during hit testing (QDA::childAt())

Change-Id: Iebbc1cbbdce57bff6423fa417eac8dbdfe35e510
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
12 years agoDon't set the role to Accessible.Button
Jan-Arve Saether [Tue, 3 Jan 2012 08:32:47 +0000 (09:32 +0100)]
Don't set the role to Accessible.Button

If an item intend to expose its children, it should not set its role
to Button

Change-Id: I6b56d1354ce06f65513688ef38c507bd2881ce82
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
12 years agoExamples: Hard-code the 'main' file in .qmlproject
Kai Koehne [Mon, 2 Jan 2012 14:20:24 +0000 (15:20 +0100)]
Examples: Hard-code the 'main' file in .qmlproject

Set the 'mainFile:' property in .qmlproject files where it makes sense (i.e.
there's one natural candidate). This makes sure Qt Creator doesn't fall back
to 'current file in editor' as main file, which is unexpected to a lot of people.

(This requires Qt Creator version 2.2 and newer).

Change-Id: Ia5d20b0d982038520d7892bca155267c5f13644b
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix positioning of images on new lines in Text elements.
Andrew den Exter [Tue, 3 Jan 2012 03:51:56 +0000 (13:51 +1000)]
Fix positioning of images on new lines in Text elements.

If an image in a text node is at the start of a line include the
relative position of the line when positioning it.

Task-number: QTBUG-23410
Change-Id: Ic9927bf86386374a23acfc6b4478a26f86d43ec6
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix test failures with shadow builds.
Andrew den Exter [Thu, 22 Dec 2011 01:30:03 +0000 (11:30 +1000)]
Fix test failures with shadow builds.

QFINDTESTDATA uses __FILE__ to determine the source directory, which
means it finds the wrong source directory when the macro is used from
a shared base class.  Define the correct source directory in a pri
file and include that wherever QDeclarativeDataTest is used.

Change-Id: If3ef435f4bb3049733f49402338303c8b440f1fa
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoSimplify MultiPointTouchArea signal names.
Michael Brasser [Fri, 30 Dec 2011 06:39:17 +0000 (16:39 +1000)]
Simplify MultiPointTouchArea signal names.

Change-Id: I0617bf7138b76495c111739e2cbdf3b77c4b6a5d
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoDon't re-parent ShaderEffect source items.
Kim Motoyoshi Kalland [Tue, 13 Dec 2011 14:25:18 +0000 (15:25 +0100)]
Don't re-parent ShaderEffect source items.

ShaderEffect and ShaderEffectSource used to set themselves as
parent of and hide source items that don't already have a parent.
This was done in order to make sure the source items got a canvas.
This patch sets the canvas of the source items without re-parenting.

Task-number: QTBUG-23069
Change-Id: I24d56e6eb970590bca3adff7a61459d25e4983a0
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoAdd accessibility to qml
Frederik Gladhorn [Wed, 7 Dec 2011 06:48:22 +0000 (07:48 +0100)]
Add accessibility to qml

This consists of two parts:
An attached property for QML items and a plugin for the accessibility framework.

The attached property simply takes care of some properties (name, role)
that are needed in order to expose semantics of the application to
assistive tools.

The plugin exposes the hierarchy of QML items to the
accessibility framework.

Change-Id: I32f5603d0d9549b01b3645b205b710b9801762f7
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
12 years agotouchUpdated should be called for release and cancel.
Michael Brasser [Fri, 30 Dec 2011 03:45:40 +0000 (13:45 +1000)]
touchUpdated should be called for release and cancel.

touchUpdated should be emitted whenever the touch is updated, even if the
update means there are no longer any valid touch points.

Change-Id: Iceac5a65094784928108acc764bbc1d5c2b9a08a
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoMinor cleanup: use standard emit syntax.
Michael Brasser [Wed, 28 Dec 2011 23:27:08 +0000 (09:27 +1000)]
Minor cleanup: use standard emit syntax.

Change-Id: Ic8a86e78bc16dd091eb03ba74ffdf831eda65a7a
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoUpdate to not use old properties.
Alan Alpert [Fri, 23 Dec 2011 03:39:12 +0000 (13:39 +1000)]
Update to not use old properties.

Change-Id: I428d702613186adfc761925de23ae67677f286ba
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoHandle exceptions inside QV8QObjectConnectionList::qt_metacall
Chris Adams [Thu, 29 Dec 2011 00:32:52 +0000 (10:32 +1000)]
Handle exceptions inside QV8QObjectConnectionList::qt_metacall

Previously, exceptions were not handled in the connectionlist.
This could cause v8 to assert under certain circumstances.

Task-number: QTBUG-23375
Change-Id: Ie5f043b50bb6b02a77be464ca18ea8e3bbb0f501
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoInvisible items should not respond to touch events.
Michael Brasser [Wed, 28 Dec 2011 03:28:12 +0000 (13:28 +1000)]
Invisible items should not respond to touch events.

Task-number: QTBUG-23327
Change-Id: I959c9ba40e4ce3972fc3fde2f1c7e73615e78e2e
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoVisualDataModel performance improvements.
Andrew den Exter [Wed, 21 Dec 2011 04:23:41 +0000 (14:23 +1000)]
VisualDataModel performance improvements.

Avoid a linear scan of all cache items and associated accesses by
getting the cache item from an objects  vdm attached object instead.

Make the model context property a property of the context object instead
of a separate property on the context object.

Parent the vdm attached object to the delegate object with
QDeclarative_setParent_noEvent instead of passing it in the constructor.

Change-Id: Ib77c5cdb963f3dfe8f2bdef039e010a6bb30140f
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoInsert items into VisualDataModel.
Andrew den Exter [Thu, 22 Dec 2011 03:49:03 +0000 (13:49 +1000)]
Insert items into VisualDataModel.

Add API for inserting data directly into a VisualDataModel which
can be used among other things  to create temporary items that are
later resolved to an actual item in the source model.

Task-number: QTBUG-21516

Change-Id: I835f0e8d6c5edfb3a21029687de5b700f7400317
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoMinimize the number of objects created per item in VisualDataModel.
Andrew den Exter [Thu, 1 Dec 2011 04:01:13 +0000 (14:01 +1000)]
Minimize the number of objects created per item in VisualDataModel.

Derive from QDeclarativeContext and reference count the context object
instead of parenting it to the context.  Combined with a weak
persistent v8 handle the allows the context object to be returned by
javascript accessors instead of creating a new instance for every use.

In addition to the efficiency advantages of creating fewer objects,
routing all data access through a single object means that object can
also persist data instead of just acting as a proxy.

Change-Id: I107dc8c901f16f2a4b420ff1cbffa7a6be27de89
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoAdd currentSprite property to SpriteImage
Alan Alpert [Thu, 22 Dec 2011 00:51:23 +0000 (10:51 +1000)]
Add currentSprite property to SpriteImage

Also renames goalState to goalSprite, to help distinguish it from item
states.

Change-Id: I77e81595586e69e47a50a7a767fdb7ad775ad7be
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix crash in var property setter
Chris Adams [Fri, 23 Dec 2011 03:01:25 +0000 (13:01 +1000)]
Fix crash in var property setter

Previously, the function didn't terminate after calling the setter
recursively, as it should have.  This patch ensures that the setter
is called correctly and then returns, and adds a unit test to ensure
that no regression occurs.

Task-number: QTBUG-23330
Change-Id: If512fca174e5224c2c53caad11f77782e6cead9f
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoAdd a pressed property to TouchPoint.
Michael Brasser [Thu, 22 Dec 2011 00:53:25 +0000 (10:53 +1000)]
Add a pressed property to TouchPoint.

Remove the valid property, and replace it with pressed. The semantics
have changed slightly for a release -- pressed will immediately become
false, whereas valid remained true until the next touch event.

Also make sure touch information is correctly updated on release.

Change-Id: Ic61e1b6884c67f19100a6f8fc218b8b05b291ff0
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoReserve enough space in the QDeclarativePropertyCache hash
Aaron Kennedy [Wed, 21 Dec 2011 18:44:26 +0000 (18:44 +0000)]
Reserve enough space in the QDeclarativePropertyCache hash

It was too easy for callers of copy() to pass the wrong reserve size,
so a new copyAndAppend() method has been added to reduce error.

Change-Id: If2f13e2e0733e5d87c527934dc5a6c8d0c8df572
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoAlways register accessor properties
Aaron Kennedy [Wed, 21 Dec 2011 18:25:52 +0000 (18:25 +0000)]
Always register accessor properties

Otherwise if an Item gets created without the QtQuick module being
imported, the engine would fatal.

Change-Id: I441c7a61a60f07f2a7e3249253dea359d4ab1c35
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoInitialize more variables
Alan Alpert [Tue, 20 Dec 2011 06:35:23 +0000 (16:35 +1000)]
Initialize more variables

Change-Id: I22f98c1562887769bc0f262120bd524f6f3b64df
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoClear pending commits on reset
Alan Alpert [Tue, 20 Dec 2011 10:08:33 +0000 (20:08 +1000)]
Clear pending commits on reset

They will be caught when the nodes are rebuilt, if they're still valid.

Change-Id: Iac6e790b604a7deaba98a50dd07754459e9f5e14
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDetect and optimize qsTr() and qsTrId() bindings
Aaron Kennedy [Wed, 21 Dec 2011 16:34:36 +0000 (16:34 +0000)]
Detect and optimize qsTr() and qsTrId() bindings

As these two are frequently used with constants, we can detect them in
the compiler, and run the appropriate C++ functions directly in the VME.
This saves pointlessly creating and running bindings.

Change-Id: I148a150400c13fda7955949453405202f18b1a6b
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoQDeclarative tests: Introduce base class for data tests.
Friedemann Kleint [Wed, 21 Dec 2011 08:06:26 +0000 (09:06 +0100)]
QDeclarative tests: Introduce base class for data tests.

In tests/auto/shared/util.* replace macros/find functions by
a base class QDeclarativeDataTest with accessors for the
data directory helper functions to create URLs from it.

The class relies on QFINDTESTDATA, which is the standard
way of locating test data. Using the class should reduce
the number of calls to QFileInfo.exists(), etc significantly.

In addition, provide utility functions for messages.

Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Change-Id: Id2beacb157922ee9412f9e45cf9695cec1f8379a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agoDebugger: Allow transmissions of network packets in one go
Kai Koehne [Tue, 20 Dec 2011 15:54:50 +0000 (16:54 +0100)]
Debugger: Allow transmissions of network packets in one go

We did call a flush() after every single packet, which was slowing down
things especially for the QDeclarativeDebugTrace service.

Change-Id: Idab074941a22364e154502eb12afa43b4dd33c22
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
12 years agoReference count glyphs in QSGDistanceFieldGlyphCache.
Yoann Lopes [Thu, 15 Dec 2011 13:17:33 +0000 (14:17 +0100)]
Reference count glyphs in QSGDistanceFieldGlyphCache.

This was previously done only in the default cache implementation. It
has been moved to the base class.
releaseGlyphs() is called when a glyph is not referenced anymore by any
node.
Added a virtual function referenceGlyphs() that is called everytime glyphs
are being used in a node. This function is called just before
requestGlyphs().

Change-Id: If90f86c328c18ae2a5977847a6adf50b99ea1241
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agoAdapted QDeclarativeTextEdit test to platform input context
Pekka Vuorela [Fri, 16 Dec 2011 09:15:42 +0000 (11:15 +0200)]
Adapted QDeclarativeTextEdit test to platform input context

Also couple more tests start to pass as side-effect
Change-Id: Ie3e8bafa1d397301da3f7af57b026f52b9cf5d21
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoAdapted QDeclarativeTextInput test to platform input context
Pekka Vuorela [Thu, 15 Dec 2011 15:41:16 +0000 (17:41 +0200)]
Adapted QDeclarativeTextInput test to platform input context

Also a couple more tests starts to pass as side-effect.
Change-Id: I1723d4b5eccbe7abe2ac91ddc8318ac32c1f7e61
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoRemove uneccessary layout in TextInput initialization.
Andrew den Exter [Wed, 21 Dec 2011 07:36:13 +0000 (17:36 +1000)]
Remove uneccessary layout in TextInput initialization.

The layout was only done to ensure there was always at least one
QTextLine in the layout to avoid validity checks later, but since
lineForTextPosition can return an invalid QTextLine the checks are still
needed anyway.

Change-Id: Iae65e3460812a60e2aafecd553bf4241bd640d04
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoUpdate obsolete URL's in test data.
Jason McDonald [Wed, 21 Dec 2011 01:38:36 +0000 (11:38 +1000)]
Update obsolete URL's in test data.

Task-number: QTBUG-19653

Change-Id: I5682c9d99569a318ea8ffc7fa883cb41f51a32d6
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoDelay initializing the canPaste property until it's requested.
Andrew den Exter [Tue, 20 Dec 2011 07:21:55 +0000 (17:21 +1000)]
Delay initializing the canPaste property until it's requested.

With xcb querying data from the clipboard can take as long as 50 ms.
Deferring the check until it is requested speeds up construction time
when it's not used and only checking the available formats when it is
requested should also help.

Change-Id: I796fc83d0457d9ac1490cfb9f510c6342eb8a872
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDebugger: Fix livelock on exit (Windows)
Kai Koehne [Tue, 20 Dec 2011 12:41:50 +0000 (13:41 +0100)]
Debugger: Fix livelock on exit (Windows)

We used to close the debugger thread when the last service was killed: This happened
in the unloading of static global variables. Apparently this is too late on Windows,
since the OS thread associated was already terminated.

Instead, we now kill the instance when the QCoreApplication event loop is exiting.

Change-Id: I12a46ab9e7ac64561c94c0cd0d88b78fbaf8554c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
12 years agoqdeclarativexmlhttprequest: Stabilize, ensure deletion of server.
Friedemann Kleint [Tue, 20 Dec 2011 14:46:17 +0000 (15:46 +0100)]
qdeclarativexmlhttprequest: Stabilize, ensure deletion of server.

Introduce QScopedPointer to make sure the server is also deleted in
case the test fails thus suppressing follow-up errors caused by
the port still being in use by a leaked server.

Change-Id: I9fd8a96ea5aba42487df8f22bc9a79917b9d8c16
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agoMake editors commit preedit themselves on losing focus
Pekka Vuorela [Mon, 5 Dec 2011 15:03:18 +0000 (17:03 +0200)]
Make editors commit preedit themselves on losing focus

Change-Id: I1d42a8804068718c7347b4f652289f9724c25a3c
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoUse input event timestamps in QQuickFlickable if available.
Andras Becsi [Tue, 29 Nov 2011 14:24:27 +0000 (15:24 +0100)]
Use input event timestamps in QQuickFlickable if available.

Change-Id: If89ad205dec9ffdba4ca196cdc1a2e5fd9258260
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoQQuickLineControl more robust on input method & selection state
Pekka Vuorela [Tue, 13 Dec 2011 13:47:51 +0000 (15:47 +0200)]
QQuickLineControl more robust on input method & selection state

Input method event having replacement information out of bounds
left the controller in selection state when it shouldn't be.
Also now more liberal on accepted events. We cannot detect if input
method is confused for replacement inside boundaries, but going beyond
the end is more likely to be meant to replace until the end than to
leave previous text in addition to the new one.

Change-Id: I485009ac682c11876b39f7e22d7dfb91a6d162fe
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoDebugger: Get rid of SG* prefix in qtquick2 plugin
Kai Koehne [Mon, 19 Dec 2011 15:58:31 +0000 (16:58 +0100)]
Debugger: Get rid of SG* prefix in qtquick2 plugin

Change-Id: Ib8a40d633c169652258480748cfc162593ed9f6c
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
12 years agoEmit the QQuickCanvas::frameSwapped signal again.
Gunnar Sletta [Tue, 20 Dec 2011 10:33:00 +0000 (11:33 +0100)]
Emit the QQuickCanvas::frameSwapped signal again.

This got lost in the window manager rewrite

Change-Id: Ibaed76814ae676ce4ce3f50def196b8d67fd3df0
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
12 years agoRemove hardcoded assumptions about methods in QObject
Chris Adams [Tue, 20 Dec 2011 05:33:47 +0000 (15:33 +1000)]
Remove hardcoded assumptions about methods in QObject

This commit ensures that the number of methods available from the
QObject::staticMetaObject is looked up rather than hardcoded to
a value in the QDeclarativePropertyCache.

Task-number: QTBUG-22985
Change-Id: If61c02f0d32066cddaeac2d8143c58db97acb609
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoSmall Text creation performance improvements.
Martin Jones [Tue, 20 Dec 2011 05:31:13 +0000 (15:31 +1000)]
Small Text creation performance improvements.

Change-Id: Ie92129887730d3738e14116cf22e1c30b836a415
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDelay masking the last character in Password echo mode.
Andrew den Exter [Fri, 16 Dec 2011 03:57:54 +0000 (13:57 +1000)]
Delay masking the last character in Password echo mode.

If QT_GUI_PASSWORD_ECHO_DELAY is defined in qplatformdefs.h with an
integer value in milliseconds, QLineEdit and TextInput will display
the last character entered unmasked for that delay period and then
mask the character as normal.  If QT_GUI_PASSWORD_ECHO_DELAY is
not defined then the behaviour is unchanged.

Task-number: QTBUG-17003
Task-number: QTBUG-20719
(cherry picked from commit f9e7aee2019d321edd655bfde7de43f20a106971)

Change-Id: I9a8647a0adeb94fc6beea949cdce7336671c898e
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoAdd wrapMode and verticalAlignment properties to TextInput.
Andrew den Exter [Thu, 15 Dec 2011 01:36:54 +0000 (11:36 +1000)]
Add wrapMode and verticalAlignment properties to TextInput.

Wrap mode provides an alternative to horizontal scrolling when the width
of the text exceeds the width of the TextInput. With auto scroll
wrapping introdoces an implicit verticalAlignment so support setting it
explicitly as well.

Task-number: QTBUG-22305
Task-number: QTBUG-16203
Change-Id: I1bd3a5335edb3ac48df3d5ccd8ae7274caa91883
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoEnsure items in ListView and GridViews viewport are visible.
Andrew den Exter [Fri, 9 Dec 2011 02:55:32 +0000 (12:55 +1000)]
Ensure items in  ListView and GridViews viewport are visible.

Unrequested items and items in the cache buffer are hidden by the views.
Make these items visible again if they enter the viewport due to a
relayout.

Change-Id: I574d1513e88c31c3c01a4a20ac77c21111279d3e
Reviewed-by: Bea Lam <bea.lam@nokia.com>
12 years agoFix affector group caching
Alan Alpert [Mon, 19 Dec 2011 07:58:49 +0000 (17:58 +1000)]
Fix affector group caching

It was possible for the cache to be updated before groups were properly
assigned, and it didn't update when they were.

Change-Id: If6835e2aad4a2412d17eb727da5d2414e4c20d60
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix sprite chopping
Alan Alpert [Fri, 16 Dec 2011 05:23:59 +0000 (15:23 +1000)]
Fix sprite chopping

Had some rounding around the wrong way.

Change-Id: I90ea339c35074ca7287c069bdbdd106578b1501b
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoQt.locale() always returns the 'C' locale.
Martin Jones [Tue, 20 Dec 2011 01:02:10 +0000 (11:02 +1000)]
Qt.locale() always returns the 'C' locale.

QLocale(QString()) does not return the default locale.  If no
locale is specified, use the QLocale() constructor.

Change-Id: I76198b7ea66a6326483ec47ac36e080159ca459a
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix valgrind warning.
Andrew den Exter [Mon, 19 Dec 2011 03:46:56 +0000 (13:46 +1000)]
Fix valgrind warning.

Update the initial values of the VisualDataModel attached object
when binding to an object.

Change-Id: I2e11c8bf13198e848d11c8cea9885cb64240f941
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDon't enable multiline eliding unless wrap is enabled.
Martin Jones [Sun, 18 Dec 2011 23:51:16 +0000 (09:51 +1000)]
Don't enable multiline eliding unless wrap is enabled.

Setting the height of the Text element to less than the height
of the font caused the multiline eliding to activated.  Also
ensure multiline eliding only elides a truncated first line if
it does not fit in the width allowed.

Change-Id: If7e88d6ad82cb12cdb53d92616e62c3895611115
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix QDeclarativePropertyCache crash.
Andrew den Exter [Mon, 19 Dec 2011 03:10:06 +0000 (13:10 +1000)]
Fix QDeclarativePropertyCache crash.

Reserve enough space in the signalHandlerIndexCache so that it will
not reallocated while the property cache is being built as this will
invalidate the pointers stored in the stringCache.  Also ensure
signals for all cached meta-objects are included in
signalHandlerIndexCache, and don't over allocate propertyIndexCache
and methodIndexCache.

Change-Id: Ic285d832d4b86106176bfe723ff10bdd65143910
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoUpdate the performance-tips documentation
Chris Adams [Wed, 7 Dec 2011 06:39:50 +0000 (16:39 +1000)]
Update the performance-tips documentation

Improvements to the JavaScript integration in QML means that developers
must be aware of some different performance related concerns.
This commit also adds some performance tips for other elements and
use-cases in QML.

Change-Id: Ia72f8c7ab275d3ff879fa195d59ecab102ca1f86
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoImplement "headless mode" for hidden QQuickCanvases
Gunnar Sletta [Thu, 8 Dec 2011 12:24:17 +0000 (13:24 +0100)]
Implement "headless mode" for hidden QQuickCanvases

When all views are hidden, we stop the rendering thread,
kill the OpenGL context and all scene graph content.
The entire scenegraph is recreated based on the QML scene
when a view is shown again.

Change-Id: I734619d9f29263a5cdecbcc9b88c3808d1d64a7f
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
12 years agoCorrectly resolve elements of QList<QUrl> properties
Chris Adams [Thu, 15 Dec 2011 02:01:39 +0000 (12:01 +1000)]
Correctly resolve elements of QList<QUrl> properties

Previously, the value of a QList<QUrl> sequence was only resolved if
there was only one element in the sequence.  This commit ensures that
all elements in the sequence are resolved correctly.

Task-number: QTBUG-23131
Change-Id: Id27748853fe01ae22800fbd02d062e268ad7ec70
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoRemove another fragile assumption from var prop unit test
Chris Adams [Fri, 16 Dec 2011 00:58:20 +0000 (10:58 +1000)]
Remove another fragile assumption from var prop unit test

Commit 32c6ba2c3802bfda11e455c8aaaee41662c237fb removed hardcoded prop
indices from one test, but missed another test case which also
hardcoded a property index.

Change-Id: Iaac863f8176d09077ce1773b642cb88a01cc3fd1
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix compilation due to header changes
Sergio Ahumada [Sat, 17 Dec 2011 07:44:21 +0000 (08:44 +0100)]
Fix compilation due to header changes

- Fix QtGui/QApplication => QtWidgets/QApplication
- Fix QtGui/QStylePlugin => QtWidgets/QStylePlugin
- Fix QtWidgets/QStringListModel => QtCore/QStringListModel
- Fix QtWidgets/qstringlistmodel.h => QtCore/qstringlistmodel.h

Change-Id: I8df28f032f039107b900c81be27d2d6e5e69e06e
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
12 years agoConsole APIs: Update documentation in QDeclarative
Aurindam Jana [Wed, 14 Dec 2011 09:29:52 +0000 (10:29 +0100)]
Console APIs: Update documentation in QDeclarative

Change-Id: Ieb3887f128987c009d39071dd20e68f9e4fe6bc7
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Reviewed-by: Peter Yard <peter.yard@nokia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
12 years agoDeclarativeDebug: Add version info to service plugins
Aurindam Jana [Thu, 15 Dec 2011 16:52:22 +0000 (17:52 +0100)]
DeclarativeDebug: Add version info to service plugins

Send the version info of each plugin alongwith the
plugin names to client.

Change-Id: I223689b32cdc5b0c48a4f508330033352b427937
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoFix sprite-less sprite mode
Alan Alpert [Thu, 15 Dec 2011 03:29:48 +0000 (13:29 +1000)]
Fix sprite-less sprite mode

Sprite performance mode is supposed to work even without sprites,
mostly for testing purposes.

Also renamed the testing variable from bloat to bypassOptimizations, and
removed it from the QML API (although it previously was hidden).

Change-Id: I436554d4ee2ed3a1770839b28aba8d8ef843469a
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoAdd some more particles debugging information
Alan Alpert [Tue, 13 Dec 2011 05:44:21 +0000 (15:44 +1000)]
Add some more particles debugging information

Output registrations to help make system ownership clear. Only if debug
output flag set.

Change-Id: I75370eff1140e54aa5c23cc820342c89ef3af282
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoMake PlainText the default textFormat of a TextEdit.
Andrew den Exter [Tue, 13 Dec 2011 03:56:42 +0000 (13:56 +1000)]
Make PlainText the default textFormat of a TextEdit.

With AutoText as the default it's easy to assume that a TextEdit accepts
plain text or rich text only which can lead to unexpected behaviour
when user supplied text is does not have the expected formatting and
implicitly changes the text format.

Task-number: QTBUG-23109
Change-Id: I08900fb23545672fd0e181058633bafeb826a746
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoMerge QQuickLineControl into QQuickTextInput.
Andrew den Exter [Fri, 11 Nov 2011 03:47:59 +0000 (13:47 +1000)]
Merge QQuickLineControl into QQuickTextInput.

There's no clear separation of responsibilty between these classes and
keeping them in sync and forwarding signals is a unnecessary overhead
that can be avoided by combining them.

Task-number: QTBUG-22627
Change-Id: I4350eb3c612b10d4ed34886374889ae893b8183a
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoV8: Remove extra V8::Context allocated for expressing strong references
Simon Hausmann [Tue, 13 Dec 2011 16:18:45 +0000 (17:18 +0100)]
V8: Remove extra V8::Context allocated for expressing strong references

Moved the Referencer code into QV8Engine and re-used the available v8
context there. That also makes things a bit cleaner in the sense that now
references from one object to another are guaranteed to be within the same
context. Previously some strong references would be across contexts that
do not actually share a security token.

Change-Id: I717b27a4d96323feb570023d4d84f2b2176d1a84
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
12 years agoFix IR code generation for member expressions
Roberto Raggi [Thu, 15 Dec 2011 08:50:51 +0000 (09:50 +0100)]
Fix IR code generation for member expressions

The generated code for member expressions (e.g. parent.width) was using
a wrong mix of types from the base object and names from the
current member expression.

Change-Id: I167df285ae44f9dc1538e2b1019998f02a0479a8
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoAdd support for QUrl types to V4
Roberto Raggi [Wed, 14 Dec 2011 10:27:18 +0000 (11:27 +0100)]
Add support for QUrl types to V4

Extended the V4 instruction set with instructions to
`fast convert' url registers to string and bool registers
and `resolve' urls using QDeclarativeContext::resolvedUrl.

Also, made IR::UrlType a special `string' type. It's a little trick
to ensure that the compiler will generate correct conversions for
the binary expressions.

Change-Id: Ibc9e5b99302bd513f0cc52b598a1b198b11d4d30
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoQV8DebugService: add version command
Aurindam Jana [Thu, 15 Dec 2011 09:54:45 +0000 (10:54 +0100)]
QV8DebugService: add version command

Version command to retrieve debugger version info.

Change-Id: I711e2a3d639c648cef50498fe5bbb9b6b8c6c1fe
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoFix that QJSEngine cannot be used from threads other than the gui thread
Simon Hausmann [Tue, 13 Dec 2011 09:04:40 +0000 (10:04 +0100)]
Fix that QJSEngine cannot be used from threads other than the gui thread

Implicitly allocate & enter an isolate per thread if needed, store it in TLS and
exit it upon thread destruction. As the code that represents QObject
dependencies in the GC through implicit dependencies uses its own context,
its per-thread data is folded into the v8engine TLS to ensure that it is
destructed before the isolate is exited.

Task-number: QTBUG-23099

Change-Id: I86538b54939b2fe64db843052eac04c7fd31813e
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoAdd lineWidth property to QSGGeometry
Alex Wilson [Wed, 14 Dec 2011 06:10:15 +0000 (16:10 +1000)]
Add lineWidth property to QSGGeometry

Allows users to set a line width when using drawingModes GL_LINES,
GL_LINE_LOOP etc. Only calls glLineWidth on these drawingModes, and
does it just before the glDrawElements/glDrawArrays.

Change-Id: I2af583970b2acf0ddb59025a454caa75a8ddbd4f
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoDon't emit model reset on completing a VisualDataModel.
Andrew den Exter [Tue, 8 Nov 2011 02:09:39 +0000 (12:09 +1000)]
Don't emit model reset on completing a VisualDataModel.

The views try and retain their current state as much as possible on
a reset which prevents the current item being set to a valid item as
would happen if the VisualDataModel was completed before the view.

Change-Id: I593a850aeeb58846ab500f193487db4033e26399
Reviewed-by: Bea Lam <bea.lam@nokia.com>
12 years agoActivate links in a read only TextEdit.
Andrew den Exter [Tue, 13 Dec 2011 05:42:49 +0000 (15:42 +1000)]
Activate links in a read only TextEdit.

Don't ignore mouse press events if  the LinksAccessibleByMouse
interaction flag is set.

Task-number: QTBUG-23065
Change-Id: I25b3e3b0cf194b71fc863ed239196a567f42c19c
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoRemove unused code from QQuickLineControl.
Andrew den Exter [Fri, 11 Nov 2011 00:06:41 +0000 (10:06 +1000)]
Remove unused code from QQuickLineControl.

Task-number: QTBUG-22627

Change-Id: I234977638ac6d42ad0fa648ae366823e5c542ed6
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoRemove fragile assumption from var properties unit test
Chris Adams [Thu, 15 Dec 2011 06:03:58 +0000 (16:03 +1000)]
Remove fragile assumption from var properties unit test

Previously, the test included some hardcoded property index values
which would break if the layout of an item changed.  This commit
ensures that the index of the properties are looked up dynamically.

Change-Id: I5a499f81a0cb859d89f0972eb7cd645107336bc9
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoRemove QQuickTextControl::ensureCursorVisible()
Andrew den Exter [Thu, 15 Dec 2011 03:22:49 +0000 (13:22 +1000)]
Remove QQuickTextControl::ensureCursorVisible()

QQuickTextEdit doesn't implement scrolling internally and QML code
will use the cursorRectangle property to determine if it should scroll.

All instances of ensureCursorVisible() have been replaced by
cursorRectangleChanged() which was previously microFocusChanged().

Task-number: QTBUG-22627
Change-Id: I5df9e1d1cb4a8553eabd417a658e80da1c27e10c
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoRemove unused code from QQuickTextControl.
Andrew den Exter [Thu, 15 Dec 2011 03:18:27 +0000 (13:18 +1000)]
Remove unused code from QQuickTextControl.

QTextControl included a lot of functionality that was unused by
TextEdit.  Anything that is unused and therefore untested should
go.

Task-number: QTBUG-22627

Change-Id: Ie68b279cb8618bec0af76287c7c4db34d0642a0a
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoUtilize the property cache for item view context objects.
Andrew den Exter [Thu, 15 Dec 2011 02:41:56 +0000 (12:41 +1000)]
Utilize the property cache for item view context objects.

A common QDeclarativePropertyCache was being constructed for dynamic
objects but never bound to the constructed objects.

Change-Id: I83b3841d8b78e2f2dd8e0494ea2601c20d6e6e88
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoqdeclarativelanguage-test: Fix location.
Friedemann Kleint [Wed, 14 Dec 2011 15:24:46 +0000 (16:24 +0100)]
qdeclarativelanguage-test: Fix location.

Introduce the standard method of locating test data
(QFINDTESTDATA).

Change-Id: I4074396a7631cf68060c02b716fa7e1b95d6e22d
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoUpdate QDeclarativePinchArea autotest.
Laszlo Agocs [Sat, 10 Dec 2011 14:22:00 +0000 (16:22 +0200)]
Update QDeclarativePinchArea autotest.

Similarly to the QtQuick2 tests this one also needs some minor changes
to make it compile with the recent touch changes in qtbase.

Change-Id: Ie7114dc181579b45c850cb0cf18eb1168a37d8d4
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoQV8DebugService: Add breakaftercompile
Aurindam Jana [Wed, 14 Dec 2011 11:50:41 +0000 (12:50 +0100)]
QV8DebugService: Add breakaftercompile

Add breakaftercompile command that will set the v8::DebugBreak()
whenever a new script is compiled.

Change-Id: Id9027066826b6de621058d3170fa628463ef0152
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoQV8DebugService: Simplify the service code
Aurindam Jana [Fri, 2 Dec 2011 13:52:21 +0000 (14:52 +0100)]
QV8DebugService: Simplify the service code

Removed all parsing functionality. The service only acts as a delegate
to v8 debugger. Apart from that, it calls the v8 debug static APIs
when requested by client.

Change-Id: I2917c2d080e5b409a4b5f39d386279c33634cade
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoLink against librt to make use of clock_gettime
Kai Koehne [Wed, 14 Dec 2011 13:13:45 +0000 (14:13 +0100)]
Link against librt to make use of clock_gettime

Allow using qdeclarativetrace_p.h on Linux

Change-Id: Ib5d9dad156897ea40825136ac2e818c1250ad403
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoQQuickTextControl - mouse events to override input context
Pekka Vuorela [Fri, 9 Dec 2011 13:28:13 +0000 (15:28 +0200)]
QQuickTextControl - mouse events to override input context

 - Selection can start on top of preedit
 - Mouse press outside preedit commits
 - Double click to commit on top of preedit
 - Focus out to commit preedit

Similar to qtbase 4b3d88a9c67402b6a234d597bab25846f039bbdb and
b5c37d9e137dee2754335e83b8437dfd0e6cc7e7 for QTextEdit

Change-Id: Ib9c37528ba7fd588ee993b7ff33f79f96857e421
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>