aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qqmldelegatemodel_p_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-06-03 23:01:00 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2013-06-05 12:37:44 +0200
commitcddc70614b625ec4308e1703f959b1220085e6de (patch)
tree33d676a7d53ea1ffec10b724faf3add45611b0e0 /src/qml/types/qqmldelegatemodel_p_p.h
parent6178d3437dad86ec9e7da2170944c40b2b352db0 (diff)
Port the first half of the delegate model code to v4
Change-Id: Ieda3de0a297ba15e4d6634a1123df27347830cfa 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.h30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/qml/types/qqmldelegatemodel_p_p.h b/src/qml/types/qqmldelegatemodel_p_p.h
index cb054647cb..b2fa7edd07 100644
--- a/src/qml/types/qqmldelegatemodel_p_p.h
+++ b/src/qml/types/qqmldelegatemodel_p_p.h
@@ -75,26 +75,17 @@ public:
~QQmlDelegateModelItemMetaType();
void initializeMetaObject();
- void initializeConstructor();
+ void initializePrototype();
int parseGroups(const QStringList &groupNames) const;
- int parseGroups(const v8::Handle<v8::Value> &groupNames) const;
-
- static v8::Handle<v8::Value> get_model(v8::Handle<v8::String>, const v8::AccessorInfo &info);
- static v8::Handle<v8::Value> get_groups(v8::Handle<v8::String>, const v8::AccessorInfo &info);
- static void set_groups(
- v8::Handle<v8::String>, v8::Handle<v8::Value> value, const v8::AccessorInfo &info);
- static v8::Handle<v8::Value> get_member(v8::Handle<v8::String>, const v8::AccessorInfo &info);
- static void set_member(
- v8::Handle<v8::String>, v8::Handle<v8::Value> value, const v8::AccessorInfo &info);
- static v8::Handle<v8::Value> get_index(v8::Handle<v8::String>, const v8::AccessorInfo &info);
+ int parseGroups(const QV4::Value &groupNames) const;
QQmlGuard<QQmlDelegateModel> model;
const int groupCount;
QV8Engine * const v8Engine;
QQmlDelegateModelAttachedMetaObject *metaObject;
const QStringList groupNames;
- QExplicitlySharedDataPointer<v8::ObjectTemplate> constructor;
+ QV4::PersistentValue modelItemProto;
};
class QQmlAdaptorModel;
@@ -138,11 +129,18 @@ public:
int modelIndex() const { return index; }
void setModelIndex(int idx) { index = idx; emit modelIndexChanged(); }
- virtual v8::Handle<v8::Value> get() { return QV4::QObjectWrapper::wrap(QV8Engine::getV4(engine), this); }
+ virtual QV4::Value get() { return QV4::QObjectWrapper::wrap(QV8Engine::getV4(engine), this); }
virtual void setValue(const QString &role, const QVariant &value) { Q_UNUSED(role); Q_UNUSED(value); }
virtual bool resolveIndex(const QQmlAdaptorModel &, int) { return false; }
+ static QV4::Value get_model(QV4::SimpleCallContext *ctx);
+ static QV4::Value get_groups(QV4::SimpleCallContext *ctx);
+ static QV4::Value set_groups(QV4::SimpleCallContext *ctx);
+ static QV4::Value get_member(QQmlDelegateModelItem *thisItem, uint flag, const QV4::Value &);
+ 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);
+
QQmlDelegateModelItemMetaType * const metaType;
QQmlContextData *contextData;
QObject *object;
@@ -213,7 +211,7 @@ public:
void initPackage(int index, QQuickPackage *package);
void destroyingPackage(QQuickPackage *package);
- bool parseIndex(const v8::Handle<v8::Value> &value, int *index, Compositor::Group *group) const;
+ bool parseIndex(const QV4::Value &value, int *index, Compositor::Group *group) const;
bool parseGroupArgs(
QQmlV4Function *args, Compositor::Group *group, int *index, int *count, int *groups) const;
@@ -273,11 +271,11 @@ public:
void itemsMoved(
const QVector<Compositor::Remove> &removes, const QVector<Compositor::Insert> &inserts);
void itemsChanged(const QVector<Compositor::Change> &changes);
- template <typename T> static v8::Handle<v8::Array> buildChangeList(const QVector<T> &changes);
+ template <typename T> static QV4::Value buildChangeList(const QVector<T> &changes);
void emitChanges();
void emitModelUpdated(const QQmlChangeSet &changeSet, bool reset);
- bool insert(Compositor::insert_iterator &before, const v8::Handle<v8::Object> &object, int groups);
+ bool insert(Compositor::insert_iterator &before, const QV4::Value &object, int groups);
static void group_append(QQmlListProperty<QQmlDelegateModelGroup> *property, QQmlDelegateModelGroup *group);
static int group_count(QQmlListProperty<QQmlDelegateModelGroup> *property);