aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickvisualdatamodel_p_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Move the model classes from QtQuick to QtQmlAlan Alpert2013-01-241-411/+0
| | | | | | | | | | | | | | | | | | | | | | | | This is needed for proper support of non-GUI instantiators in QtQml. Only private C++ classes are affected. Aside from name changes, model classes now operate on QObjects instead of QQuickItems, leading to minor changes in the implementation of QtQuick classes using them. The old QML type names will still be registered in the QtQuick import for the forseeable future, but pointing to the new classes. The new QML types will be added in a second commit. Classes Affected: QQuickVisualDataGroup -> QQmlDataGroup QQuickVisualDataModel -> QQmlDelegateModel QQuickVisualItemModel -> QQmlObjectModel QQuickVisualModel -> QQmlInstanceModel QQuickChangeSet -> QQmlChangeSet QQuickListAccessor -> QQmlListAccessor QQuickListCompositor -> QQmlListCompositor QQuickPackage -> QQuickPackage (just moved for now) Change-Id: Ia19e630e53bfa9e5d459e289596cd11df1ea3930 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* 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>
* 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>
* Don't cache visual data model v8 handles.Andrew den Exter2012-07-101-2/+0
| | | | | | | | | | The external resource is reference counted and resused irregardless of whether the handles are cached, and the reduction in the number of handles allocated needs to be comes at the cost of keeping persistent handle which have a negative impact on garbage collection. Change-Id: I92996faab08a0ff76d21e56dbdafdd7522882d2c Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* Avoid string-based lookup in IS_SIGNAL_CONNECTEDKent Hansen2012-06-101-0/+1
| | | | | | | | | | Specify the signal as a member function suitable for passing to QMetaMethod::fromSignal(), and use the new function QMetaObjectPrivate::signalIndex(QMetaMethod) to get the index in the signal range. Change-Id: If16daa24c2699f7749a17decb611cf395d89d0c4 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
* Don't cache item indexes in VisualDataModel.Andrew den Exter2012-06-081-11/+12
| | | | | | | | | | | | | | Sacrifice constant time lookup of indexes for rarely used features for reduced memory usage. Applications which use neither Packages, nor the VisualDataGroup api don't ever need to query the index of an item so caching and maintaining those indexes in unnecessary. Where they are used this add a cost scanning for the index of an item in the cache, and in some instances a lookup cost in the compositor. Change-Id: I7d3c21a27a8a3c068c5ae2e1e326ff573c44d712 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Destroy incubated objects if they are not claimed when ready.Andrew den Exter2012-06-081-1/+2
| | | | | | | | | | If model data is removed while an object is incubating for it the view cannot cancel the incubation because the index is invalidated. So if the object has not been referenced after signalling it is ready assume it's been abandoned and destroy it. Change-Id: I32708e940cfbccbe0d330ad7822f29d3c1f39d13 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Use a shared meta-object for VisualDataModel list context objects.Andrew den Exter2012-05-301-9/+11
| | | | | | | | | The objectDestroyed() function on QAbstractDynamicMetaObject makes it possible to reference count dynamic meta objects so there is no longer a need to construct an instance per item. Change-Id: I6f32b803b97db015212284718239dc3062dcefe7 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Don't parent (QObject) delegate items to views.Andrew den Exter2012-05-281-1/+2
| | | | | | | | | | | | This keeps object ownership within the context the items were created in and simplifies lifetime management as the VisualDataModel has sole license to delete objects and doesn't have to keep guards against a view and all it's children being deleted. Delegates are still reparented in the item heirarchy. Change-Id: Ife5afdfe294a5a8ca1ca3638a086f72452e4915c Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Contruct per-delegate QQmlContextData directly.Andrew den Exter2012-05-241-13/+10
| | | | | | | | | | The QQmlContext object created per item is a weighty (QObject) wrapper around QQmlContextData that isn't utilized except as an intermeditrary for the QQmlComponent API. By duplicating a little code out of QQmlComponent we can avoid the need to ever contruct the wrapper. Change-Id: I74558c7e746ead2c5127a8754d5f04550b8f4d10 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Don't construct VisualDataModel attached properties unless requested.Andrew den Exter2012-05-241-3/+13
| | | | | | | This saves allocating a QObject per item model in the common case. Change-Id: I0e77e6c6c0c64ac6c5e482ef55e194c68e778b32 Reviewed-by: Bea Lam <bea.lam@nokia.com>
* Improve detection of deleted VisualDataModel items.Andrew den Exter2012-05-211-28/+7
| | | | | | | | | | The data object for each delegate object has a pointer guard with a virtual objectDestroyed() function, that's a better tool for detecting deletion than the destructor of a child object. Change-Id: Iad1516e3daeb5e019ece6c3b2eb65da768cf43cb Reviewed-by: Bea Lam <bea.lam@nokia.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Initialize VisualDataModel v8 object constructor on demand.Andrew den Exter2012-05-211-0/+3
| | | | | | | Avoid allocating data that isn't needed. Change-Id: I6f1d55f535599516a8b5e711f977e81afd337bd6 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Refactor QQuickVisualAdaptorModel to reduce memory consumption.Andrew den Exter2012-05-211-16/+19
| | | | | | | | | | | | Don't inherit from QObject. Use a single QQmlGuard for all model types, and reset the model property if the model is deleted. Construct v8 object template on demand. Store model type specific data in a separate class that is allocated on demand. Change-Id: Id4f7b235741555b6ffba3fcf11727d85d6920e9e Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Add a virtual destructor to QQuickVisualDataGroupEmitter.Andrew den Exter2012-04-201-0/+1
| | | | | | | | | | Not strictly necessary since pointers to that type are not used to destroy objects implementing the interface. But there's no harm and it will keep well meaning static analysis tools happy. Task-number: QTBUG-25286 Change-Id: I84dd59798d08566f34bdfe0f3774dfcf5a8a96e2 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Don't leak function objects created by VisualDataModel.Andrew den Exter2012-03-151-1/+1
| | | | | | | | | | Function objects created from a FunctionTemplate are not short lived, and the objects created by a VisualDataModel can change between instances meaning a template is needed per instance. So use an object template as a constructor instead of a function. Change-Id: I364c6e4f714a623b7adb7475a3ee9862eeeeb119 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Rename QDeclarative symbols to QQuick and QQmlMatthew Vogt2012-02-241-49/+49
| | | | | | | | | | | | | 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>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: If39bd256b0fa85eba17ea30f8ab87ea27d758908 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update obsolete contact address.Jason McDonald2012-01-231-1/+1
| | | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I6a730abc0c396fb545a48b2d6938abedac2e3f1c Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I0a8d99909cac867dce72da70b1bbcb649989a51b Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* VisualDataModel performance improvements.Andrew den Exter2011-12-231-1/+3
| | | | | | | | | | | | | | Avoid a linear scan of all cache items and associated accesses by getting the cache item from an objects vdm attached object instead. Make the model context property a property of the context object instead of a separate property on the context object. Parent the vdm attached object to the delegate object with QDeclarative_setParent_noEvent instead of passing it in the constructor. Change-Id: Ib77c5cdb963f3dfe8f2bdef039e010a6bb30140f Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Insert items into VisualDataModel.Andrew den Exter2011-12-231-4/+13
| | | | | | | | | | | Add API for inserting data directly into a VisualDataModel which can be used among other things to create temporary items that are later resolved to an actual item in the source model. Task-number: QTBUG-21516 Change-Id: I835f0e8d6c5edfb3a21029687de5b700f7400317 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Minimize the number of objects created per item in VisualDataModel.Andrew den Exter2011-12-231-0/+403
Derive from QDeclarativeContext and reference count the context object instead of parenting it to the context. Combined with a weak persistent v8 handle the allows the context object to be returned by javascript accessors instead of creating a new instance for every use. In addition to the efficiency advantages of creating fewer objects, routing all data access through a single object means that object can also persist data instead of just acting as a proxy. Change-Id: I107dc8c901f16f2a4b420ff1cbffa7a6be27de89 Reviewed-by: Martin Jones <martin.jones@nokia.com>