diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-06-07 13:10:29 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-06-07 19:12:39 +0200 |
commit | d3243caf5a181855f6344c072f8dddea193d48fa (patch) | |
tree | 1fcd8c624546f5145b890b043ab2bb4504372afe /src/qml/types/qqmldelegatemodel_p_p.h | |
parent | 3011eb517e352faa614107fcf7cc756991dbf16c (diff) |
Remove the last v8 dependency from the delegate model
Don't use a qv8objectresource for the items anymore.
Change-Id: I5aadd58bf432e0a8984234c03a369aaea92c5f9e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/types/qqmldelegatemodel_p_p.h')
-rw-r--r-- | src/qml/types/qqmldelegatemodel_p_p.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/qml/types/qqmldelegatemodel_p_p.h b/src/qml/types/qqmldelegatemodel_p_p.h index d2ba84cfc7..4e1adf175a 100644 --- a/src/qml/types/qqmldelegatemodel_p_p.h +++ b/src/qml/types/qqmldelegatemodel_p_p.h @@ -91,12 +91,11 @@ public: class QQmlAdaptorModel; class QQDMIncubationTask; -class QQmlDelegateModelItem : public QObject, public QV8ObjectResource +class QQmlDelegateModelItem : public QObject { Q_OBJECT Q_PROPERTY(int index READ modelIndex NOTIFY modelIndexChanged) Q_PROPERTY(QObject *model READ modelObject CONSTANT) - V8_RESOURCE_TYPE(VisualDataItemType) public: QQmlDelegateModelItem(QQmlDelegateModelItemMetaType *metaType, int modelIndex); ~QQmlDelegateModelItem(); @@ -129,7 +128,7 @@ public: int modelIndex() const { return index; } void setModelIndex(int idx) { index = idx; emit modelIndexChanged(); } - virtual QV4::Value get() { return QV4::QObjectWrapper::wrap(QV8Engine::getV4(engine), this); } + virtual QV4::Value get() { return QV4::QObjectWrapper::wrap(v4, this); } virtual void setValue(const QString &role, const QVariant &value) { Q_UNUSED(role); Q_UNUSED(value); } virtual bool resolveIndex(const QQmlAdaptorModel &, int) { return false; } @@ -141,6 +140,7 @@ public: static QV4::Value set_member(QQmlDelegateModelItem *thisItem, uint flag, const QV4::Value &arg); static QV4::Value get_index(QQmlDelegateModelItem *thisItem, uint flag, const QV4::Value &arg); + QV4::ExecutionEngine *v4; QQmlDelegateModelItemMetaType * const metaType; QQmlContextData *contextData; QObject *object; @@ -159,6 +159,21 @@ protected: void objectDestroyed(QObject *); }; +struct QQmlDelegateModelItemObject : QV4::Object +{ + Q_MANAGED; + QQmlDelegateModelItemObject(QV4::ExecutionEngine *engine, QQmlDelegateModelItem *item) + : Object(engine) + , item(item) + { vtbl = &static_vtbl; } + ~QQmlDelegateModelItemObject(); + + static void destroy(Managed *that); + + QQmlDelegateModelItem *item; +}; + + class QQmlDelegateModelPrivate; class QQDMIncubationTask : public QQmlIncubator |