aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickvisualdatamodel_p_p.h
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2011-12-22 13:49:03 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-23 07:23:48 +0100
commitfb00bd445b1d77ffd7be8c60fce30f58e53eb6de (patch)
treee2000fd51e5c64a05fb45963e756aca29bca31d5 /src/quick/items/qquickvisualdatamodel_p_p.h
parent347f84e5aca9423536cb0cd7a2eafaf836a72212 (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.h17
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);