void ImageModel::updateRows(const QModelIndex &, int start, int end) { for (int row = start; row <= end; ++row) { QJsonValue rowData = EnginioModel::data(index(row)).value<QJsonValue>(); QString id = rowData.toObject().value("id").toString(); if (id.isEmpty() || m_images.contains(id)) continue; ImageObject *image = new ImageObject(client()); connect(image, SIGNAL(imageChanged(QString)), this, SLOT(imageChanged(QString))); m_images.insert(id, image); image->setObject(rowData.toObject()); QModelIndex changedIndex = index(row); emit dataChanged(changedIndex, changedIndex); } }