diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-24 12:13:42 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-26 09:05:19 +0200 |
commit | a57085f00b146798a0cca0d52dfa127232c3e659 (patch) | |
tree | 7b4df3f155d431aeb6f3aae01943a3411c812a7b /src/qml/types | |
parent | 12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 (diff) |
Fix API of QQmlV4Handle
Change-Id: Iac4a3fefebd33a5990408598486231a5add8e639
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/types')
-rw-r--r-- | src/qml/types/qqmldelegatemodel.cpp | 15 | ||||
-rw-r--r-- | src/qml/types/qqmllistmodel.cpp | 11 |
2 files changed, 14 insertions, 12 deletions
diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp index 97aa3ec628..8537e1a68e 100644 --- a/src/qml/types/qqmldelegatemodel.cpp +++ b/src/qml/types/qqmldelegatemodel.cpp @@ -2160,8 +2160,9 @@ void QQmlDelegateModelGroupPrivate::emitChanges(QV8Engine *engine) { Q_Q(QQmlDelegateModelGroup); if (isChangedConnected() && !changeSet.isEmpty()) { - QV4::Value removed = engineData(engine)->array(engine, changeSet.removes()); - QV4::Value inserted = engineData(engine)->array(engine, changeSet.inserts()); + QV4::Scope scope(QV8Engine::getV4(engine)); + QV4::ScopedValue removed(scope, engineData(engine)->array(engine, changeSet.removes())); + QV4::ScopedValue inserted(scope, engineData(engine)->array(engine, changeSet.inserts())); emit q->changed(QQmlV4Handle(removed), QQmlV4Handle(inserted)); } if (changeSet.difference() != 0) @@ -2360,14 +2361,14 @@ QQmlV4Handle QQmlDelegateModelGroup::get(int index) { Q_D(QQmlDelegateModelGroup); if (!d->model) - return QQmlV4Handle(QV4::Value::undefinedValue());; + return QQmlV4Handle(QV4::Encode::undefined()); QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (!model->m_context->isValid()) { - return QQmlV4Handle(QV4::Value::undefinedValue()); + return QQmlV4Handle(QV4::Encode::undefined()); } else if (index < 0 || index >= model->m_compositor.count(d->group)) { qmlInfo(this) << tr("get: index out of range"); - return QQmlV4Handle(QV4::Value::undefinedValue()); + return QQmlV4Handle(QV4::Encode::undefined()); } Compositor::iterator it = model->m_compositor.find(d->group, index); @@ -2379,7 +2380,7 @@ QQmlV4Handle QQmlDelegateModelGroup::get(int index) cacheItem = model->m_adaptorModel.createItem( model->m_cacheMetaType, model->m_context->engine(), it.modelIndex()); if (!cacheItem) - return QQmlV4Handle(QV4::Value::undefinedValue()); + return QQmlV4Handle(QV4::Encode::undefined()); cacheItem->groups = it->flags; model->m_cache.insert(it.cacheIndex, cacheItem); @@ -2396,7 +2397,7 @@ QQmlV4Handle QQmlDelegateModelGroup::get(int index) o->setPrototype(p.getPointer()); ++cacheItem->scriptRef; - return QQmlV4Handle(o.asValue()); + return QQmlV4Handle(o); } bool QQmlDelegateModelGroupPrivate::parseIndex(const QV4::Value &value, int *index, Compositor::Group *group) const diff --git a/src/qml/types/qqmllistmodel.cpp b/src/qml/types/qqmllistmodel.cpp index 4ce5047c8f..7965bc046d 100644 --- a/src/qml/types/qqmllistmodel.cpp +++ b/src/qml/types/qqmllistmodel.cpp @@ -2142,7 +2142,8 @@ QQmlV4Handle QQmlListModel::get(int index) const */ void QQmlListModel::set(int index, const QQmlV4Handle &handle) { - QV4::Object *object = handle.toValue().asObject(); + QV4::Scope scope(QV8Engine::getV4(engine())); + QV4::ScopedObject object(scope, handle); if (!object) { qmlInfo(this) << tr("set: value is not an object"); @@ -2157,9 +2158,9 @@ void QQmlListModel::set(int index, const QQmlV4Handle &handle) if (index == count()) { if (m_dynamicRoles) { - m_modelObjects.append(DynamicRoleModelNode::create(engine()->variantMapFromJS(object), this)); + m_modelObjects.append(DynamicRoleModelNode::create(engine()->variantMapFromJS(object.getPointer()), this)); } else { - m_listModel->insert(index, object, engine()); + m_listModel->insert(index, object.getPointer(), engine()); } emitItemsInserted(index, 1); @@ -2168,9 +2169,9 @@ void QQmlListModel::set(int index, const QQmlV4Handle &handle) QVector<int> roles; if (m_dynamicRoles) { - m_modelObjects[index]->updateValues(engine()->variantMapFromJS(object), roles); + m_modelObjects[index]->updateValues(engine()->variantMapFromJS(object.getPointer()), roles); } else { - m_listModel->set(index, object, &roles, engine()); + m_listModel->set(index, object.getPointer(), &roles, engine()); } if (roles.count()) |