Details
-
Bug
-
Resolution: Done
-
P4: Low
-
5.11.0
-
None
-
Ibaea17530f15627a3cb8003e5284e54001731ded
Description
QStringListModel currently does not reimplement setItemData this causes
QMap<int,QVariant> itemData;
itemData.insert(Qt::DisplayRole,5);
itemData.insert(Qt::EditRole,2);
stringListModel->setItemData(stringListModel->index(0,0),itemData);
to emit dataChanged twice.
A possible implementation that fixes the problem would be
bool QStringListModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles){ auto roleIter = roles.find(Qt::EditRole); if(roleIter==roles.end()){ roleIter = roles.find(Qt::DisplayRole); if(roleIter==roles.end()) return false; } return setData(index,roleIter.value(),roleIter.key()); }