aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)