aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Doc: Minor fixes to Loader QML type documentationTopi Reinio2017-08-293-7/+10
| | | | | | | | | | - Convert section titles to bookcase - Minimize line length for code snippets that are embedded in tables to prevent overflow. Change-Id: I316fc0fc4c3663397110d1ad1b8b83abce4af02e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: Fix capitalization in section titlesTopi Reinio2017-08-2922-54/+54
| | | | | | | | ...and fix some section titles to be less confusing. Change-Id: If83c3faffead9e2e9be7fc0fb360f1c5b8b1bb51 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Don't copy the bytecode data from the cached compilation unitLars Knoll2017-08-291-6/+0
| | | | | | | | There hasn't been a need to copy the data since some time, as we are not patching the bytecode anymore. Change-Id: I2303d5a2fceb611933905311aaedb041a78c42ac Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Doc: add missing word to Item::enabledMitch Curtis2017-08-281-1/+1
| | | | | Change-Id: I4f30dcc92ebd20a66fb18615f8cc82675380c450 Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Update doc to clarify the slot parameter for connectNotifySignalAndy Shaw2017-08-251-0/+3
| | | | | Change-Id: I89da2d258d6e5663d45497bd4b7fa105a11e46e7 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Fix crash in mouseGrabberItemSune Vuorela2017-08-231-2/+1
| | | | | | | | | | Under certain circumstances, point can be null. All users of mouseGrabberItem does check for nullpointers, so it should be safe. Task-number: QTBUG-62055 Change-Id: I1d53b7980efa4fe149714a65f35d05fa306efb06 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix compiler errors with clang 4.0Lars Knoll2017-08-231-12/+12
| | | | | Change-Id: I5bd236f0a38a8a83eddef7d2239b17ae7be2239a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix memory corruption with type trimmingSimon Hausmann2017-08-234-12/+14
| | | | | | | | | | | | | | | | | | When creating a composite type, we register the meta-type in the qml loader thread. However we would require linking of the compilation unit to the QML/engine thread before we would be able to also undo that registration in unlink(), because we require the engine member to be set. If that did not happen, i.e. a qml type was loaded and trimmed from the cache before it was ever linked, we would end up with a dangling pointer in m_compositeTypes. Let's handle the case of CompilationUnit referring to a QML composite type separately from it being a compilation unit resulting from a .js file or in a plain QJSEngine environment. Task-number: QTBUG-62630 Change-Id: Ia68cc46f05345702bd9ba0378f61118f1964d141 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Small cleanupLars Knoll2017-08-231-2/+1
| | | | | Change-Id: Ifb111ceab64244965569f59eda8d9604131d209d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix valgrind warning about uninitialized variableLars Knoll2017-08-231-0/+1
| | | | | Change-Id: I1f39c488f5a7b7f1a10fa94461c308f0cde5fcd5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Cleanup obsolete TODO in source codeLars Knoll2017-08-231-3/+0
| | | | | Change-Id: I0c4f5d908215b9b6fac0fadb352f7c36849dce6f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Clean up void * usageLars Knoll2017-08-235-13/+16
| | | | | | | | Don't use void * in our internals, when we can simply pass a typed pointer. Change-Id: Id02033c7e66df7e041c079d3546f9dd6027ef8d5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix finding test data on AndroidEskil Abrahamsen Blomfeldt2017-08-221-0/+5
| | | | | | | | | | | | | The standard way of doing Qt Quick testing requires having qml files available in the deployment somewhere in the regular file system. This is not how Android works, where all test data should be deployed as resources. To allow this, we simply hardcode the test path as a resource path on Android instead of checking on the disk. Task-number: QTBUG-45576 Change-Id: I0729f5004a6206d2a10b782eb5b7d83a833c4f51 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Fix memory leaks with threaded rendererJoni Poikelin2017-08-223-5/+5
| | | | | | | | | | Reverts 39061af50cc3092289cdd71d17802139590ecb59 and calls endSync() instead after syncSceneGraph(). Task-number: QTBUG-61754 Change-Id: I7b51ffdc93557bacd93927dd642ec3715980b21c Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Roger Zanoni <rogerzanoni@gmail.com>
* Don't crash when trying to bind an invalid property indexUlf Hermann2017-08-171-1/+1
| | | | | | | | findAliasTarget() in binding() can result in an invalid index. We do check for valueTypeIndex below, so we should also check for coreIndex. Change-Id: I8cfed237666f8c1f8733592d3abd9be5ccee3229 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix crash in QQuickAnimatedImageAleksei Ilin2017-08-151-1/+1
| | | | | | | | | | | Check d->_movie pointer before dereferencing Task-number: QTBUG-62380 Change-Id: I62314c7c0d4a7e41fa6f8c4629d16f30d6036156 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry-picked from fc3ecd2522deb3f6d8d48b66dbd89402e1ab4b53)
* QQuickTextInput: Allow going from an Acceptable to an Intermediate stateAndy Shaw2017-08-151-0/+5
| | | | | | | | | | | When editing text with a validator set then it can happen that it would no longer be in the acceptable state. This ensures that it does not prevent editing the text when an input mask is used to go back to an Intermediate state. Change-Id: I6da533d18035e9da468939c28a961bc8f2f3090b Reviewed-by: Robin Burchell <robin.burchell@crimson.no> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix ListView::StrictlyEnforceRange with resizing delegateMichael Brasser2017-08-093-1/+14
| | | | | | | | | | | When fixupPosition is called for a ListView with StrictlyEnforceRange, the original reason for the move is lost, and the fixup is applied immediately. There are already checks for whether the view is moving, so expand these checks to include movement caused by highlight. Change-Id: I25f771b9a529d31dc28acb9f91fcd2b582428200 Task-number: QTBUG-33568 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Improve releasing of memory allocated from compilation unit stringsSimon Hausmann2017-08-043-8/+9
| | | | | | | | | | | | | | | Allocate the strings in the compilation unit as regular strings, not as identifiers. We mark the runtimeStrings in the compilation unit, so when the unit is released as part of component cache trimming, those strings can also be collected. The JS object literal class keys have to remain identifiers though. However this is just a stop-gap as the real problem is that the identifier table can be triggered to grow without bounds. Task-number: QTBUG-61536 Change-Id: I7a2854b7fa9c9953348b5e34a31833f7be67cfbf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Doc: Mention license in Qt Quick documentationKai Koehne2017-08-031-0/+8
| | | | | Change-Id: Ib7cb0781799191636a13aba9d357313a860876e9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Avoid meta-object creation when looking up QML properties in the property cacheSimon Hausmann2017-08-021-4/+8
| | | | | | | | | | | | | | When looking up QML properties in the property cache, we also need to verify that they should be visible in the QML context they are requested from, i.e. if the revision of the object in that context has the property visible or not. That requires retrieving the VME meta-object for QML declared properties. We can retrieve that directly from the QObjectPrivate instead of going through the potential meta-object builder creation path. Task-number: QTBUG-61536 Change-Id: I695921d625169de5c58941087464beb5367fb2db Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Reduce memory consumption of stat() cache in QML type loaderSimon Hausmann2017-08-022-24/+20
| | | | | | | | | | | The m_importDirCache caches the result of QDir/File::exists across paths. By changing the data structure to a QCache we impose a limit on the size of the entries and thus the memory consumption for long running programs that access many qml files. Task-number: QTBUG-61536 Change-Id: I20c4dc77260fe353c13da570b7e1bbd3f47d4b79 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix void * usage in our internal APIsLars Knoll2017-08-027-63/+60
| | | | | | Task-number: QTBUG-61536 Change-Id: Ia2b5cfeab093d8be91728032528788dd238c2872 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move the m_qmlLists member in the QML engine to QQmlMetaTypeLars Knoll2017-08-025-47/+67
| | | | | | | | | | This is a pure metatype id to metatype id mapping, nothing in there is specific to a QML engine instance. Thus move the mapping to QQmlMetaType and make it global for all engines. Task-number: QTBUG-61536 Change-Id: I3792567bc9f585e3e0fbbad94efd1ec3a0db3de0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Remove unused types on engine destructionSimon Hausmann2017-08-026-99/+202
| | | | | | | | | | | | | The QML engine destructor as well as trimComponentCache() do now clean out unused composite types that the engine registered internally. This helps avoid 'static' leaks, when more and more types would get registered by the engine. Task-number: QTBUG-61536 Change-Id: I5b32af4b88fbf626de8c0bfbaedb2285b09e3679 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove unused variableSimon Hausmann2017-08-021-1/+0
| | | | | | | | QQmlTypeModulePrivate::types is not used (anymore?). Task-number: QTBUG-61536 Change-Id: Ia7af542e6969c167d1f05a460e0926398f56f380 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Change data structures in QQmlMetaTypeDataLars Knoll2017-08-024-137/+118
| | | | | | | | | | | | | | | | | Make sure any QQmlType stored in the meta type data has a refcount of 1. This should now make it possible to clean out unused types by iterating over the list of types and removing those that have a refcount of 1. Some care is still needed for C++ registered types, that will need to get one more refcount, so we don't accidentally remove them. Task-number: QTBUG-61536 Change-Id: Id2a18dae5ddcb815f34013f5fde1f05d2d9d0214 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove QQmlEnginePrivate::typePropertyCacheSimon Hausmann2017-08-025-112/+146
| | | | | | | | | Instead of maintaining a hash per QQmlType and minor version, move the version specific property caches into QQmlType. Task-number: QTBUG-61536 Change-Id: I72f3990cb93e64ac5074060b4ff327043eab7966 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move property cache from the engine to QQmlTypeSimon Hausmann2017-08-025-32/+38
| | | | | | | | | | | | | Now that the property cache is independent of a specific engine, we can cache them in QQmlType instead of caching them per engine. This simplifies the logic and avoids duplicated property caches when multiple engines are running. Task-number: QTBUG-61536 Change-Id: I6f082e1e7495ae0f5b92559e8d0a3437c56e303a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move the engine pointer from the property cache to the VME meta objectLars Knoll2017-08-0212-100/+70
| | | | | | | | | This is where it belongs, and it makes the PropertyCache independent of the engine used. Task-number: QTBUG-61536 Change-Id: I21c2674ee3e2895abd2418764d140b154b47b868 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use QQmlType by valueLars Knoll2017-08-0228-343/+356
| | | | | | | | | | | QQmlType is now refcounted, and we need to use it by value, to control it's lifetime properly. This is required, so we can clean up the QQmlMetaTypeData cache on engine destruction and with trimComponentCache() Task-number: QTBUG-61536 Change-Id: If86391c86ea20a646ded7c9925d8f743f628fb91 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Simplify logicLars Knoll2017-08-021-3/+1
| | | | | | Task-number: QTBUG-61536 Change-Id: Ibdb10dfb8d9fbd15fddc27a2802b756381755ee7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use QQmlType by value in the type wrapperLars Knoll2017-08-026-36/+65
| | | | | | Task-number: QTBUG-61536 Change-Id: Ie40cb3a6e170331b0ec7ab5deaf7c1d7ef0cdaeb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use QQmlType by value in the MemberExpressionResolverLars Knoll2017-08-022-11/+17
| | | | | | Task-number: QTBUG-61536 Change-Id: Ia9a43890937399f3a109d93227e5d44420974737 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Turn QQmlType into a refcounted value typeLars Knoll2017-08-022-67/+142
| | | | | | Task-number: QTBUG-61536 Change-Id: If906af2bf3afd09c23a612aaac417a751b06eba4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add QDebugStateSaver to operator<<(QDebug, const QSGRootNode)Jesus Fernandez2017-07-271-0/+1
| | | | | | | | | CID 54558 (#1 of 1): Not restoring ostream format (STREAM_FORMAT_STATE) 4. end_of_path: Changing format state of stream d for category basefield without later restoring it. Coverity-Id: 54558 Change-Id: Iad6e6103684c57d3ab98e78e7c91e23731632913 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QJSEngine: document limitation of dynamic QObject propertiesMitch Curtis2017-07-272-1/+19
| | | | | | | | | Dynamic QObject properties can not be accessed through C++ (via QJSValue) nor JavaScript. Task-number: QTBUG-38181 Change-Id: I78bb9898fef615a647234ae8df444e8855870258 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QQuickTextInput: Don't move the cursor after internalInsert() has done soAndy Shaw2017-07-261-2/+2
| | | | | | | | | | | internalInsert() will set the cursor to the right position which accounts for any input mask set on the control as well. Therefore it will already be placed at the next correct position and should not be changed again after that. Task-number: QTBUG-40943 Change-Id: Ic80193ee94d2aa002b5a14a88df719a5a2cf51b1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix loading of QML plugins with old IID in static buildsSimon Hausmann2017-07-262-2/+5
| | | | | | | | | | | | | | | | | After commit 709f6370884b110def2e4665df8fa7bbf5fae734 we required the use of QQmlExtensionInterface_iid in qml plugins for static linkage. This mean that plugins using the "/1.0" variant would also continue to load, but those not would fail to load. This is annoying when porting apps from older Qt versions. To make the upgrade path easier, let's just support both IIDs. [ChangeLog][Qml] Fix loading of static qml plugins using the old plugin interface id Change-Id: I1c662b1fedad3f32b7dea1eddc32838d2eb9f3be Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Fix compilation with namespaceEskil Abrahamsen Blomfeldt2017-07-261-3/+2
| | | | | | | | | I am not sure why this hasn't failed in CI, but the function is declared inside the namespace, so the definition needs to go in there as well. Seems to be a merge error all the way back to 5.8. Change-Id: Iedd25d3e9e756c55cc302da90bab11535bdc1b01 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix memory leak in QSGAtlasTexture::Manager::create()Mitch Curtis2017-07-262-4/+5
| | | | | | | | Parent the Atlas to the manager. Task-number: QTBUG-61754 Change-Id: Ida8b0622d1dbcaafa622f72a1d210969fa61d5bf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix QQuickFramebufferObject::Renderer::invalidateFramebufferObject()Wieland Hagen2017-07-251-8/+6
| | | | | | | | | | | | | | invalidateFramebufferObject() sets the invalidatePending flag, which should then trigger the deletion of the old FBO and allocation via Renderer::createFramebufferObject(). This does only happen though, if the size has changed. Instead, always create a new FBO if invalidateFramebufferObject() has been called, regardless of whether the size changes or not. Change-Id: I849cb858afac89038343457c6362233c34956d58 Task-number: QTBUG-54434 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Do not (dis)connectNotify on dynamically created model item objectsErik Verbruggen2017-07-255-17/+18
| | | | | | | | | | | | These item objects are direct subclasses of QObject, and cannot override connectNotify/disconnectNotify. This prevents the creation of the backing QMetaObject during disconnect, which happens during destruction, which in turn will call back into the model that is being destroyed. Task-number: QTBUG-59704 Change-Id: I7f997e5d2fda242b38e67b9147224d72aa4508ba Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use __builtin_trap in GCC tooThiago Macieira2017-07-221-1/+1
| | | | | | | It has had that for longer than Clang has existed. Change-Id: I84e45059a888497fb55ffffd14d3c03160312537 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Export QQuickWindowAttachedJ-P Nurmi2017-07-181-1/+2
| | | | | | | | | fd1612d9 broke the qqc2 build: error: undefined reference to 'QQuickWindowAttached::staticMetaObject' Change-Id: Ia52f0e124fa81fecdee0ed006837a93636aa9622 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QQuickWindowQmlImpl: declare attached properties in the headerJ-P Nurmi2017-07-172-3/+4
| | | | | | | | | | | | | QQuickWindowQmlImpl is inherited by QQuickApplicationWindow in Qt Quick Controls 2, which must register revisions (qmlRegisterRevision) in base classes to make revisioned base class members available in AppWindow. The fact that QQuickWindowQmlImpl provides attached properties must be declared in the header so that qmlRegisterRevision<QQuickWindowQmlImpl> in Qt Quick Controls 2 does not lose the Window-attached properties. Task-number: QTBUG-61935 Change-Id: I634c8fe980b06279610953d9ded2c27d8627d5ea Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Software Adaptation: Fix nested clipping logicAndy Nichols2017-07-171-2/+2
| | | | | | Task-number: QTBUG-61939 Change-Id: Ibb7f242241df0a7a418ab4f268487e72d5595622 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Rebuild QQmlData::propertyCache if deleted by another engineDavid Edmundson2017-07-131-1/+6
| | | | | | | | | | | | | QQmlData is shared between engines, but the relevant QObjectWrapper is not. Since 749a7212e903d8e8c6f256edb1836b9449cc7fe1 when a QObjectWrapper is deleted it resets the shared QQmlData propertyCache. In most cases the propertyCache except when a property updated in an existing binding in the first engine, where it currently asserts. Task-number: QTBUG-61681 Change-Id: I6efdc506e5c7e30b95cda1be282afa9feb781cd2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Doc: link to Qt::WindowFlags in Window's flag docMitch Curtis2017-07-131-0/+2
| | | | | Change-Id: I0d5f03bcdcf9154431ed38eac2b41b622ad0c3d6 Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
* QDoc: Fix syntax error on the definition of the Q_GADGETHolger Hans Peter Freyther2017-07-131-1/+1
| | | | | Change-Id: I1a0ec09441e7791bcdaf34f16a71be9e535625f0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>