diff --git a/declarativeimports/core/datamodel.cpp b/declarativeimports/core/datamodel.cpp index a95e7aa9a..37f9fa2f8 100644 --- a/declarativeimports/core/datamodel.cpp +++ b/declarativeimports/core/datamodel.cpp @@ -102,13 +102,15 @@ void DataModel::setItems(const QVariantList &list) //convert to vector, so data() will be O(1) m_items = list.toVector(); - int role = Qt::UserRole; - m_roleNames.clear(); - foreach (QString roleName, list.first().value().keys()) { - ++role; - m_roleNames[role] = roleName.toLatin1(); + if (!list.isEmpty()) { + int role = Qt::UserRole; + m_roleNames.clear(); + foreach (QString roleName, list.first().value().keys()) { + ++role; + m_roleNames[role] = roleName.toLatin1(); + } + setRoleNames(m_roleNames); } - setRoleNames(m_roleNames); //make the declarative view reload everything, //would be nice an incremental update but is not possible