diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-12-22 13:49:03 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-23 07:23:48 +0100 |
commit | fb00bd445b1d77ffd7be8c60fce30f58e53eb6de (patch) | |
tree | e2000fd51e5c64a05fb45963e756aca29bca31d5 /src/quick/items/qquickvisualdatamodel_p_p.h | |
parent | 347f84e5aca9423536cb0cd7a2eafaf836a72212 (diff) |
Insert items into VisualDataModel.
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>
Diffstat (limited to 'src/quick/items/qquickvisualdatamodel_p_p.h')
-rw-r--r-- | src/quick/items/qquickvisualdatamodel_p_p.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/quick/items/qquickvisualdatamodel_p_p.h b/src/quick/items/qquickvisualdatamodel_p_p.h index b843e6ac1a..03d9767661 100644 --- a/src/quick/items/qquickvisualdatamodel_p_p.h +++ b/src/quick/items/qquickvisualdatamodel_p_p.h @@ -62,6 +62,8 @@ QT_BEGIN_NAMESPACE +typedef QDeclarativeListCompositor Compositor; + class QQuickVisualDataModelItemMetaType : public QDeclarativeRefCount { public: @@ -107,10 +109,14 @@ public: ~QQuickVisualDataModelItem(); void referenceObject() { ++objectRef; } - bool releaseObject() { return --objectRef == 0 && !(groups & QDeclarativeListCompositor::PersistedFlag); } - bool isObjectReferenced() const { return objectRef == 0 && !(groups & QDeclarativeListCompositor::PersistedFlag); } + bool releaseObject() { return --objectRef == 0 && !(groups & Compositor::PersistedFlag); } + bool isObjectReferenced() const { return objectRef != 0 || (groups & Compositor::PersistedFlag); } - bool isReferenced() const { return scriptRef || incubationTask || (groups & QDeclarativeListCompositor::PersistedFlag); } + bool isReferenced() const { + return scriptRef + || incubationTask + || ((groups & Compositor::UnresolvedFlag) && (groups & Compositor::GroupMask)); + } void Dispose(); @@ -119,6 +125,9 @@ public: virtual v8::Handle<v8::Value> get() { return engine->newQObject(this); } + virtual void setValue(const QString &role, const QVariant &value) { Q_UNUSED(role); Q_UNUSED(value); } + virtual bool resolveIndex(int) { return false; } + Q_SIGNALS: void modelIndexChanged(); @@ -137,7 +146,6 @@ public: QVDMIncubationTask *incubationTask; }; -typedef QDeclarativeListCompositor Compositor; class QQuickVisualDataModelPrivate; class QVDMIncubationTask : public QDeclarativeIncubator @@ -256,6 +264,7 @@ public: void emitChanges(); void emitModelUpdated(const QDeclarativeChangeSet &changeSet, bool reset); + bool insert(Compositor::insert_iterator &before, const v8::Local<v8::Object> &object, int groups); static void group_append(QDeclarativeListProperty<QQuickVisualDataGroup> *property, QQuickVisualDataGroup *group); static int group_count(QDeclarativeListProperty<QQuickVisualDataGroup> *property); |