aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Support batching of rotated antialiased elements.Gunnar Sletta2014-02-041-6/+4
| | | | | | | | | | | | | | | | | | Change-Id: I67d961f23941ba5cfa16fd679b609cd0fc3071c7 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Normalize signal & slot signatures in connectionThiago Macieira2014-02-033-6/+6
| | | | | | | | | | | | | | | | | | | | | Profiling shows Qt Creator spends 2% of its load time normalizing Change-Id: I58132e11ab5fc942b04925c3bcc919165784a5d1 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* | | Add missing export macro to QQuickTransformSimon Hausmann2014-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-34736 Change-Id: Ic0ab7317c76417e6556bc0b26cad50416ba06e54 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | Fix nasty bug in property cache leading to inaccessible signal parametersSimon Hausmann2014-02-032-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The property cache among other things caches the parameter types and names of signals (instead of retrieving them from the meta-object each time). When this cache is created through createArgumentsObject(), the parameter names have to be provided, but the signature didn't enforce that because of the parameter names having a default value of an empty list. All call sites however provided the correct list, except for one in QQmlPropertyCache::methodParameterTypes. Consequently tst_qqmlecmascript::threadSignal() would fail occasionally because the first time this cache was "created" was when the "done" signal was emitted, which caused QQmlBoundSignalExpression::evaluate to call methodParameterTypes. If the signal data had not been cached so far, a new cache with an empty parameter name list was created. Later (in the second half of the test) a new signal handler was compiled and the property cache reported that the signal took no parameters. Change-Id: I19230d0fb1ddd54992f3d6251f82c489626662e7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Propagate JS code gen errorsSimon Hausmann2014-02-031-0/+5
| | | | | | | | | | | | | | | Change-Id: I3b99f3fc762df7ac820b26597bf809a80849b5ce Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix error reporting for invalid regexp property assignmentsSimon Hausmann2014-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | After recordError makes sure to return false to indicate the error condition to the caller. Change-Id: I7edcda9ea4c6898f1607824085b150dbe295aeb2 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix context sharing for imported JS files that have no import ↵Simon Hausmann2014-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | themselves They should share the imports from the importing context, which means context->importedScripts needs to be initialized before calling scriptValueForContext, because it accesses it. Change-Id: Ifed22555028e03d597954ba1a18e546bfb901c58 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix sanity checking of parameter names when connecting to C++ ↵Simon Hausmann2014-02-032-2/+17
| | | | | | | | | | | | | | | | | | | | | signals Change-Id: Ie2dc8689786a61fe5f38a0f91ff86f011e965b2d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix revisioningSimon Hausmann2014-02-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Always install the property cache on the ddata, not only for types with a VME meta object, as the cache has the correct revision cache. Change-Id: I82352df867c1045b37152013eb924aafde2ee874 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Allow function calls during initial binding evaluations and ↵Simon Hausmann2014-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | signal handlers Functions need to be setup first, like in the VME. Change-Id: I4d1cffa04cb2b3ba7027c3720d55133253a1bad7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix error message about final property overridesSimon Hausmann2014-02-031-3/+4
| | | | | | | | | | | | | | | Change-Id: Icb8c2dfc633a6c322d4448ce18e3c01e0311b0f4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix error messages when trying to create invalid property ↵Simon Hausmann2014-02-032-4/+33
| | | | | | | | | | | | | | | | | | | | | interceptors Change-Id: I3dd608bfceb04323f92503596b87bbcb4bf582fc Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix error message when assigning lists to singular propertiesSimon Hausmann2014-02-035-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | Also adjust the error message for the other compiler when trying to assign lists to script strings. Change-Id: I50f833c340f3634a59c5b36f30aeafc53003e65e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Don't allow setting the id property multiple timesSimon Hausmann2014-02-032-4/+7
| | | | | | | | | | | | | | | Change-Id: Ic7f1938dd048db6c6975d78ad4f69d3c646cece5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix error messages for binding vs. property declarationsSimon Hausmann2014-02-033-54/+76
| | | | | | | | | | | | | | | | | | | | | | | | Separate binding errors from property declaration errors - they were accidentally mixed up. Change-Id: Id2d5134dc98ee3e1d7ce0c3d356f165e144e0d82 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] CleanupsSimon Hausmann2014-02-033-123/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When creating the initial object tree from the AST, encapsulate the declarations and bindings in the QmlObject class, in order to centralize the redirection via declarationsOverride as well as the error handling. This also replaces the hashes to detect duplicate properties/signals from being QString based to simply use the existing string indices from the compilation unit. Change-Id: Ia6ceae56977a98b5c5a7a738bf983a731e608d46 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix invalid id error messaging for empty IDsSimon Hausmann2014-02-031-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | When an ID is specified as string literal, which is empty, don't try to take the literal quotes as ID. Instead it's empty and so an error needs to be thrown. Change-Id: I9b42295a33dceb3cc9e57456908c65bbc12eb296 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Try to resolve qualified enums at type compile timeSimon Hausmann2014-02-034-2/+186
| | | | | | | | | | | | | | | | | | | | | | | | ... by taking some code from the old compiler. This speeds up some bindings and maintains compatibility. Change-Id: If80b1e28214cb655f70fff01a8c885edcb2d3030 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix location reported on function declaration errorsSimon Hausmann2014-02-031-1/+1
| | | | | | | | | | | | | | | Change-Id: I7549930a1152c257b3da6951afefef5d8b783f32 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix datetime property conversion to match 5.1/5.2 behaviorSimon Hausmann2014-02-031-0/+6
| | | | | | | | | | | | | | | Change-Id: I22c3e3f8e9a06928a23700b657a656a0db37d48d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix signal handlers that are fuzzily matchedSimon Hausmann2014-02-034-12/+19
| | | | | | | | | | | | | | | | | | | | | | | | Use the same logic at object creation time as during the signal handler conversion phase. Change-Id: Idb48a3849da7b6543ec50c15e1ccbf2939c3ee39 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix location when reporting signal declaration errorsSimon Hausmann2014-02-031-1/+1
| | | | | | | | | | | | | | | Change-Id: Iaddb51cb7b0e28048761b98d6e48c70723cd5d00 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix signal handler parameters for overloaded signalsSimon Hausmann2014-02-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | When extracting the parameters for a signal, make sure to pick the original variant that has all the parameters. Change-Id: Ie28cb75ce32d8840812884ce2eef2934d473466c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Add support for signal handler objectsSimon Hausmann2014-02-034-5/+41
| | | | | | | | | | | | | | | Change-Id: I644dcea86fa886a6a2dc7cd230ad6942d165c4c5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix property declarations inside group propertiesSimon Hausmann2014-02-032-13/+34
| | | | | | | | | | | | | | | | | | | | | | | | Property declarations inside group properties as well as their initializers go into into the surrounding object. Change-Id: I5b2b0f7bc41daea1275eb17ed04560e17052ca42 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix location of errors in group property objectsSimon Hausmann2014-02-032-10/+7
| | | | | | | | | | | | | | | Change-Id: I63aa43ec7d9e90c1593c54dfc44890330c8669ae Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix recursive property validation across component boundariesSimon Hausmann2014-02-031-2/+7
| | | | | | | | | | | | | | | Change-Id: Ia2a6e9de534fcc4e3780544ad0d5708e656e11a1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | alloca() is declared in stdlib.h on BSD systemsGabriel de Dietrich2014-02-023-15/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... except on Darwin. Bonus change: Updated auto-tests trying to include 'alloca.h'. This is a follow up on 24c43a5748b8502. Change-Id: I299de00bf0dca7842470b158282daea221a10f2d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Use lookups for get/setElement in the interpreterLars Knoll2014-01-313-0/+47
| | | | | | | | | | | | | | | | | | | | | Significantly speeds up crypto.js Change-Id: Icd3d59bea3fe4427e93e9e10e3526178e8de859c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Remove unused macroLars Knoll2014-01-311-9/+0
| | | | | | | | | | | | | | | Change-Id: Ie7044aecad59197fd2cab17d5ddcc7c44ad2ad84 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Move ValueRef into qv4value_p.hLars Knoll2014-01-313-61/+80
| | | | | | | | | | | | | | | | | | | | | The ref class belongs logically together with the value. Change-Id: I40c0908715cbc8b2a5c51d2544cb06fcd8e25365 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Disentangle some includesLars Knoll2014-01-317-22/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | ScopedValue should require less dependencies. Hopefully we can then move it together with the main class definition at some point (ie. move ScopedValue int qv4value_p.h; similar for the other types). Change-Id: Ie7b31715cb718a90dba40845c7ae785a29855062 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Move Encode into qv4value_p.hLars Knoll2014-01-312-45/+49
| | | | | | | | | | | | | | | | | | | | | This is where the class logically belongs. Change-Id: I366013aad2c9b6324ae82ab5f3250f1d9c719da4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | CleanupsLars Knoll2014-01-3139-253/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove SafeValue, it was used to port over to an exact GC. Since we now have that, we can now safely merge it with QV4::Value again. Also rename SafeString to StringValue for better naming consistency. Change-Id: I8553d1bec5134c53996f6b0d758738a0ec8a2e4d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Get rid of the SafeObject classLars Knoll2014-01-314-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | Having SafeValue is enough, and we can pass an ObjectRef instead of a SafeObject * for function calls. Change-Id: I4e1435105403f8091b43eeda01303f9602c74235 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Move ArrayElementLessThen to qv4arraydata.cppLars Knoll2014-01-313-43/+43
| | | | | | | | | | | | | | | | | | | | | This is the only place the class gets used. Change-Id: Iebb0cba7af30c1b2da68f67596c349d5e20c5053 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Rename some filesLars Knoll2014-01-3153-810/+810
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename qv4value_def_p.h -> qv4value_p.h and qv4value_p.h to qv4value_inl_p.h. It makes more sense to have the class definition in the file that is named after the class and move the inline methods into a _inl file. Doing this now, as I expect we'll be needing a few more _inl files soon. Change-Id: Ib59e9380e9e976254c6b4369574157f39b1b5f51 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Implement Lookup::indexedSetterLars Knoll2014-01-3110-108/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | use this instead of the generic runtime method. This gives around 10% speedup for array heavy Javascript such as crypto.js. Change-Id: Ic8f478c5b18893f2ef49e3f658b1ef24ae22e64f Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Fix a bug in qmljs_set_element and improve it's performanceLars Knoll2014-01-311-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid expensive function calls for setting indexed properties in the common case. The spec requires us to read the value before writing it to check whether it's empty. In that case we need to fall back to the slow implementation that checks the proto chain. Change-Id: If278ba81f170d35c18135d2f8661459262e7e606 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Be stricter about the number of messages when testing profiler serviceUlf Hermann2014-01-311-1/+4
| | | | | | | | | | | | | | | | | | | | | It's better to fail a test than to crash on invalid array access later. Change-Id: Ia3d24218eba80f362908979720657312c8c6cd67 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Make the QML debug server thread safeUlf Hermann2014-01-302-115/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, if instance() was accessed concurrently we could run into various problems as the initialization wasn't synchronized. By putting most of the initialization into the constructor, wrapping it into a Q_GLOBAL_STATIC and discerning between accesses that need to wait for the initial "hello" packet and ones that don't the situation is improved. Change-Id: I182e8e6abf054b851ef7ea5f897d4a197a9da4bf Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Make QML import thread safe.Ulf Hermann2014-01-301-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | Protect the common qmlEnginePluginsWithRegisteredTypes by a mutex. Task-number: QTBUG-36542 Change-Id: Ia3c731f030b778d862239486cc6c1bfa441503e6 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | V4: remove unused field.Erik Verbruggen2014-01-302-9/+6
| | | | | | | | | | | | | | | | | | Change-Id: Ic62ac6be99b79aa2f8c37fc386fef6b04b480247 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Visualization modes for rendering.Gunnar Sletta2014-01-299-7/+388
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two ways of setting this right now. One is to set it on startup using an environment varible. QSG_VISUALIZE= "batches" - Visualize batchtes in the renderer. Merged batches are drawn with solid color and Unmerged batches are drawn with a diagonal line pattern. Few unique colors means good batching. Unmerged batches are bad if they contain many individual nodes. "clip" - Visualize clipping as red areas on top of the scene. "overdraw" - Visualize all items in 3D to highlight overdraws. This mode can also be used to detect geometry outside the viewport to some extent. Opaque items are rendered with a green tint while translucent items are rendered with a red tint. The bounding box for the viewport is rendered in blue. Opaque content is easier for the scenegraph to process and it can also be faster to render on some hardware. "changes" - Changes in the scenegraph are visualized with a flashing overlay with a random color. Changes on a primitive is visualized with a solid color while changes in an ancestor, such as a matrix or opacity changes is visualized with a pattern. The second way to set the visualization mode is to set it at runtime through QString QQuickWindowPrivate::customRenderMode. This "API" is string based so it is not tied to the batch renderer and in theory can support other custom renderers. The visualized elements do not respect clipping and rendering order is arbitrary. Change-Id: I31efbe53fc905145bf48080ede3e36945cb60dcf Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | | Change QQmlProfilerService::instance to be a getterUlf Hermann2014-01-293-29/+30
| | | | | | | | | | | | | | | Change-Id: Id2eb973443cc73aac3a06f94c98b52334d9766a3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Allow debug plugin registrations from other threads than main GUIUlf Hermann2014-01-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's no real reason to disallow that. The only thing we want to check there is that the registration doesn't take place in the debugger thread. Disallowing registrations from anywhere but the main GUI thread creates unnecessary problems with threaded QML profiling and debugging. Change-Id: Ic72d19237e2ddba02cc88f7f5a0743f6640fed4d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Properly wait for stdout in testUlf Hermann2014-01-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Assuming all output is available on the first readyReadStandardOutput() signal leads to flaky test results. Change-Id: I442d7edc905abc067d6c32a4a55afd42ed03e3c9 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Add test for shaping and rendering Sinhala textEskil Abrahamsen Blomfeldt2014-01-291-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | This is currently broken on Mac OS X, but the fix is nigh. Task-number: QTBUG-36056 Change-Id: I547f7961a2ca8c62301e15de486a6f75de26bc4a Reviewed-by: aavit <eirik.aavitsland@digia.com>
* | | [new compiler] Avoid uncreatable type errors for types that aren't createdSimon Hausmann2014-01-295-15/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | QtQuick.Keys for example is not creatable, but it's also never created but only used as attached properties. Therefore types used as attached properties create the needCreation = false flag in the referenced types. Change-Id: I6ca3a3ff677858bf3c55d3e08a0f0fc8ee9160fe Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | [new compiler] Fix timing of property assignment error handlingSimon Hausmann2014-01-294-263/+488
| | | | | | | | | | | | | | | | | | | | | | | | | | | Most property assignment errors are now handled at type compile time, just like in the old compiler. This speeds up the object creation code and restores behavior expected in the qqmllanguage tests. Change-Id: If213cd0bfa4dd51d9065c27809a79a6495c9f3ce Reviewed-by: Lars Knoll <lars.knoll@digia.com>