diff options
Diffstat (limited to 'src/qml/types/qqmllistmodel.cpp')
-rw-r--r-- | src/qml/types/qqmllistmodel.cpp | 61 |
1 files changed, 20 insertions, 41 deletions
diff --git a/src/qml/types/qqmllistmodel.cpp b/src/qml/types/qqmllistmodel.cpp index 8574a4784c..1a2e4c7f6f 100644 --- a/src/qml/types/qqmllistmodel.cpp +++ b/src/qml/types/qqmllistmodel.cpp @@ -233,7 +233,7 @@ const ListLayout::Role *ListLayout::getRoleOrCreate(const QString &key, const QV return &getRoleOrCreate(key, type); } -const ListLayout::Role *ListLayout::getExistingRole(const QString &key) +const ListLayout::Role *ListLayout::getExistingRole(const QString &key) const { Role *r = 0; QStringHash<Role *>::Node *node = roleHash.findNode(key); @@ -242,7 +242,7 @@ const ListLayout::Role *ListLayout::getExistingRole(const QString &key) return r; } -const ListLayout::Role *ListLayout::getExistingRole(QV4::String *key) +const ListLayout::Role *ListLayout::getExistingRole(QV4::String *key) const { Role *r = 0; QStringHash<Role *>::Node *node = roleHash.findNode(key); @@ -603,11 +603,8 @@ int ListModel::setOrCreateProperty(int elementIndex, const QString &key, const Q ModelNodeMetaObject *cache = e->objectCache(); - if (roleIndex != -1 && cache) { - QVector<int> roles; - roles << roleIndex; - cache->updateValues(roles); - } + if (roleIndex != -1 && cache) + cache->updateValues(QVector<int>(1, roleIndex)); } } @@ -1312,11 +1309,8 @@ void ModelNodeMetaObject::propertyWritten(int index) QV4::ScopedValue v(scope, scope.engine->fromVariant(value)); int roleIndex = m_model->m_listModel->setExistingProperty(m_elementIndex, propName, v, scope.engine); - if (roleIndex != -1) { - QVector<int> roles; - roles << roleIndex; - m_model->emitItemsChanged(m_elementIndex, 1, roles); - } + if (roleIndex != -1) + m_model->emitItemsChanged(m_elementIndex, 1, QVector<int>(1, roleIndex)); } // Does the emission of the notifiers when we haven't created the meta-object yet @@ -1345,11 +1339,8 @@ void ModelObject::put(Managed *m, String *name, const Value &value) const int elementIndex = that->d()->m_elementIndex; const QString propName = name->toQString(); int roleIndex = that->d()->m_model->m_listModel->setExistingProperty(elementIndex, propName, value, eng); - if (roleIndex != -1) { - QVector<int> roles; - roles << roleIndex; - that->d()->m_model->emitItemsChanged(elementIndex, 1, roles); - } + if (roleIndex != -1) + that->d()->m_model->emitItemsChanged(elementIndex, 1, QVector<int>(1, roleIndex)); ModelNodeMetaObject *mo = ModelNodeMetaObject::get(that->object()); if (mo->initialized()) @@ -1543,14 +1534,10 @@ void DynamicRoleModelNodeMetaObject::propertyWritten(int index) } int elementIndex = parentModel->m_modelObjects.indexOf(m_owner); - int roleIndex = parentModel->m_roles.indexOf(QString::fromLatin1(name(index).constData())); - - if (elementIndex != -1 && roleIndex != -1) { - - QVector<int> roles; - roles << roleIndex; - - parentModel->emitItemsChanged(elementIndex, 1, roles); + if (elementIndex != -1) { + int roleIndex = parentModel->m_roles.indexOf(QString::fromLatin1(name(index).constData())); + if (roleIndex != -1) + parentModel->emitItemsChanged(elementIndex, 1, QVector<int>(1, roleIndex)); } } @@ -1919,14 +1906,14 @@ bool QQmlListModel::setData(const QModelIndex &index, const QVariant &value, int if (m_dynamicRoles) { const QByteArray property = m_roles.at(role).toUtf8(); if (m_modelObjects[row]->setValue(property, value)) { - emitItemsChanged(row, 1, QVector<int>() << role); + emitItemsChanged(row, 1, QVector<int>(1, role)); return true; } } else { const ListLayout::Role &r = m_listModel->getExistingRole(role); const int roleIndex = m_listModel->setOrCreateProperty(row, r.name, value); if (roleIndex != -1) { - emitItemsChanged(row, 1, QVector<int>() << role); + emitItemsChanged(row, 1, QVector<int>(1, role)); return true; } } @@ -2394,20 +2381,12 @@ void QQmlListModel::setProperty(int index, const QString& property, const QVaria roleIndex = m_roles.count(); m_roles.append(property); } - if (m_modelObjects[index]->setValue(property.toUtf8(), value)) { - QVector<int> roles; - roles << roleIndex; - emitItemsChanged(index, 1, roles); - } + if (m_modelObjects[index]->setValue(property.toUtf8(), value)) + emitItemsChanged(index, 1, QVector<int>(1, roleIndex)); } else { int roleIndex = m_listModel->setOrCreateProperty(index, property, value); - if (roleIndex != -1) { - - QVector<int> roles; - roles << roleIndex; - - emitItemsChanged(index, 1, roles); - } + if (roleIndex != -1) + emitItemsChanged(index, 1, QVector<int>(1, roleIndex)); } } @@ -2536,7 +2515,7 @@ void QQmlListModelParser::verifyBindings(const QV4::CompiledData::Unit *qmlUnit, { listElementTypeName = QString(); // unknown - foreach (const QV4::CompiledData::Binding *binding, bindings) { + for (const QV4::CompiledData::Binding *binding : bindings) { QString propName = qmlUnit->stringAt(binding->propertyNameIndex); if (!propName.isEmpty()) { // isn't default property error(binding, QQmlListModel::tr("ListModel: undefined property '%1'").arg(propName)); @@ -2557,7 +2536,7 @@ void QQmlListModelParser::applyBindings(QObject *obj, QV4::CompiledData::Compila bool setRoles = false; - foreach (const QV4::CompiledData::Binding *binding, bindings) { + for (const QV4::CompiledData::Binding *binding : bindings) { if (binding->type != QV4::CompiledData::Binding::Type_Object) continue; setRoles |= applyProperty(qmlUnit, binding, rv->m_listModel, /*outter element index*/-1); |