aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml
Commit message (Collapse)AuthorAgeFilesLines
* Fix QQmlComponent::errors() documentationMitch Curtis2015-12-111-1/+1
| | | | | Change-Id: I3b65a6aea614a01e36f0fb9e93bb8a9c929ad919 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Fix link to QQmlError in QQmlComponent documentationMitch Curtis2015-12-101-1/+1
| | | | | Change-Id: I4549acabec366bb17512aad20a943b6b2f813801 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* Don't normalize the path via the shell if it is a qrc based pathAndy Shaw2015-11-101-0/+3
| | | | | | | | | | | Passing a qrc based path to shellNormalizeFileName() was causing problems with the Windows API. Since it won't change the path in this case anyway because the path is not valid on the file system then there is no need to do any checking. Task-number: QTBUG-46248 Change-Id: If20075c25aade3740287250b4e1f31538b398f8f Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Disable Clang warning -Wheader-hygiene.Marcel Krems2015-09-251-0/+4
| | | | | | | | | | | qqmlinfo.h:51:17: warning: using namespace directive in global context in header [-Wheader-hygiene] In this case the use of the using directive is intended. See also: 0181dc283f6a783783b7e622b4e2dc241edd8a54 Change-Id: I8f94cefdab7ce70e375ad8b01f59eb0f9d840708 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Fix QQmlComponent::beginCreate documentationMitch Curtis2015-09-151-2/+2
| | | | | Change-Id: I4ef2cfc83d308a017ef4a98eac94aac52c49d117 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Document that modifying the globalObject of QQmlEngine is not supportedMitch Curtis2015-09-091-1/+1
| | | | | | Change-Id: I62feb04ae26b6988c6e392b27bd1c3b7f630fd57 Task-number: QTBUG-48175 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Fix compilation with ICC on WindowsThiago Macieira2015-09-021-4/+0
| | | | | | | | | | | | | | | | | | QV4::Managed is not copyable and its default constructor is deleted. However, it and classes derived from it are exported, which on Windows means the compiler will instantiate all possible functions and add to the DLL. ICC on Windows, unlike MSVC, attempts to instantiate the default constructor of the derived classes (like CallContext) and then the build fails due to the deleted Managed() constructor. Instead, use V4_MANAGED to mark each and every managed class as non- default-constructible and non-copyable. Only one note: the V4_MANAGED macro in QV4::Managed itself takes different parameters, so it needs to be slightly different. Task-number: QTBUG-48063 Change-Id: I42e7ef1a481840699a8dffff140007c65a7a35db Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Don't consider QLocale a value type.Mitch Curtis2015-09-021-1/+2
| | | | | | | | | | This fixes a regression where all of the properties of Qt.inputMethod.locale were undefined. Change-Id: Id33890a78296709baad6aeda96d74ca8cb39c61d Task-number: QTBUG-47916 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Doc: broken links and missing doc for functionsNico Vertriest2015-09-021-0/+10
| | | | | | | Task-number. QTBUG-43810 Change-Id: I14e03317d7470f33a899ba05b62b3d68fdb03734 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Doc: added documentation to undocumented methodsNico Vertriest2015-08-043-1/+19
| | | | | | Task-number: QTBUG-36985 Change-Id: Idc6f7961f4f02f66dc3d4a8e5d09dd15d43b7757 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* Consolidate duplicated QQmlExtensionPlugin documentation.Mitch Curtis2015-08-031-65/+1
| | | | | | | | There have already been doc improvements made to one of the duplicated pieces and not the other. This patch uses the improved one. Change-Id: I12a6cb013e61f63e67fb9d691ee58ba12e21054d Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* Use the new macros for disabling warnings in qtdeclarativeThiago Macieira2015-07-281-7/+3
| | | | | Change-Id: I476da50ba23598c7ca98651477fb701f74053b82 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* add null check for qmlRegisterSingletonType()Tasuku Suzuki2015-07-241-0/+3
| | | | | | | | | | When the callback passed to the function returns nullptr, QQmlData::ensurePropertyCache(e, o) crashes. Change-Id: I11efd7e9d6c5f18611e796d896384dd14a280303 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Christopher Adams <chris.adams@jollamobile.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Fix possible stack overflow with many property bindingsEskil Abrahamsen Blomfeldt2015-07-213-29/+62
| | | | | | | | | | | | | | | | | | | | | When there are a lot of bindings to the same property (like 20 000), we would get stack overflows because the notify list for the changed signal was traversed recursively. Changing this also speeds up the traversal. I see something like ~40% reduction in the case of layout() for a notify list of around 200 items. Note: To make it possible to traverse the double-linked list backwards, the next-pointer needs to be moved to the beginning of the struct, because the implementation pattern assumes this (node->next->prev = &node->next). I think this code has rotted after it was added, since the prev pointer was never actually used anywhere before. Change-Id: Icdfac50b7c8584a908efa65694c7f5f416cb153b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Doc: replace Mac OS X with OS XNico Vertriest2015-07-151-1/+1
| | | | | | Task-number: QTBUG-40759 Change-Id: If21b4551eb95af3370cc21edd7a6721fc06e1346 Reviewed-by: Martin Smith <martin.smith@digia.com>
* QtQml: Fix const correctness in old style castsThiago Macieira2015-07-0910-20/+21
| | | | | | | Found with GCC's -Wcast-qual. Change-Id: Ia0aac2f09e9245339951ffff13c958364a2e9859 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5.0' into 5.5Liang Qi2015-06-264-11/+81
|\ | | | | | | Change-Id: I4020a1b3c59dea18faf7cbcbb78b90fcfc3680f0
| * Make argument to QQmlDebuggingEnabler::startTcpServer an enumUlf Hermann2015-06-101-7/+18
| | | | | | | | | | | | | | | | | | The bool argument is less intuitive as you don't know if e.g. true means "Yes, run the QML" or "Yes, block the QML engine". Task-number: QTBUG-46565 Change-Id: I6d268e1354cebeb794b065e118bc0c353d7dd59a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Add left, right, top and bottom properties to basic QML rect type.Mitch Curtis2015-06-033-4/+63
| | | | | | | | | | | | | | Task-number: QTBUG-45528 Task-number: QTBUG-45530 Change-Id: I83c4056b4bde37ef2dc4424ffddd823c1654d92e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Doc: resize tables with overflowNico Vertriest2015-06-251-2/+2
|/ | | | | | Task-number: QTBUG-46475 Change-Id: Iebb2f7677f8b514d2b3e08480abfc98a0e155c1c Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* Fix null pointer dereference in QQmlImportNamespaceVishesh Handa2015-05-201-4/+6
| | | | | Change-Id: Iaf61f38790b0dfddb924043e0a25eb8a882571c8 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Fix memory corruption when sharing QObjects between different QML enginesSimon Hausmann2015-05-081-6/+7
| | | | | | | | | | | | | | When marking the JS wrappers for QObject manually, we cannot use ddata->jsWrapper directly but we must respect the case where the same object is exposed to different engines and then we must mark the wrapper that belongs to the engine that is currently collecting garbage. Change-Id: If82883c762ccaf3431e7074243ff2ff703234d66 Task-number: QTBUG-44895 Reviewed-by: Marco Martin <mart@kde.org> Reviewed-by: Jan Kundrát <jkt@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
* Fix memory corruption when multiple QML engines have JavaScript wrappers for ↵Simon Hausmann2015-05-081-2/+2
| | | | | | | | | | | | | | | the same QObject It's possible that the same QObject is exposed to multiple JavaScript environments, for which we have this "extra" hack in the form of a QMap. The common case is that QQmlData has a QV4::WeakValue that points to the JS wrapper for the object. However in the rare case of multiple exposure, a map in the other engines stores those references. That map was erroneously storing pointers to temporary values on the JS stack instead of heap pointers. Change-Id: I8587f9921a9b4f9efd288326d00cebc25ad0bc12 Task-number: QTBUG-45051 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix default value for XMLHttpRequest.response propertySimon Hausmann2015-05-031-1/+1
| | | | | | | | | | | | | | The default value for responseType is the empty string, for which the expected data type for the response property is a string - same as when the response type is set to "text". In other words: By default the response property should contain the string representation of the data. Task-number: QTBUG-45862 Change-Id: I563160e5cdfbf93aca7e283e455d77a6b9deceb4 Reviewed-by: Pasi Keränen <pasi.keranen@digia.com> Reviewed-by: Valery Kotov <kotov.valery@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Only heap allocate binding bits storage if needed.Aaron Kennedy2015-04-272-15/+43
| | | | | | | | | | | | | | | | | | | | For samegame, this has the following change on the total bytes allocated: Startup (main page): Before: 1636 After: 1072 Difference: 564 bytes (-34%) Actual game (single player): Before: 14120 After: 10432 Difference: 3688 bytes (-26%) Done-with: Robin Burchell <robin.burchell@viroteck.net> Change-Id: I10fd1e9f1440dcff93aed06e2c77c2912bc7dd39 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> (cherry picked from commit 54a19db8d00b67044861c8ffd1d5b1e646658609) Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4: include alloca private header as alloca is used unconditionally.Pasi Petäjäjärvi2015-04-221-0/+1
| | | | | Change-Id: I9d0f63c41609c4aaef272fabafd5b1272853a099 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Eliminate remaining property cache string lookups upon object instantiationSimon Hausmann2015-04-211-4/+5
| | | | | | | | Even for the id property binding we can use the property data cache and therefore avoid string hashing. Change-Id: Id9a4ca3159cdfe5ba93060f1bc8626e70140daa1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Speed up instantiation of objects that are assigned to list propertiesSimon Hausmann2015-04-211-3/+10
| | | | | | | | | | For example massive amount of Item{} objects that are "children" of another item and thus get assigned to the default data list property. Instead of repeatedly retrieving that list property via a meta-call, we can do that only once and re-load if necessary. Change-Id: Ia7d10b84b3c7dca58d9f0b4b2138bd6f916c128d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Speed up property binding initialization on object creationSimon Hausmann2015-04-212-47/+38
| | | | | | | | | | Avoid repeated string hashing and lookups in the property cache in order to retrieve the property details when initializing literal and script bindings. Instead we now cache the property data at type validation time, similar to how the property data was encoded in the VME instructions in the old engine. Change-Id: I3957c7c4c3e26dfa97c4880b23940a3755ee90e4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Address uninitialized pointer variablesHolger Hans Peter Freyther2015-04-202-0/+4
| | | | | | | | Coverity CID 10721, 84861, 86705, 85424, 85422, 85259, 84863, 84857 Change-Id: Ia86970b5ac4e0be9de01b79b618d33011da6a328 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Fix forward declaration of QQmlSourceLocation.Friedemann Kleint2015-04-171-1/+1
| | | | | | | | Fix warning: qtdeclarative/src/qml/qml/qqmljavascriptexpression_p.h(55) : warning C4099: 'QQmlSourceLocation' : type name first seen using 'struct' now seen using 'class' Change-Id: Id441502913180631fe09c2f256498063c8f144b1 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5Liang Qi2015-04-161-2/+9
|\
| * Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-161-2/+9
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/qml/debugger/qv4profilerservice/qv4profilerservice.pro tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler.pro Change-Id: I76d87e3df97ebdba902ca3d7488c1582eca2a83c
| | * Add note clarifying return value of Qt.openUrlExternally()Aaron McCarthy2015-04-021-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some platforms (notably wayland and xcb) the Qt.openUrlExternally() call returns as soon as the request is passed to the underlying system. The call may still fail, but this status is not reported to the application. Change-Id: I66936440f162154f08ab5abcf5b449844930a81b Reviewed-by: Valerio Valerio <valerio.valerio@jollamobile.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | | Speed up composite type instantiation with lots of IDsSimon Hausmann2015-04-163-28/+13
| | | | | | | | | | | | | | | | | | | | | | | | We don't need to convert from a QHash to a QVector in order to populate the property name cache in QQmlContextData. Change-Id: Ifa8e4f64a1e174907e92684b2d38abaf0a4a705c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up object creationSimon Hausmann2015-04-169-23/+38
| | | | | | | | | | | | | | | | | | | | | | | | Avoid copying url and file name twice into the context every time we instantiate an object. Change-Id: I1c76b80b9c44f95512af5899d760151f6dcd7bb5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up object creation with lots of id name objectsSimon Hausmann2015-04-163-32/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the common case when objects are referenced by id, we don't need the QQmlContextData's property name cache for the lookup. Instead of bindings we resolve the id to an integer at type compilation time. Therefore we can delay the population of the QQmlContextData's propertyNames until we need it and therefore safe time on startup. Change-Id: I2e8eeb51b1ac92f230059be3467f9a1e00fdbbef Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up creation of objects without script bindingsSimon Hausmann2015-04-162-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | Avoid the creation of the QML binding wrappers if we don't need it, by moving the creation into a function that creates it on demand. Change-Id: I1af6a8507a114c1a0b83374704981b7ed4c4a3fc Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up copying of value types in bindingsSimon Hausmann2015-04-163-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | When a binding results in a value type reference and the destination property is of the same time, then we can avoid a heap allocation and just allocate the value type memory on the stack, construct, copy and destruct. Change-Id: If71ef82b0ced85c1b962c5e44147d6c07edd1440 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up value type binding creationSimon Hausmann2015-04-164-40/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Avoid calling QMetaType::construct/destruct(typeId, ...) as that requires repeated lookups in the type registry. Instead cache the constructor/destructor/etc. function addresses in the QQmlValueType singletons as QMetaType * Allocate memory for the gadget pointer lazily, to accommodate the common case of a value type binding by property reference. Change-Id: I98a3ac73453b8f80027c06401b4f29a9707949d2 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Changed QML type lockingSimon Hausmann2015-04-163-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the use of QReadWriteLock with a plain QMutex. At this point QReadWriteLock adds a lot of overhead due to its internal QHash and otherwise offers little over a recursive mutex, especially given that there is most of the time only one reading thread and one writing thread. Change-Id: I0a91e4a64cff5d25e4a133ed46b08912e81bb055 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up creation of objects that don't import scriptsSimon Hausmann2015-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In the common case of no 'import "Foo.js" as Bar' we can avoid the creation of the JS array that holds the script references. Change-Id: I6704bd9efaf8681f939a148b2cb0a1de2cb22d80 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up binding evaluationSimon Hausmann2015-04-163-28/+10
|/ / | | | | | | | | | | | | | | | | Don't spend any cycles of determining the location of the binding (file, line, column) unless we really need that information. That's the case when the profiler is active or an error happens. Change-Id: Iae97808d500b88fed6a813e8b224aa6ebe04d3b6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Unregister types in the QMetaType system on unload.Robert Griebl2015-04-151-1/+10
| | | | | | | | | | | | | | | | | | This patch will enable the unregistering of previously registered QMetaTypes, when the corresponding Qml type is dead. The API for this was added to QtBase with b00201b. Change-Id: I96d4a3004d8da59ee8edf7cfd6d2fef3a5410807 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Simple speed-up for binding setup during object instantiationSimon Hausmann2015-04-141-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | We use stringAt() to retrieve the name of the id property of an object but all we do with that string is check if it has a length. So if an id is set, we allocate memory and copy the string data into a new QString, and if it's not set then we get a default constructed QString. Either way the string isn't used and we can simply check for whether the id is set by checking if the idIndex is non-zero. Change-Id: Ib84fb05ed31c59f7e85dac72ab61b4d3bc9c902b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Cleanup: Fix const'ness of the property binding validator codeSimon Hausmann2015-04-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The property validator is supposed to validate the proposed property bindings and abort type compilation if necessary. As such it is a read-only pass through the data structures and therefore we make it const. However it does have a side-effect of collecting some state, which however is "write-only" and therefore marked as mutable. Those variables are written to, but not read during this pass. Change-Id: I6a3655fedbd6691b7498cf82ca1c8e21dd635bd3 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | CleanupSimon Hausmann2015-04-141-3/+2
| | | | | | | | | | | | | | | | | | Avoid re-using the same variable for different purposes, so just pull in the first use into the tight scope and the second "property" variable close to the loop it is used with. Change-Id: I3a325478f9e56413b65dea9c7e05566497fbc6cf Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Fix some qdoc warnings.Friedemann Kleint2015-03-313-5/+5
| | | | | | | | | | | | | | | | | | | | | | qtdeclarative/src/qml/qml/qqmlinfo.cpp:46: warning: Cannot find 'qmlInfo(...)' in '\fn' QQmlInfo qmlInfo(const QObject *object) qtdeclarative/src/qml/qml/qqmlexpression.cpp:366: warning: Undocumented parameter 'column' in QQmlExpression::setSourceLocation() qtdeclarative/src/qml/doc/src/qmlfunctions.qdoc:176: warning: Undocumented parameter 'reason' in qmlRegisterExtendedUncreatableType() qtdeclarative/src/qml/doc/src/qmlfunctions.qdoc:176: warning: No such parameter 'message' in qmlRegisterExtendedUncreatableType() Change-Id: Iec801b33b11bd57abadd968a90c49f8eba1280d5 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
* | Fixing yet another memory leakRobert Griebl2015-03-251-2/+1
| | | | | | | | | | Change-Id: I1c083a488f963f8dd40f3bd6db5a46ac9db66ffb Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Remove QItemSelection value-type, use Array insteadGabriel de Dietrich2015-03-221-3/+0
| | | | | | | | | | | | | | | | We implement this by adding QItemSelection to the set of sequence types. Change-Id: Ia3db376c806d8f062639e22c7f4bf392f114c266 Reviewed-by: Stephen Kelly <steveire@gmail.com>