aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-24 12:13:42 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-26 09:05:19 +0200
commita57085f00b146798a0cca0d52dfa127232c3e659 (patch)
tree7b4df3f155d431aeb6f3aae01943a3411c812a7b /src/qml/types
parent12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 (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.cpp15
-rw-r--r--src/qml/types/qqmllistmodel.cpp11
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())