From: Mark Brand Date: Wed, 8 Feb 2012 08:35:38 +0000 (+0100) Subject: QSqlTableModel::setData(): call dataChanged() before select() X-Git-Tag: qt-v5.0.0-alpha1~1235 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=678d56ccf1e6970c2cfe149b99f080ec1002c89f;p=profile%2Fivi%2Fqtbase.git 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 --- diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index d943b5d..38705c7 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -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; }