aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
Commit message (Collapse)AuthorAgeFilesLines
* Fix WinCE build.v5.2.0-alpha1Sérgio Martins2013-09-251-1/+1
| | | | | Change-Id: Ie0536ad94f88efe1e54226ed7f1d9e1042ffcc19 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Import QtQml instead of QtQuick now that Locale is available there.Mitch Curtis2013-09-251-1/+1
| | | | | | | 97feace2aaaf08075c17ea175a5ed0c12aa40a0d made it available. Change-Id: I4a263a26c1db164f410c49fe0fca776aed53f7e8 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Fix documentation of qmlProtectModuleTopi Reinio2013-09-251-3/+5
| | | | | | | | Fix the function signature used in \fn command and document the parameters. Change-Id: Ieda9b2b402886b81691195dbad17663fd454f282 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Fixed and updated Qt Quick's \qmlmodule pageJerome Pasion2013-09-254-5/+5
| | | | | | | | | | | -incremented version to Qt Quick 2.2 (in \qmlmodule page) -import changed to QtQuick 2.2 -\inqmlmodule no longer needs the version. QDoc will ignore the version but it is better to remove it now to avoid confusion Task-number: QTBUG-32172 Change-Id: I40b52e59667014720be40a35b3a8fb9836825e31 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Doc: Made \since commands in src/qml consistent.Jerome Pasion2013-09-253-6/+6
| | | | | | | | | | | | | | -QDoc displays the Qt version in the HTML output. -If there is only one argument to \since, QDoc assumes it is the Qt version. "QtQuick 2.1" -> "Qt 5.1" "QtQml 2.1" -> "Qt 5.1" "QtQuick 1.1" -> "Qt 4.8" Task-number: QTBUG-32172 Change-Id: I3c0da4dce8e44d717a6840bea250b4f0f9d78128 Reviewed-by: Martin Smith <martin.smith@digia.com>
* wince: Build fix, NtCurrentTeb() is not available in this platform.Sérgio Martins2013-09-251-0/+65
| | | | | | | | This was copied from qtscript's: src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp Change-Id: Iaa5549e6915aa4aa4bf532fbe7c9117a0858ff02 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix Component.onCompleted emission and bindings for composite typesSimon Hausmann2013-09-251-0/+3
| | | | | | | | | | | | When instantiating the composite type with a sub QQmlObjectCreator, make sure to link the componentAttached objects back into the parent creator. Similarly we need to collect the bindings the sub-creator created, as finalize() is only called on the top-level creator. Fixes remaining failures in tst_qqmllanguage::onCompleted Change-Id: If79b31ee94000aeec280284200df8ee97e57fd03 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix lookup scopes into the context objectSimon Hausmann2013-09-251-0/+2
| | | | | | | | | | | | | | | | | | | Given QtObject { property int value: 42 property var o: QtObject { Component.onCompleted: print(value) } } Should print 42 - the lookup for "value" should fail in the scope object (o) and succeed in the context object. Fixes part of tst_qqmllanguage::onCompleted Change-Id: If48d6a780aa0f3cb4a7757694f93359e57757973 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix component boundary detectionSimon Hausmann2013-09-252-1/+5
| | | | | | | | | | | For a component boundary, the type in question has to be an actual QQmlComponent. If it's a type that itself is derived from a component (type == 0 && component != 0 in typereference), then it is not a boundary. Fixes tst_qqmllanguage::componentCompositeType Change-Id: I938abe94c2fa4c69788176235ac74d0c6e385c0c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix bug in assigning to self-declared properties in child object literalsSimon Hausmann2013-09-251-3/+2
| | | | | | | | | When createInstance() calls populateInstance, make sure that the QObject used for bindings is the instance we just created, not the _qobject from the caller side (which is completely wrong and unrelated). Change-Id: I7dc44ffaa70799b2f37258aeacdb33d8a1cf8c48 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix assigning composite type object literals to object propertiesSimon Hausmann2013-09-251-1/+3
| | | | | | | | | When doing the assignability test, pick the property cache from our property caches for the created sub object and only otherwise fall back to the regular engine cache. Change-Id: I07b9746335a9a169e1055a3f4dc7fd3f0ab0fdef Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix bindings on properties in grouped value type propertiesSimon Hausmann2013-09-252-12/+36
| | | | | | | | | | | | | ... such as point.x: { someExpression } This requires special handling to install the QQmlBinding not on the value type itself (not possible) but on the point property itself. Fixes tst_qqmllanguage::valueTypes Change-Id: I8f95379e1872dff7cdcc0480c229a5e68f3cf575 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix setting the id property when also present in the type itselfSimon Hausmann2013-09-251-0/+14
| | | | | | | Fixes tst_qqmllanguage::idProperty Change-Id: I3051da6a55f29bfca58aa83647fe5d51fb2a67e0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix warnings about includes.Friedemann Kleint2013-09-252-2/+2
| | | | | | | | | QtQml: WARNING: qtdeclarative/src/qml/qml/qqmlabstracturlinterceptor.h QtQml: WARNING: qtdeclarative/src/qml/qml/qqmlfileselector.h includes qtqmlglobal.h when it should include QtQml/qtqmlglobal.h Change-Id: I1cc4e3a201e0f3bec34c5e4bca8ec1578c8b0224 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* V4 SSA: cleanup: rename single letter variables.Erik Verbruggen2013-09-251-40/+40
| | | | | | | Because "targetTemp" and "sourceTemp" is clearer than, say, t1 and t2. Change-Id: I5195c75f1958a3bea3c370924685ff6ba9c9c515 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4 SSA: change life-time interval coverage calculation.Erik Verbruggen2013-09-251-1/+9
| | | | | | | | When iterating over the ranges in a life-time interval, stop when the range starts after the position to check. Change-Id: Ib64cbfc644820fdb4c0167b8db0b40dacfb5d076 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4: enable register allocator on linux and macos on x86_64.Erik Verbruggen2013-09-251-1/+1
| | | | | Change-Id: I958cf90da5c44b0119c5666df6ed2e4820444841 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4 regalloc: fix intersection calculation.Erik Verbruggen2013-09-251-7/+10
| | | | | | | | | | | | | | The previous version was plain wrong: when the first interval had more than one range, those ranges would never be checked for intersection. This version iterates over all ranges in the first interval, and returns the index of the first range in the second interval that overlaps with that range. Iterating over the second interval is cut off when an interval is found that starts after the current one end (the ranges of both intervals are sorted). Change-Id: I87c254a645164eb6639925c2e3b7fd7c1b1bfa0a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4: fix move mappingErik Verbruggen2013-09-253-7/+9
| | | | | | | | | | | | When resolving conflicting register use between basic blocks, only insert the resolving moves into the successor when it has one incoming edge. Because of the absence of critical edges, this implies that it is also save to insert those moves into the predecessor block if there is more than one incoming edge (the predecessor will only have one outgoing edge). Change-Id: I83c41b4ca86946d3aa09619f20ddab3e692136f2 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4 JIT: fixes after NaN boxing changes.Erik Verbruggen2013-09-252-36/+44
| | | | | Change-Id: I22a1b46f488dc65513ed287dabe7d85469cc5173 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4: re-enable SSA transformation and optimization.Erik Verbruggen2013-09-252-2/+2
| | | | | | | But keep the register allocator disabled for now. Change-Id: I475835ec35ef31d76e084788a754c00b1f8fdda6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4 JIT: generate code for unary not operator.Erik Verbruggen2013-09-252-1/+17
| | | | | Change-Id: I00a47d261a76db0b938f8c9300be9afc06b42d02 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make qv4objectproto GC cleanLars Knoll2013-09-223-27/+29
| | | | | | | Fix the remaining usages of raw pointers into the GC heap. Change-Id: I3654a6f74fe6b59e25ed65a79ff02c29cc2cdecc Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix grouped property access for non-value type propertiesSimon Hausmann2013-09-221-9/+35
| | | | | | | | | | If we don't have a value type, read the grouped property as QObject instance and populate that instead. Fixes tst_qqmllanguage::deepProperty Change-Id: I9a8d5f929a9c0ebb39461863f6a93b3f35274f97 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix cases where mark() would access uninitialized memoryLars Knoll2013-09-2215-78/+87
| | | | | Change-Id: I4e07e20d30ba57759a0ece1c298a02b098718b33 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Prevent objects from being collected while in their constructorLars Knoll2013-09-2219-62/+150
| | | | | | | | | | | | | While objects are being constructed, we don't have a reference to them on the JS stack yet. So the constructor needs to protect itself against being collected by putting the this object onto the JS stack. Added an environment switch MM_EXACT_GC to test exact garbage collection. Change-Id: Ie37665a954de800359c272ffbebbe1488e7a8ace Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Convert the last methods in qv4object_p.hLars Knoll2013-09-2213-38/+49
| | | | | | Change-Id: I4fda83a0832760c277e629d4e658da718c0bf92b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix some more methods to take ValueRef'sLars Knoll2013-09-225-26/+28
| | | | | | Change-Id: Ia0e30ba98c16e51c9992027c7e5f78d4def8697a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix some smaller spec incompliances in Array.concatLars Knoll2013-09-221-11/+5
| | | | | | Change-Id: I4a2252ef590c0d48ba734f96c7478637e1ddfd07 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Make sure ScopedArrayObject works as intendedLars Knoll2013-09-221-0/+5
| | | | | | | | We need a proper cast method for the class. Change-Id: I8f2e4b3201d70e8fc90148f1780fd377057947bb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Change the runtime API over to using StringRef's instead of String*Lars Knoll2013-09-2212-171/+156
| | | | | Change-Id: I0ea95e6cca995dc5f98871f0369204af18e48111 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* remove debug outputLars Knoll2013-09-221-1/+0
| | | | | Change-Id: I168f24ac12715fc65abe230b2bd0f86f777eea00 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Convert Object::inplaceBinOp to be GC safeLars Knoll2013-09-223-54/+69
| | | | | Change-Id: I98a8591f4b556cc1d00271e6b389dc0d2c16e6ec Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Convert the remaining vtable methods to be GC safeLars Knoll2013-09-2221-61/+74
| | | | | Change-Id: I679d1833609c41d71e8436ec0ba8a4624f0c4dd0 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Convert putIndexed()Lars Knoll2013-09-2213-37/+51
| | | | | Change-Id: I7d02b0fdf45079d0f7afcfb6d3158dd60cb09f33 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* convert Managed::put() API to be GC safeLars Knoll2013-09-2234-197/+228
| | | | | Change-Id: I09198ce372fa545372db389fac26828d21ad5731 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Use a StringRef for Managed::get()Lars Knoll2013-09-2240-146/+192
| | | | | | | | | also store "toString" and "valueOf" as identifiers in the engine and fix two places where we compared strings the wrong way. Change-Id: I70612221e72d43ed0e3c496e4209681bf254cded Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Use StringRef for most methods in ObjectLars Knoll2013-09-2216-70/+103
| | | | | Change-Id: I8e2dad0e9e34c5a549952bc0765cd57f6aa8aadf Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Cleanup Object::define*Property APILars Knoll2013-09-2238-515/+500
| | | | | Change-Id: I99125908a9bc1d41a2642c409af9704def7a0832 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Add a Safe<T> class and start using itLars Knoll2013-09-2212-64/+133
| | | | | | | | | | The class denotes objects that are stored safely in areas controlled by the GC. These we can convert fast to a StringRef etc. Change-Id: I6b154eccaefddc42d4fafca55b7ee9e77179830c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Start using StringRef for parameter passingLars Knoll2013-09-2211-33/+37
| | | | | Change-Id: If2c41daeda2862cd1162c5da8163a9d62fe4111d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Introduce a Referenced<T> class to pass Objects into methodsLars Knoll2013-09-229-43/+99
| | | | | | | | | | Added some convenience typedefs (StringRef, ObjectRef, ReturnedString, ScopedString, ...) Used StringRef in newBuiltinFunction() for testing. Cleaned up the duplicated code for thrower functions. Change-Id: I7b7676690cbe70d9eabb0a5afd0d922f0be3aefd Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Cleanup ExecutionEngine::newBuiltinFunction() usagesLars Knoll2013-09-2211-82/+56
| | | | | | | And change the return type to be GC safe Change-Id: I6d7513962370fea4072a3d8c6b2c6f2d1705992e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Don't use Value::emptyValue() anymore.Lars Knoll2013-09-2218-56/+61
| | | | | | | | | | emptyValue is special and reserved for usage inside the engine to mark missing values. The main to use cases are when converting property descriptors, and to mark holes in array data. Change-Id: I0ed357e65102b1041bf9a878e6e9a4ae0657523b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Further work towards an exact GCLars Knoll2013-09-2240-496/+776
| | | | | | | | | | | Add some more convenience in the helper classes in qscopedvalue_p.h Make accesses to CallData safer, and change ExecutionEngine::newObject() to return a safe pointer. Change-Id: I980909754ce9681cf6faa1355bab3a1e5d6dd186 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Animators - Render thread animation systemGunnar Sletta2013-09-212-0/+8
| | | | | | | | | | | | This introduces 6 new QML types for animating state in the scene graph when the UI thread is blocked. The QObject property being animated is updated after the animation completes. It works also with the "windows" and "basic" render loops, but offer litte benefit then compared to in the "threaded" case. Change-Id: Ic19e47c898c0b8bd53e457db922b3c9c457c8147 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge branch 'wip/v4' of qtdeclarative into devSimon Hausmann2013-09-216-17/+41
|\ | | | | | | | | | | Pull in the remaining bits of the new compiler/vme branch. Change-Id: I4706011c5eaf35f893d0733c4e130a31ce0ebb66
| * [new compiler] Add support for default propertiesSimon Hausmann2013-09-201-3/+13
| | | | | | | | | | | | | | | | | | | | When trying to determine the destination property for a binding, properly fall back to the default property if existent. Fixes tst_qqmllanguage::simpleContainer Change-Id: Icb7752f088e92e09f03b1b66f43c882e7089f3cd Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * [new compiler] Fix binding evaluationsSimon Hausmann2013-09-201-2/+2
| | | | | | | | | | | | | | | | | | All created bindings are activated at finalization time and given sub-objects they're all collected in allCreatedBindings. When populating that, make sure to populate the right variable before the qSwap. Change-Id: Ibf5b55aca933c062e1ffcac327214c73a2ae6348 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * [new compiler] Fix local variable declarations in binding expressionsSimon Hausmann2013-09-201-1/+4
| | | | | | | | | | | | | | Always look up locals by name Change-Id: I2fa14499f6d8749f450bfe2b8a53d684b93bd1dc Reviewed-by: Lars Knoll <lars.knoll@digia.com>