diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-06-03 23:01:00 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-06-05 12:37:44 +0200 |
commit | cddc70614b625ec4308e1703f959b1220085e6de (patch) | |
tree | 33d676a7d53ea1ffec10b724faf3add45611b0e0 /src/qml/types/qqmldelegatemodel_p_p.h | |
parent | 6178d3437dad86ec9e7da2170944c40b2b352db0 (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.h | 30 |
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); |