profile/ivi/qtdeclarative.git
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>
12 years agoProtect QTextControl::setTextCursor for existing preedit
Pekka Vuorela [Fri, 9 Dec 2011 13:30:26 +0000 (15:30 +0200)]
Protect QTextControl::setTextCursor for existing preedit

Change-Id: I29fc7c472a3a20eeaf74e0dc411313e5750e9dee
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoSupport for multiple textures in the distance field glyph node.
Yoann Lopes [Tue, 13 Dec 2011 13:42:00 +0000 (14:42 +0100)]
Support for multiple textures in the distance field glyph node.

Distance field glyph nodes can now have their glyphs in different
textures.

Change-Id: Ia4cdf12f8791246779c890e4ff224927bdfa1156
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agoTextEdits to include tentative commit in text property
Pekka Vuorela [Fri, 9 Dec 2011 13:15:21 +0000 (15:15 +0200)]
TextEdits to include tentative commit in text property

Similar to what qtbase 1dbfbf4c66187e7522888c19d78024cfceaea570
did for QTextEdit. Now available only in plain text, html support
pending.

Change-Id: I0b23a45fc484512d3354f66e1a6134e2d70eb8b5
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoCleanup: Fold QV8GCCallback class declaration(s) back into qv8engine_p.h
Simon Hausmann [Mon, 12 Dec 2011 13:04:39 +0000 (14:04 +0100)]
Cleanup: Fold QV8GCCallback class declaration(s) back into qv8engine_p.h

The implementation lives in qv8engine.cpp.

Change-Id: I2898556fea867cdc82ea534eaf020dd8d12b25d6
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
12 years agoFix leak of v8 context used for implicit strong references.
Simon Hausmann [Mon, 12 Dec 2011 12:41:25 +0000 (13:41 +0100)]
Fix leak of v8 context used for implicit strong references.

QV8GCCallback::Referencer keeps strong implicit references for QObjects
owned by C++ (or objects with a CPP owned root parent). The implicit v8
object to express the implicit reference belongs to a dedicated v8 context,
which needs to be disposed properly.

Change-Id: Ic0555cb8d94384a185ebcee9825988d84e74f26b
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
12 years agoMore distance-field cache refactoring.
Yoann Lopes [Tue, 13 Dec 2011 10:18:33 +0000 (11:18 +0100)]
More distance-field cache refactoring.

The distance field glyph node now uses preprocess().
The glyph cache is updated at that time, then when all the glyphs are
ready the node's geometry is updated.

addGlyphPositions and addGlyphTextures in QSGDistanceFieldGlyphCache
have been renamed to setGlyphsPosition and setGlyphsTexture to reflect the
fact that they can be used to update existing glyphs. For example when
a glyph has moved to a different texture.
When an existing glyph is updated, all nodes containing that glyph are
invalidated and their geometries are reconstructed with the new values.

Change-Id: I7758313155f48811e6027434e6c9a1c3df5dfab7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agoCorrectly ignore unknown tags in StyledText
Martin Jones [Wed, 14 Dec 2011 05:20:25 +0000 (15:20 +1000)]
Correctly ignore unknown tags in StyledText

Also improve tests to compare expected formatting and improve coverage.

Change-Id: I021dbdcd147dd7340a0dc1c30f4b104f22efece0
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
12 years agoAdd a tutorial describing how to re-arrange items in a ListView.
Andrew den Exter [Wed, 7 Dec 2011 03:03:08 +0000 (13:03 +1000)]
Add a tutorial describing how to re-arrange items in a ListView.

This example describes both how to use drag and drop to re-order items
and how to use VisualDataGroup to sort a view using model data.

Change-Id: I034963ea87c8ab0c30555536ac28495a396c0577
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix crash when items are moved in model.
Andrew den Exter [Tue, 13 Dec 2011 07:17:56 +0000 (17:17 +1000)]
Fix crash when items are moved in model.

When erasing an item we need to backtrack to the previous item so the
next iteration doesn't skip an item. In the worst case the next item
is the last and a failure to backtrack will cause the loop to wrap
around and run over the list again.

Task-number: QTBUG-23107
Change-Id: I82156f6fc1f7973ba11f09a4694230c77c293757
Reviewed-by: Bea Lam <bea.lam@nokia.com>
12 years agoQDeclarativeBuiltinFunctions: Remove warning
Aurindam Jana [Tue, 13 Dec 2011 10:32:35 +0000 (11:32 +0100)]
QDeclarativeBuiltinFunctions: Remove warning

Change-Id: Id603b5a47d993d07a0562a457d9d03752e9d8151
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoupdate: make fragment shader code for distance field work with tegra2
Johannes Zellner [Mon, 28 Nov 2011 19:25:54 +0000 (20:25 +0100)]
update: make fragment shader code for distance field work with tegra2

Change-Id: If907389dc904e9963aa87e5efdc39664e74d1eea
Reviewed-by: Yoann Lopes <yoann.lopes@nokia.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
12 years agoAdd a tracing API for the QML engine
Aaron Kennedy [Fri, 9 Dec 2011 12:39:23 +0000 (12:39 +0000)]
Add a tracing API for the QML engine

Change-Id: Ic03583444d586f275897d765be8e1b5e69fdd5d4
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoQV8Engine: Console APIs, Extend functionality
Aurindam Jana [Thu, 10 Nov 2011 14:59:05 +0000 (15:59 +0100)]
QV8Engine: Console APIs, Extend functionality

Added console.trace, console.profile, console.profileEnd.

Change-Id: Icc38ddd550989eaba0085ece120695a13ec17322
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoSupport opening filedialog again in qmlscene
Gunnar Sletta [Tue, 13 Dec 2011 10:06:15 +0000 (11:06 +0100)]
Support opening filedialog again in qmlscene

Change-Id: If6d7dded83a4bbb5d68b74741fc7a531165b7fef
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoCleanup: Remove redundant call to QV8GCCallback::registerGcPrologueCallback()
Simon Hausmann [Tue, 13 Dec 2011 09:03:20 +0000 (10:03 +0100)]
Cleanup: Remove redundant call to QV8GCCallback::registerGcPrologueCallback()

The same call is done a few lines above, and calling the function multiple times
has no effect after the first call.

Change-Id: Ibcf10ec88b0f5182d2963e4bfe532ff6a4e5a4ad
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
12 years agoMade QSGNode flags togglable and added StaticSubtreeGeometry.
Kim Motoyoshi Kalland [Thu, 17 Nov 2011 15:36:53 +0000 (16:36 +0100)]
Made QSGNode flags togglable and added StaticSubtreeGeometry.

The UsePreprocess and ChildrenDoNotOverlap flags could previously
only be set during node initialization. They can now be toggled.
This change also introduces the StaticSubtreeGeometry flag which is
meant to be used to indicate that all the nodes in the sub-tree
have static matrices and vertex data.

Change-Id: I3b182b81f7010aea636f8f654ef22dab19bc6b29
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoFix warnings about struct/class mismatch (QDeclarativeAccessor).
Friedemann Kleint [Tue, 6 Dec 2011 12:58:21 +0000 (13:58 +0100)]
Fix warnings about struct/class mismatch (QDeclarativeAccessor).

Change-Id: I85cb4042db9b4417f1098a65e99c5524e829fe92
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoAugment Samegame with resource efficient particle system
Alan Alpert [Mon, 12 Dec 2011 01:32:32 +0000 (11:32 +1000)]
Augment Samegame with resource efficient particle system

The particle system cannot automatically turn itself off when it's not
needed, however it is easy enough to do so manually. This change does so
in SameGame as an example.

Task-number: QTBUG-22923
Change-Id: I5f2b3e572222f03c9412fd24c40276529e7d0e7e
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoInitialize Variable
Alan Alpert [Tue, 13 Dec 2011 01:07:56 +0000 (11:07 +1000)]
Initialize Variable

Change-Id: I9870ca9784896fb780dc0474f6fa603f316d59d4
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoSupport <strong> in styled text.
Martin Jones [Tue, 13 Dec 2011 02:37:10 +0000 (12:37 +1000)]
Support <strong> in styled text.

Task-number: QTBUG-23105

Change-Id: I15968c43fd0797b94584f110c6aeca06eca832b7
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
12 years agoAdd basic custom easing curve docs and test
Martin Jones [Thu, 8 Dec 2011 00:36:44 +0000 (10:36 +1000)]
Add basic custom easing curve docs and test

Change-Id: Id38434cb71417276635b501d13d0145759de9864
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoQtQuick TextEdit to set view property to QTextController
Pekka Vuorela [Wed, 7 Dec 2011 13:41:45 +0000 (15:41 +0200)]
QtQuick TextEdit to set view property to QTextController

Controller wants to know on some cases where it's attached to.

Change-Id: I48df57ea1233a307f4d7424f0f944755604e3a6e
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoV8: Minor cleanup
Simon Hausmann [Mon, 12 Dec 2011 14:32:17 +0000 (15:32 +0100)]
V8: Minor cleanup

Moved context creation into the QV8Engine constructor body. That will make
it easier to execute other initialization stuff in the future, such as
per-thread isolate creation.

Change-Id: Id4aef76d3664a3810143907d2201203b18745a47
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
12 years agoInitialize variable
Gunnar Sletta [Mon, 12 Dec 2011 07:56:14 +0000 (08:56 +0100)]
Initialize variable

Change-Id: Ie88f21c4e4c53a023f03f906d2fae7540fbc668d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
12 years agoQtQuick: Fix compiler warnings.
Friedemann Kleint [Mon, 12 Dec 2011 10:57:47 +0000 (11:57 +0100)]
QtQuick: Fix compiler warnings.

Mostly introduced by fdd14a1a10a0a2f42015b30071771bd95215cc1a.

Change-Id: Ief4c33412ef80923de2f91e62bb89c18267a14f3
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoCreate a copy of QLineControl in the QtDeclarative library.
Andrew den Exter [Thu, 10 Nov 2011 04:19:32 +0000 (14:19 +1000)]
Create a copy of QLineControl in the QtDeclarative library.

First half of a move of QLineControl from qtbase to qtdeclarative, some
time in the future QLineControl will be deleted from qtbase to finish
the move.

Task-number: QTBUG-22627
Change-Id: I0c3449f57f1a3296a0ff52f2b9a1a78041ae28b2
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoLink against widgets only when available
Gunnar Sletta [Mon, 12 Dec 2011 06:18:03 +0000 (07:18 +0100)]
Link against widgets only when available

Change-Id: Id7c474fe48bfa99d765267c0e3be1cbf80597548
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoFix TextInput not reacting to text color change.
Andrew den Exter [Mon, 12 Dec 2011 04:50:01 +0000 (14:50 +1000)]
Fix TextInput not reacting to text color change.

Trigger a relayout with the new color when the color property is
changed.

Task-number: QTBUG-22402

Change-Id: I2dc190e097e878ac498fd04c2800a6e11947527c
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoFix test failures in QtQuick 1 TextEdit and TextInput.
Andrew den Exter [Mon, 12 Dec 2011 02:46:48 +0000 (12:46 +1000)]
Fix test failures in QtQuick 1 TextEdit and TextInput.

Port various fixes for incompatibilites from the QtQuick 2 item tests.

Task-number: QTBUG-21017
Change-Id: I0234fa2623c57138a132558ff4f48602675c3784
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoSize TextInput cursor correctly.
Andrew den Exter [Fri, 9 Dec 2011 06:30:46 +0000 (16:30 +1000)]
Size TextInput cursor correctly.

Use the cursorRectangle property to size and position the TextNode's
cursor rather than recalculating the rectangle in an incompatible way.

Task-number: QTBUG-22386
Change-Id: I8ee02b590796b0304683b9b246aba1e59c1fd6a5
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoFix package items not being destroyed when a package is destroyed.
Andrew den Exter [Thu, 8 Dec 2011 07:52:35 +0000 (17:52 +1000)]
Fix package items not being destroyed when a package is destroyed.

The views parent the delegate items to themselves on creation, before
we delete the package we need to reparent them back to it or they'll
persist indefinately.

Change-Id: I01a36fadb2b0ff1035de46ec2b84a54d73c49bcf
Reviewed-by: Bea Lam <bea.lam@nokia.com>
12 years agoQmlProfiler: stream snapshots to reduce memory footprint
Mikko Harju [Thu, 8 Dec 2011 11:24:12 +0000 (13:24 +0200)]
QmlProfiler: stream snapshots to reduce memory footprint

Taking a V8 heap snapshot with QV8ProfilerService created multiple
copies of the snapshot data, causing overhead of several megabytes.
This patch changes the snapshot protocol to stream the contents over
the debugger connection.

Change-Id: I90054210233d52dd02aa838201f9b024d578fcea
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoDon't access QDeclarativeProperty from bindings as often
Aaron Kennedy [Fri, 9 Dec 2011 18:00:43 +0000 (18:00 +0000)]
Don't access QDeclarativeProperty from bindings as often

Soon QDeclarativeBinding will store the property internally in its
constituent parts and construct the QDeclarativeProperty only when
it is requested.

Change-Id: Id2d7573ffd49aac783737ea6d20aac4e157a9600
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoSet target and device for touch events.
Laszlo Agocs [Thu, 8 Dec 2011 10:46:47 +0000 (12:46 +0200)]
Set target and device for touch events.

The QWidget dependency is being removed from QTouchEvent and therefore
widget() will be removed. There will be QObject *target() instead.

deviceType() has been deprecated and is replaced by QTouchDevice
*device().

Change-Id: Ic07b2c620fbfc1ae2e5eff85c8fc7269c7d5e2a8
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
12 years agoIntegrate testcocoon support into QtQuickTest.
Caroline Chao [Tue, 29 Nov 2011 09:48:21 +0000 (10:48 +0100)]
Integrate testcocoon support into QtQuickTest.

Add support to install and save coverage data when a test is run
using quick_test_main.

Change-Id: I39ddd678d748979c335139b3f8bda43b3d05720d
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoGet rid of QDeclarativeMetaType::{canCopy,copy}
Kent Hansen [Wed, 12 Oct 2011 12:27:57 +0000 (14:27 +0200)]
Get rid of QDeclarativeMetaType::{canCopy,copy}

Now that we have QMetaType::construct() that does placement new
construction, we can use that to copy the value.

We need to destruct the (default-constructed) existing value first,
but for primitive types that's a no-op, and for Qt's types it's
cheap since they use lazy initialization or "shared null".

Change-Id: Idadee04b1d5b590be7fec50fb0396fd277bee973
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoRemove dead private method from TextEdit implementations
Pekka Vuorela [Fri, 9 Dec 2011 09:40:27 +0000 (11:40 +0200)]
Remove dead private method from TextEdit implementations

Change-Id: I6c9a7c71607167b326dc45a35d97bcaf25a9d1b9
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
12 years agoqmlplugindump: Don't depend on qtquick1 and widgets.
Christian Kamm [Thu, 8 Dec 2011 08:52:01 +0000 (09:52 +0100)]
qmlplugindump: Don't depend on qtquick1 and widgets.

Change-Id: I38baaf2d8d02c3f35d2dece9fc580c6e1fee872d
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoCreate a copy of QTextControl in the QtDeclarative library.
Andrew den Exter [Thu, 10 Nov 2011 04:58:17 +0000 (14:58 +1000)]
Create a copy of QTextControl in the QtDeclarative library.

First half of a move of QTextControl from qtbase to qtdeclarative, some
time in the future QTextControl will be deleted from qtbase to finish
the move.

Task-number: QTBUG-22627

Change-Id: I72da2c71ab5b090e2a0a15219b81e522e97c541b
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agoAdd Screen attached object
Alan Alpert [Sun, 4 Dec 2011 23:35:33 +0000 (09:35 +1000)]
Add Screen attached object

Use this to get details of the screen such as size and current
orientation.

As well as adding its own example, this commit updates Calculator to
use Screen instead of Runtime for orientation.

Change-Id: I1b73d2ee22a92b1dee827de1bd893eebec9f5817
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoFix tests broken by a change in the signals emitted by AbstractItemModel
Andrew den Exter [Fri, 9 Dec 2011 06:07:37 +0000 (16:07 +1000)]
Fix tests broken by a change in the signals emitted by AbstractItemModel

QAbstractItemModel used to emit both layoutChanged() and rowsMoved()
when items were moved.  The VisualDataModel test expected both signals
but was only interested in the move, and the grid view test had a bug
in its test model that didn't was hidden by the change signal being
emitted and causing bindings to be reevaluated.

Change-Id: Id5d1b5768717f4a82f6eb4710ff3b4429529193e
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoqmlplugindump: Fix dumping of extended QGraphicsWidget.
Christian Kamm [Thu, 8 Dec 2011 13:15:58 +0000 (14:15 +0100)]
qmlplugindump: Fix dumping of extended QGraphicsWidget.

Change-Id: Id574b4ee98f7d985ef06619956b2c02cac68b553
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoImplemented multiple windows and GL context sharing
Gunnar Sletta [Wed, 7 Dec 2011 09:16:20 +0000 (10:16 +0100)]
Implemented multiple windows and GL context sharing

What was traditionally the QQuickRenderLoop which was used
to support one QQuickCanvas instance has now grown to support
multiple QQuickCanvas instances and is now called
QQuickWindowManager, of which there are two implementations.

QQuickRenderThreadSingleContextWindowManager:
One QSGContext and one OpenGL context is being used to draw
all the windows and we alternate between which surface the gl
context is bound to. This implementation relies on that
swap does not block, but that the graphics pipeline is
vsynced and will eventually block as the buffer queue is
filled up. This is the behavior we get on Mac OS X and
Wayland. The benefit of this implementation is that we have
vsync'ed animations, and the synchronizaiton between GUI and
render thread is simple. (well, simple relative to the
alternative, that is).

QQuickTrivialWindowManager:
One QSGContext and one OpenGL context is being used on the GUI
thread. Animations are ticked from a timer. Performance of this
implementation will deteriorate if the driver is using blocking
swap.

Task-number: QTBUG-19455
Change-Id: Ib961ac7d71eb49c70a057872b7cac020c4d19f3d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
12 years agoUpdate whatsnew doc with JavaScript improvements
Chris Adams [Wed, 7 Dec 2011 06:57:34 +0000 (16:57 +1000)]
Update whatsnew doc with JavaScript improvements

Several JavaScript integration improvements were made recently:
    - sequence support
    - "var" properties
    - improved scarce resource support

Change-Id: Id9f47d14c961397d970e306eac2bec5d3e55cab3
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDebugger: Run js autotests with QML_DISABLE_OPTIMIZER
Kai Koehne [Wed, 30 Nov 2011 16:16:42 +0000 (17:16 +0100)]
Debugger: Run js autotests with QML_DISABLE_OPTIMIZER

That's how you'd usually debug your app too.

Change-Id: I5acbf2fea0db3cb8593d690638f90ec849cf316a
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
12 years agoFix QObject V8 wrapping for extended types
Aaron Kennedy [Wed, 7 Dec 2011 14:20:01 +0000 (14:20 +0000)]
Fix QObject V8 wrapping for extended types

The meta object for extended types must be marked as dynamic, to prevent
their properties from being marked as IsDirect.

Task-number: QTBUG-22997
Change-Id: I825f94f072cb46981706221a1044c9e2feeedcc2
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoMove snippets to separate test in the examples testcase
Alan Alpert [Wed, 7 Dec 2011 03:26:48 +0000 (13:26 +1000)]
Move snippets to separate test in the examples testcase

This test filters out warning messages, so as to not clutter the logs.

Also altered an example so that v8 doesn't spit out a warning message.

Change-Id: I89ab9f1c12bee6cea88e06ce5bf98f2f69a13559
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoFix linking of QtQuick.dll on Windows.
Friedemann Kleint [Tue, 6 Dec 2011 12:43:06 +0000 (13:43 +0100)]
Fix linking of QtQuick.dll on Windows.

Put class QDeclarativeComponentAttached into a separate header.
When declared as Q_AUTOTEST_EXPORT in
declarative/qml/qdeclarativecomponent_p.h which is included by
quick/qquickloader.cpp, the Q_AUTOTEST_EXPORT is seen as
__declspec(dllexport) and linking fails.

Change-Id: I835197e3af6993cfd9325a432f33c636b9bfd3e6
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoAvoid Text layout being triggered unnecessarily
Martin Jones [Wed, 7 Dec 2011 01:20:25 +0000 (11:20 +1000)]
Avoid Text layout being triggered unnecessarily

Text was quite often layed out twice during construction due to
geometry changes, and often at run time due to other geometry changes.
This change checks for cases which do not require relayouting and
drops out early.  These are easier to detect than trying to have a
single giant if statement covering all the positive combinations.

Change-Id: I2deb2ab52d35b3d02bced698d05fef91c9e2f745
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoAdd support for pixmap cache images to TextEdit.
Andrew den Exter [Mon, 5 Dec 2011 01:36:55 +0000 (11:36 +1000)]
Add support for pixmap cache images to TextEdit.

Re-use the QQuickTextDocumentWithImageResources class from Text to
allow image resources to be loaded from the pixmap cache.

Change-Id: I13170eefe664447b77f2980fb2fe7b4e2f8eb81c
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
12 years agoFix images not displaying on lines with no text.
Andrew den Exter [Mon, 5 Dec 2011 01:32:16 +0000 (11:32 +1000)]
Fix images not displaying on lines with no text.

Update the current line when adding an image if it positioned at the
start of the line.

Change-Id: I7c29f8c3a8d8923030c473446bb6d03bfb524b49
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
12 years agoPrevent consecutive images from climbing up a text node.
Andrew den Exter [Mon, 5 Dec 2011 01:29:04 +0000 (11:29 +1000)]
Prevent consecutive images from climbing up a text node.

Vertically position all nodes at the baseline minus their ascent.
Previously the bounding rect of a glyph run was postioned on the base
line and  images at the baseline minus the ascent.  This meant that
calculated position of an image was correct if it followed text but
if it followed another image it would be positioned above it.

Change-Id: I03f5e0b48f132f010d16c49620fa9463873f9492
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
12 years agoRemove warning messages for canvasitem tests
Charles Yin [Wed, 7 Dec 2011 03:04:20 +0000 (13:04 +1000)]
Remove warning messages for canvasitem tests

1) The null image warnings can be safely ignored as the images are
   expected to be null
2) Check the isLoading() before calling QDeclarativePixmap::connectFinished()

Change-Id: I58339f40495fb62c73b217aca35cdd7effd8c917
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix some warnings.
Martin Jones [Wed, 7 Dec 2011 01:35:57 +0000 (11:35 +1000)]
Fix some warnings.

Change-Id: Iba2ec5640d02cb265ea23e4f9c5303a2da34dffd
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoRemove insignificant_test from GridView tests.
Martin Jones [Tue, 6 Dec 2011 23:56:45 +0000 (09:56 +1000)]
Remove insignificant_test from GridView tests.

This has not failed in a long time.

Change-Id: I58ca0a6941662040a941ae7264aa9e4f9e3cf359
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDebugger: Fix compilation warning in autotest
Kai Koehne [Tue, 6 Dec 2011 14:16:55 +0000 (15:16 +0100)]
Debugger: Fix compilation warning in autotest

Change-Id: I84c058a3cc8808d2da94ae6cb63815cd436bb8b8
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoCopy JS tests from QtScript module
Aaron Kennedy [Thu, 1 Dec 2011 14:48:20 +0000 (14:48 +0000)]
Copy JS tests from QtScript module

This allows qtdeclarative to build and run its tests without
relying on the QtScript module

Change-Id: I469254fbfec159ab2221140c588a1b3ec1c0a2d0
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
12 years agoImprove parsing of escape characters and regexp literals.
Roberto Raggi [Tue, 6 Dec 2011 13:09:22 +0000 (14:09 +0100)]
Improve parsing of escape characters and regexp literals.

That is, in QML/JS you can escape characters in identifiers, e.g.

  var c\u0061se = 25

declares a variable called `case' with value 25. In such cases
qmlmin needs to preserve the escape sequence in the declaration.

Also, fix possible errors when pasting keywords after regexp literals.
The minifier needs to preserve the whitespace character after the
regexp delimiter, e.g.

  /x/instanceof blah

without the white space after the regexp, the `i' of `instanceof'
is parsed as a regexp flag.

Change-Id: I5f426ac62949e34d092d4fdb0a41243de8ff2236
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
12 years agoFix the QML/JS parser to accept empty Javascript files.
Roberto Raggi [Tue, 6 Dec 2011 11:05:55 +0000 (12:05 +0100)]
Fix the QML/JS parser to accept empty Javascript files.

Change-Id: I0c5dfdc76489e6d1ec5608dea625cb0d109288e2
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
12 years agoCleaned up the qmlscene code a bit
Gunnar Sletta [Tue, 6 Dec 2011 07:06:03 +0000 (08:06 +0100)]
Cleaned up the qmlscene code a bit

Change-Id: I2aed4786e5426a7f05acced39ef849c03f1ab935
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
12 years agotest/debugutils: Add include guard.
Friedemann Kleint [Mon, 5 Dec 2011 12:38:19 +0000 (13:38 +0100)]
test/debugutils: Add include guard.

Change-Id: I3d65569851169ce4aa350b0268ec5ca1c516613e
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
12 years agoIntroduce methods to get the source location of the AST nodes.
Roberto Raggi [Fri, 2 Dec 2011 15:53:32 +0000 (16:53 +0100)]
Introduce methods to get the source location of the AST nodes.

Also removed deprecate AST nodes.

Change-Id: I9221e81b15b18530bb2ab8b09da2482df543bace
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
12 years agoRemove TESTED_CLASS/TESTED_FILES comments from tests.
Jason McDonald [Tue, 6 Dec 2011 00:13:07 +0000 (10:13 +1000)]
Remove TESTED_CLASS/TESTED_FILES comments from tests.

These comments were mostly empty or inaccurate.  Appropriate naming of
tests and appropriate placement of tests within the directory tree
provide more reliable indicators of what is being tested.

Change-Id: If69bdb39fd162d167cb948ddcbb73503b414e791
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoIgnore expected warnings in Item and PathView tests
Martin Jones [Tue, 6 Dec 2011 02:29:09 +0000 (12:29 +1000)]
Ignore expected warnings in Item and PathView tests

Change-Id: I05ebebbfe7f6b107068e9feaf66c03fd3ae71237
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoDecrease debug output of modelview examples.
Alan Alpert [Tue, 6 Dec 2011 01:21:49 +0000 (11:21 +1000)]
Decrease debug output of modelview examples.

Change-Id: Idc7fd22f05eee7943c3b824a460897f13dc0408b
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoUse qt_Opacity in shaders
Alan Alpert [Tue, 6 Dec 2011 01:24:32 +0000 (11:24 +1000)]
Use qt_Opacity in shaders

Change-Id: Ie9da3e980ece4bcb71c0886d58bc46335f5289a6
Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
12 years agoAdd tests for snapOneItem/snapOneRow snapMode
Martin Jones [Mon, 5 Dec 2011 00:59:29 +0000 (10:59 +1000)]
Add tests for snapOneItem/snapOneRow snapMode

Change-Id: Ia7e8fe6a7da48d8f67914d90377c6fad32ecb415
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoRestrict particles to eight attributes max
Alan Alpert [Tue, 6 Dec 2011 01:09:53 +0000 (11:09 +1000)]
Restrict particles to eight attributes max

Change-Id: Ie42621ffc3601d730407e5d6eb88db5d93b415ff
Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
12 years agoFix image path
Alan Alpert [Mon, 5 Dec 2011 06:55:14 +0000 (16:55 +1000)]
Fix image path

Plasma Patrol wasn't finding a text mask.

Change-Id: I10934d3cecd076df885ba68833d7654f4b3978d0
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoEnsure that scarce resources work with var properties
Chris Adams [Mon, 10 Oct 2011 02:11:21 +0000 (12:11 +1000)]
Ensure that scarce resources work with var properties

Now that we have a new property type which stores JavaScript handles,
we need to ensure that scarce resources can be used with them.

Task-number: QMLNG-18
Task-number: QTBUG-21843
Change-Id: I4a920ae39e7d33cf5e33362e5e0ee21c74cb35e3
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDocument function limitation of var properties
Chris Adams [Thu, 1 Dec 2011 06:07:59 +0000 (16:07 +1000)]
Document function limitation of var properties

Functions cannot be assigned to var properties due to the fact that
such an assignment signifies a binding assignment.  This limitation
needs to be documented.  One workaround is to assign an array which
contains a function element to a var property, and this commit also
adds a unit test to ensure this works.

Change-Id: I02363b88233282106ac6d26f14df1988155057b9
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDisable tst_qdeclarativepixmapcache::dataLeak() by default
Chris Adams [Mon, 5 Dec 2011 03:16:54 +0000 (13:16 +1000)]
Disable tst_qdeclarativepixmapcache::dataLeak() by default

This test produces spurious output in the expected case and therefore
needs to be suppressed by default.

Change-Id: Ib309f96c0291180f2011451605eea7f9cea5744b
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDon't eval signal handler closure until signal is emitted
Aaron Kennedy [Mon, 5 Dec 2011 15:19:09 +0000 (15:19 +0000)]
Don't eval signal handler closure until signal is emitted

Change-Id: Ic3bd6ed53330b19567fa0bf34b8e4618e3f68ba5
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoAdjust the source location of the last accepted token.
Roberto Raggi [Mon, 5 Dec 2011 13:42:09 +0000 (14:42 +0100)]
Adjust the source location of the last accepted token.

This is necessary to get automatic semicolons inserted at the correct
location.

Change-Id: Ie3f806ed20704310cd6155f2dac6d0388a4a9f78
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
12 years agoFix crash when QtQuick 2.0 wasn't imported
Aaron Kennedy [Mon, 5 Dec 2011 14:10:59 +0000 (14:10 +0000)]
Fix crash when QtQuick 2.0 wasn't imported

The QML compiler still tried to resolve the implicit "Component" element
within the QtQuick 2.0 namespace.

Task-number: QTBUG-23017
Change-Id: I62ae962f58787910a76f76c872daa08874b5df56
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoIntroduce more generic fast property handling
Aaron Kennedy [Mon, 28 Nov 2011 16:04:33 +0000 (16:04 +0000)]
Introduce more generic fast property handling

Also reduce the number of direct calls to qt_metacall().

Change-Id: I04cd6e516a3e61058548309a19fe0b830f15c93f
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
12 years agoUse the texture atlas height to compute y coordinates
Gunnar Sletta [Mon, 5 Dec 2011 09:24:28 +0000 (10:24 +0100)]
Use the texture atlas height to compute y coordinates

Change-Id: Ib0266ef6a46f58fe2c2892b8be297efe2f85aa98
Reviewed-by: aavit <qt_aavit@ovi.com>
12 years agoDon't attempt to destroy a null persisted item.
Andrew den Exter [Mon, 5 Dec 2011 05:27:00 +0000 (15:27 +1000)]
Don't attempt to destroy a null persisted item.

Persisted items are still only constructed on demand so we can't
assume the object is non null.

Change-Id: I1ce9563eb3b9fb1ae611e8afcf9c8c74f0563aec
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix QQuickVisualDataModel test failure.
Andrew den Exter [Fri, 2 Dec 2011 05:56:45 +0000 (15:56 +1000)]
Fix QQuickVisualDataModel test failure.

When connecting the source object's notify signals to the proxy object's
the objectName property wasn't being skipped, this didn't matter much
before because the object name property didn't have a notify signal
and so was skipped anyway.  Adding a notify signal resulted in all the
signal connections being off by one.

The object list proxy meta-object also shouldn't assume that QObject
has only and only ever will have one property.

Change-Id: I238e05153446cbfdceea643963e3a26f665e41a1
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoFix loading imports from Qt resource.
Aaron McCarthy [Fri, 2 Dec 2011 03:35:07 +0000 (13:35 +1000)]
Fix loading imports from Qt resource.

Loading an import from a Qt resource fails because the url of the module
was erroneously being converted to a file:// url.  This results in a url
that looks like "file://:/MyModule".  Fixed by adding a check to see if
the module path is a resource path (starts with :) and if so constructs
a qrc:// url instead.

Change-Id: I41a24a93d085baaf68d58c4e991d6ba2aff5e7ff
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoDocument headerItem and footerItem of ListView and GridView.
Martin Jones [Mon, 5 Dec 2011 05:40:31 +0000 (15:40 +1000)]
Document headerItem and footerItem of ListView and GridView.

Change-Id: Icfa899bc8c8c7e40f79988700a94ee8480e42bd6
Reviewed-by: Martin Jones <martin.jones@nokia.com>
12 years agoMake particle shader more portable
Alan Alpert [Sun, 4 Dec 2011 23:22:48 +0000 (09:22 +1000)]
Make particle shader more portable

Change-Id: I699712f94ecb4d510d02919c1dcf69828c42a316
Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
12 years agoFix test failures due to invalid font metrics.
Andrew den Exter [Mon, 5 Dec 2011 01:01:15 +0000 (11:01 +1000)]
Fix test failures due to invalid font metrics.

Don't use QFontMetrics to determine expected text dimensions or
cursor positions in TextInput and TextEdit tests.  Instead Layout the
text with the same options as used by the item so the only error should
be due to error.

Task-number: QTBUG-21689
Change-Id: I7ba008d92f1ebb14c37ae7df06fdb11465c3225d
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoRevert "sync to an earlier qtbase"
Alan Alpert [Sun, 4 Dec 2011 22:23:22 +0000 (08:23 +1000)]
Revert "sync to an earlier qtbase"

This reverts commit 3a034c19c89c9528df8b7e2ee9e9a23bd7684958.
The conflicting change in qtbase was also reverted, so there should no
longer be a need for the earlier qtbase.

Change-Id: I91303410378e1a6e0f86286dd402810b24b6d4ec
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
12 years agoDon't delay mirroring until polish
Alan Alpert [Sun, 4 Dec 2011 23:23:34 +0000 (09:23 +1000)]
Don't delay mirroring until polish

Mirroring is not a good candidate for delays because it isn't always
able to trigger a new polish.

Task-number: QTBUG-22968
Change-Id: I1243aadea1202936255a42f77dea2b7571c52cab
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>