aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qqmldelegatemodel_p_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-06-07 13:10:29 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2013-06-07 19:12:39 +0200
commitd3243caf5a181855f6344c072f8dddea193d48fa (patch)
tree1fcd8c624546f5145b890b043ab2bb4504372afe /src/qml/types/qqmldelegatemodel_p_p.h
parent3011eb517e352faa614107fcf7cc756991dbf16c (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.h21
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