From 678d56ccf1e6970c2cfe149b99f080ec1002c89f Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Wed, 8 Feb 2012 09:35:38 +0100 Subject: [PATCH] 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 --- src/sql/models/qsqltablemodel.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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; } -- 2.7.4