aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvme.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stable' into devGunnar Sletta2013-01-171-1/+1
|\ | | | | | | | | | | | | | | Conflicts: src/qml/doc/qtqml.qdocconf src/quick/doc/qtquick.qdocconf Change-Id: I087fa14720995a5e53c43567dc4a3c29eb9992a9
| * Update copyright year in Digia's license headersSergio Ahumada2013-01-101-1/+1
| | | | | | | | | | | | Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* | Move VME exception to a better placeAlan Alpert2013-01-081-4/+5
|/ | | | | | | | | If o is not created, then ddata on the next line may also not create successfuly leading to an invalid memory access before we reach the !o exception. Change-Id: I9b127dff7955456aacb25138fabaabaabaab921f Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
* Only free context if the owning QV8ContextResource gets destroyedPhilip Lorenz2012-12-101-0/+1
| | | | | | | | | | | | | | | | | | Since fdeee38b781376012c4f086276c3c376726c8839 QQmlXMLHttpRequest stores the calling context for later use. This leads to issues after the first request completes and the wrapping QV8ContextResource gets freed by garbage collection and therefore removes the associated QQmlDataContext which may still be required for later calls (e.g. if the calling context is part of a stateless library). This patch introduces an ownership flag for QV8ContextResource which indicates if the associated context should be cleared when the object is destroyed. Task-number: QTBUG-28351 Change-Id: I552ebb5c55b889eb33f3884283c8fdf037ac33be Reviewed-by: Alan Alpert <aalpert@rim.com>
* Enable mobule build with QT_NO_TRANSLATIONTasuku Suzuki2012-11-261-0/+2
| | | | | | Change-Id: Id7aeef0d499f48ddc64b4ea3e4dc713db8458c38 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Alan Alpert (RIM) <aalpert@rim.com>
* Add designer support for animations and componentCompleteMarco Bubke2012-11-221-16/+16
| | | | | | | | | In the designer animations confuse users, if you change a state or move a item around. Also component complete is called later by the designer. The call in the VME is to early. Change-Id: I49aa04edbc49fb44ddb7b52062307982865efd7e Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
* Change qml list interfaceMarco Bubke2012-10-231-3/+8
| | | | | Change-Id: I185c6f4cef6105544504324c1616b5995c219fe3 Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-231-24/+24
| | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add a Q_UNREACHABLE to improve code generation a littleThiago Macieira2012-09-131-0/+1
| | | | | | | | The code can't reach there anyway, so let's help the compiler out a little. Change-Id: Icee6ebe426c1116a7baaf2c5766c6d8f8276f3ac Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Make the instruction table be constThiago Macieira2012-09-131-4/+4
| | | | | | | It's never going to be modified, so it should be const. Change-Id: Ibc3bac0583f72ccbf7caa69aeab029bae03d3cdd Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Evaluate bindings more intelligently during constructionAaron Kennedy2012-08-291-8/+25
| | | | | | | | | | | | | | | | | Instead of just evaluating bindings in a fixed order, and possibly having to evaluate a single binding multiple times, prior to reading a property, we check if there are any bindings "pending" on it and evaluate them then. A pending binding is one that has been assigned to the property, but not yet evaluated. To minimize side effects we only do this for "safe" bindings. A safe binding is one that has no side effects, which we currently define as not calling functions or otherwise assigning values during its evaluation. This isn't an entirely foolproof way to ensure that the evaluation has no side effects, but it should be good enough. Change-Id: I98aa76a95719e5d182e8941738d64f8d409f404a Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Avoid dynamic lookup of signal handler argumentsMichael Brasser2012-08-241-1/+4
| | | | | | | | | | | Rewrite signal handlers to include the parameters in the rewrite. Also check whether parameters are actually used when possible, and if not don't provide them to the expression. Change-Id: I7d65c05f4639979dd61035cf7478119ef7647c25 Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Reduce memory consumption in QV4Bindings::BindingMatthew Vogt2012-08-171-3/+1
| | | | | | | | As with QV8Bindings::Binding, access details from the QML IR instruction object rather than storing a copy of the values. Change-Id: I2b629ee1b06ed74c7b38e6d047ef6a98acd45086 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Reduce memory consumption of source coordinatesMatthew Vogt2012-08-161-2/+2
| | | | | | | | | | Reduce memory consumption by storing source location coordinates as 16-bit variables (in run-time structures). Also modify qmlmin to restrict line lengths so that the column bound is not normally exceeded. Change-Id: I08605626ffbdf081b6da2aea1116bdfe24998572 Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
* Permit value types with metatype IDs >= QMetaType::UserMatthew Vogt2012-08-101-14/+14
| | | | | | | | | Remove the assumption that value types must be types defined by Qt, having metatype IDs below QMetaType::User. Task-number: QTBUG-26352 Change-Id: Ib5a56ff2e7892e82adf17a3a1e7517a0c9fe0534 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Make QQmlScriptString opaque.Michael Brasser2012-08-031-4/+4
| | | | | | | | Allow for future optimization by encapsulating the raw script data. Change-Id: I1863103e8e6d74ede60593cabb240e16f2ae657e Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Improved error messages for malformed .import statementsMatthew Vogt2012-07-111-2/+7
| | | | | | | | | Report errors in .import statements, rather than pass them through to V8 to yield 'Syntax error'. Task-number: QTBUG-24867 Change-Id: I111b3bd3d198e97f42b29591f61753e86295aeb2 Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
* Use V4 binding for non-final properties where possibleMatthew Vogt2012-07-091-2/+2
| | | | | | | | | When a property referenced in a binding is not marked as final, do not automatically abort optimization. Instead generate both V4 and V8 binidngs, and only fall back to the V8 binding if necessary at run time. Change-Id: I1bcc7e2b495935c5d519a9a223f640c1972cdb4e Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Disallow parent changes for QML created objectsAaron Kennedy2012-06-061-7/+6
| | | | | | | | | Currently this is protected with a QML_PARENT_TEST environment variable to allow the rest of QtQuick to be updated before it is enforced. Change-Id: I4dd3644cbbce91d67f24c9556637f97eafb00638 Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Send valueTypeIndex to setBindingNoEnable in the expected format.Michael Brasser2012-06-041-2/+3
| | | | | | | Ensure we send a -1 if the property is not a value type property. Change-Id: Ic4fa6954a0bcfd32d50da565f82f21f17d81ac9b Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Lazily create QMetaObjectsAaron Kennedy2012-05-241-14/+8
| | | | | | | | | | For internal QML built types, creating a metaobject each time is just wasteful. Additionally, as the property caches were always created from the intermediate QMetaObject, it was difficult to pass information directly from the compiler to the property cache. Change-Id: I769526b0edaaf16a86883f3065b75618b94e4077 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Enable binding to properties of type QJSValue.Andrew den Exter2012-05-241-0/+5
| | | | | | | | | This allows javascript objects of all types to be bound to properties declared in c++. Compared to a QVariant the primary benefit this offers is a type which functions and objects with functions can be bound to. Change-Id: Idb3313e7ff1d616ab12d44f616083c8296201f3a Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* QtDeclarative: Fix warnings about deprecated QCoreApplication::translate().Friedemann Kleint2012-05-221-1/+0
| | | | | Change-Id: I4abd4ee98ca9d4267c5ad71d3b9c2e7d5de60902 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Allow the existence of a VME metaobject to be assertedMatthew Vogt2012-05-211-3/+4
| | | | | | | | | Test for the existence of a VME metaobject. Otherwise, assertion of a static cast result is not meaningful. Change-Id: Ic9e9c38e5dce65c41d20e405c33e179334c37b00 Reviewed-by: Michael Brasser <michael.brasser@nokia.com> Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* Add QQmlEngine::trimComponentCache()Matthew Vogt2012-05-171-8/+29
| | | | | | | | | | | | Allow unused data in the engine's component cache to be safely discarded so that the memory can be freed for other purposes. Unloading of scripts that are no longer required after trimming unused components is not yet supported. Task-number: QTBUG-25653 Change-Id: I37bc9d5592eeb5edceeb34d010a555dcffd11cea Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Permit signals to be emitted in a different threadAaron Kennedy2012-05-111-1/+1
| | | | | | | | | | | | The QQmlNotifier approach to connecting to signals did not support the cross-thread signal/slot model used elsewhere in Qt. This change allows one specific case of that - emitting a signal in a different thread than the one the QObject lives - to work. Task-number: QTBUG-25647 Change-Id: Ia8fdaf4c7d7e2ccd7ff7657bb1d8e26277eb60aa Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
* Allow V4 bindings to be assigned to aliasesMichael Brasser2012-05-101-4/+13
| | | | | | | | V4 bindings must be able to be retargetted for them to be assignable to aliases. Change-Id: I4d3addd0fdc90b9bf472c781d316f7f406eaf1d7 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* Better checking top level root object creation statusCharles Yin2012-05-091-5/+6
| | | | | | | | Add QQmlContextData::isRootObjectInCreation flag, only set it to true in Init qml instruction, once a root ojbect created, set it to false and set QQmlData::rootObjectInCreation to true. Change-Id: Iba7b348ab664a472280d8d7283e93787b3dd0a56 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* Minor optimizations and cleanupAaron Kennedy2012-05-041-1/+2
| | | | | Change-Id: Iecbd5c46af00f649b1f1d78cdf5f2b40a2844897 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* More robust tracking of signal handler expression ownership.Michael Brasser2012-05-011-1/+1
| | | | | | | Reference count the expressions, and improve testing. Change-Id: I810509eae1c7608b367e9ff5f7891a294667a692 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* Prevent object being delete by GC before object is fully createdCharles Yin2012-05-011-0/+6
| | | | | | | | | | Add a new flag inCreation to QQmlData. Set it to true when a top-level object begins creation, and back to false when initial creation is finished and the object has been marked indestructible. In the GC callback function, if inCreation is true, skip the GC and make a weak reference for next GC loop. Change-Id: I4ec82864c52f6be0c3e6ef892474dd77d835e152 Reviewed-by: Michael Brasser <michael.brasser@nokia.com> Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-04-111-42/+44
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlprofilerservice_p.h src/qml/qml/qqmlboundsignal.cpp src/qml/qml/v4/qv4bindings.cpp src/quick/items/qquickshadereffect.cpp src/quick/particles/qquickcustomparticle.cpp src/quick/qtquick2.cpp Change-Id: Ia9c6517035ae912fa75e77473a452bd3383def56
| * Do not execute overwritten bindingsAaron Kennedy2012-04-041-1/+13
| | | | | | | | | | | | | | | | | | During the construction of an object, internal bindings can be overwritten by the initialization of objects with outer scope. Task-number: QTBUG-23138 Change-Id: I46a187d9cdc41f4dd96d068f39788a2255b8888d Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
| * Revert "Do not execute overwritten bindings"Aaron Kennedy2012-04-041-39/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 639208cc7f3ab3d8356363559e8fcf168e32cf0b. There were two problems with this submit: 1. Maintaining a hash of all the properties we have assigned bindings to is massively inefficient. 2. The autotest was in the qquickbinding testcase which is for the QtQuick "Binding" element, not for generic binding tests. Change-Id: Id2150dbfe86c6844cc0b115d7f941ae8d6a60643 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
| * Do not execute overwritten bindingsMatthew Vogt2012-04-041-9/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | During the construction of an object, internal bindings can be overwritten by the initialization of objects with outer scope. To yield the expected result, suppress the evaluation of inner bindings that are overwritten by outer bindings, during the completion phase of object creation. Task-number: QTBUG-23138 Change-Id: I679309543a9b64c774bb99798ad5ccf518726d10 Reviewed-by: Chris Adams <christopher.adams@nokia.com> Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
| * Use scope, not owner to look up enums in QQmlBoundSignal.Michael Brasser2012-04-031-1/+0
| | | | | | | | | | | | | | | | With this, we no longer need to keep a pointer to the owner, so remove it as well. Change-Id: I0c38645b924bf5b0caadb46444cf6dd09abc1eb2 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
| * Revert "Add QQmlBoundSignalNoParams"Michael Brasser2012-04-031-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ec7deb3d123bb44b5d57590615a60ed48b1d2860. Other Qt modules may be relying on QObject::receivers() to know when there is a QML signal handler for a signal, and using QQmlNotifierEndpoint in QQmlBoundSignalNoParams breaks this assumption. Change-Id: I1b8085254697d909f85a88617eb4e3f258b88950 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
| * Allow V8 bindings to be assigned to aliasesAaron Kennedy2012-03-301-31/+26
| | | | | | | | | | | | | | | | | | V8 bindings must be able to be retargetted for them to be assignable to aliases. Change-Id: If72ff2a24188667113cbb46439129f8d2fcb8f90 Reviewed-by: Chris Adams <christopher.adams@nokia.com> Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
| * Use minimal javascript expression for bound signalsChris Adams2012-03-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | Previously, QQmlBoundSignal used QQmlExpression internally. This commit adds a new, more optimal QQmlJavaScriptExpression subclass specifically designed for QQmlBoundSignal, and converts the code to use it instead of QQmlExpression where appropriate. Task-number: QTBUG-24460 Change-Id: I2865a119ce840235e27a7722d8052ca61c265f69 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-271-2/+7
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlenginedebugservice.cpp src/qml/debugger/qqmlprofilerservice_p.h src/qml/qml/qqmlboundsignal.cpp src/qml/qml/qqmlpropertycache.cpp src/quick/util/qquickimageprovider.cpp Change-Id: I0609aa5ed54c7769f1e2773a96a7cd43a69f133c
| * Add QQmlBoundSignalNoParamsqt-v5.0.0-alpha1Michael Brasser2012-03-271-2/+6
| | | | | | | | | | | | | | | | This class is used for signal handlers with no parameters, and is more lightweight than QQmlBoundSignal. Change-Id: Ie63eb989d334906657fd16fe35386df198654c28 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
| * Remove QObject parenting from QQmlAbstractBoundSignal.Michael Brasser2012-03-261-0/+1
| | | | | | | | | | Change-Id: If549cf57bbac18a986a2a0e63fdc76902d2dae43 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-231-1/+1
|\| | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlboundsignal.cpp src/qml/qml/qqmlpropertycache.cpp Change-Id: I5193a193fa301c0b518291645bf626a5fa07118f
| * Always enable value type support in v4.Michael Brasser2012-03-201-1/+1
| | | | | | | | | | Change-Id: Ifb4e44aa6d2f13c79319d03e0fd7a4c0c3db06d8 Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
* | Migrate gui dependencies from QtQml to QtQuick.Matthew Vogt2012-03-201-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | Ensure that users of declarative that have no need for functionality provided by the Qt Gui module do not have to link against it. Any use of QtGui functionality is delegated to providers that can be installed by another library; QtQuick adds default providers for this functionality when linked against QtQml. Task-number: QTBUG-24559 Change-Id: I5e6a58a4198732dc2f8f52f71abfa1152b871aa7 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-191-5/+5
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlenginedebugservice.cpp src/qml/qml/v8/qv8qobjectwrapper.cpp src/quick/util/qquickimageprovider.cpp tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp Change-Id: Ie78ba2fabd32f4812bcae9dbdd66ed289dc11dcb
| * Remove binding dependency on QQmlExpressionAaron Kennedy2012-03-151-5/+4
| | | | | | | | | | | | | | | | This is the first step to creating much lighter weight bindings that are tuned for the specific scenario in which they're used. Change-Id: Ib985dcff25679b711b5c634bbc891aa7902bf405 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
| * Move binding and expression classes to separate filesAaron Kennedy2012-03-131-0/+1
| | | | | | | | | | Change-Id: Ia9c6996a606e140f31681ecd26d93b1b0fdedf02 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* | Adapt to Qt5 meta-object changesKent Hansen2012-03-131-3/+6
|/ | | | | | | | | | | | | | | | | | | QMetaMethod::signature() has been renamed to methodSignature(), and it now returns a QByteArray. Also, the new function QMetaMethod::isValid() should be used to determine whether a method is valid, instead of relying on signature() returning a 0 pointer. Where it makes sense, the existing code that was using signature() and parameterTypes() has been changed to use the new API QMetaMethod::name(), parameterCount(), and parameterType(int). Also, in the new meta-object revision (7), the QMetaObject stringdata member is now of type QByteArrayData*. QFastMetaBuilder will be ported to generate the new format, but for now it's sufficient to reinterpret_cast the stringdata assignment to keep it compiling. Change-Id: Ie340ef17bcebc3afa4aae6450dfe2d06e4d881a4 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
* Rename QDeclarative symbols to QQuick and QQmlMatthew Vogt2012-02-241-0/+1370
Symbols beginning with QDeclarative are already exported by the quick1 module. Users can apply the bin/rename-qtdeclarative-symbols.sh script to modify client code using the previous names of the renamed symbols. Task-number: QTBUG-23737 Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66 Reviewed-by: Martin Jones <martin.jones@nokia.com>