QSqlTableModel::setData(): call dataChanged() before select()

Emit dataChanged() before a possible new select instead of after.
The select reinserts all the rows, emitting signals for that, so
there isn't any point to dataChanged() afterwards.

Change-Id: I698a0d385f97104891343d94cc27e4ecf3a7233c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
bb10
Mark Brand 2012-02-08 09:35:38 +01:00 committed by Qt by Nokia
parent f3138fa080
commit 678d56ccf1
1 changed files with 1 additions and 2 deletions

View File

@ -506,6 +506,7 @@ bool QSqlTableModel::setData(const QModelIndex &index, const QVariant &value, in
}
row.setValue(index.column(), value);
emit dataChanged(index, index);
bool isOk = true;
if (d->strategy == OnFieldChange && row.op() != QSqlTableModelPrivate::Insert) {
@ -517,8 +518,6 @@ bool QSqlTableModel::setData(const QModelIndex &index, const QVariant &value, in
select();
}
emit dataChanged(index, index);
return isOk;
}