aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2011-12-15 12:41:56 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-15 03:50:41 +0100
commit7e2c152089e5f54b254d8dae7cbfe0f3bbd68293 (patch)
tree21ca00b8a379361a6f90476327c95758a8bde391
parent89892191761db53b2094315362be695f054a8700 (diff)
Utilize the property cache for item view context objects.
A common QDeclarativePropertyCache was being constructed for dynamic objects but never bound to the constructed objects. Change-Id: I83b3841d8b78e2f2dd8e0494ea2601c20d6e6e88 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
-rw-r--r--src/quick/items/qquickvisualadaptormodel.cpp9
-rw-r--r--src/quick/items/qquickvisualadaptormodel_p.h3
2 files changed, 7 insertions, 5 deletions
diff --git a/src/quick/items/qquickvisualadaptormodel.cpp b/src/quick/items/qquickvisualadaptormodel.cpp
index 6b7919c639..9c57d9f75f 100644
--- a/src/quick/items/qquickvisualadaptormodel.cpp
+++ b/src/quick/items/qquickvisualadaptormodel.cpp
@@ -451,7 +451,6 @@ QQuickVisualAdaptorModelData *QQuickVisualAdaptorModelPrivate::createMetaObject(
&& m_listAccessor->type() != QDeclarativeListAccessor::ListProperty
&& m_listAccessor->type() != QDeclarativeListAccessor::Instance) {
createModelData = &QQuickVDMListAccessorData::create;
- m_flags = QQuickVisualAdaptorModel::MetaObjectCacheable;
return QQuickVDMListAccessorData::create(index, model);
}
@@ -467,7 +466,6 @@ QQuickVisualAdaptorModelData *QQuickVisualAdaptorModelPrivate::createMetaObject(
}
if (m_propertyData.count() == 1)
addProperty(roles.first(), 1, "modelData", "QVariant", true);
- m_flags = QQuickVisualAdaptorModel::MetaObjectCacheable;
} else if (m_abstractItemModel) {
setModelDataType<QQuickVDMAbstractItemModelData>();
QHash<int, QByteArray> roleNames = m_abstractItemModel->roleNames();
@@ -477,7 +475,6 @@ QQuickVisualAdaptorModelData *QQuickVisualAdaptorModelPrivate::createMetaObject(
}
if (m_propertyData.count() == 1)
addProperty(roleNames.begin().key(), 1, "modelData", "QVariant", true);
- m_flags = QQuickVisualAdaptorModel::MetaObjectCacheable;
} else if (m_listAccessor) {
setModelDataType<QQuickVDMObjectData>();
m_objectList = true;
@@ -498,6 +495,12 @@ QQuickVisualAdaptorModelData::QQuickVisualAdaptorModelData(int index, QQuickVisu
: m_index(index)
, m_model(model)
{
+ QQuickVisualAdaptorModelPrivate *m = QQuickVisualAdaptorModelPrivate::get(model);
+ if (m->m_delegateDataType && m->m_delegateDataType->propertyCache) {
+ QDeclarativeData *qmldata = QDeclarativeData::get(this, true);
+ qmldata->propertyCache = m->m_delegateDataType->propertyCache;
+ qmldata->propertyCache->addref();
+ }
}
QQuickVisualAdaptorModelData::~QQuickVisualAdaptorModelData()
diff --git a/src/quick/items/qquickvisualadaptormodel_p.h b/src/quick/items/qquickvisualadaptormodel_p.h
index 31eba503ea..41d913c47e 100644
--- a/src/quick/items/qquickvisualadaptormodel_p.h
+++ b/src/quick/items/qquickvisualadaptormodel_p.h
@@ -61,8 +61,7 @@ class QQuickVisualAdaptorModel : public QObject
public:
enum Flag
{
- MetaObjectCacheable = 0x01,
- ProxiedObject = 0x02
+ ProxiedObject = 0x01
};
Q_DECLARE_FLAGS(Flags, Flag)