diff options
author | Mark Brand <mabrand@mabrand.nl> | 2012-02-08 00:45:47 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-09 10:45:38 +0100 |
commit | 68cee5258b3db95aaf98c456a257863a2ef7ba14 (patch) | |
tree | d0c534ffa3de60a6256c89c66ab36b2a16ffd8d4 /src/sql | |
parent | 9c99f23ffb1666dae34f0a3aa0182f43de8e7d0c (diff) |
QSqlTableModel::insertRecord(): clean up after failed setRecord()
Change-Id: Ic9f314144bd3ccf4b59b9cb3f0d79f8d6f97a824
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
Diffstat (limited to 'src/sql')
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index 9e1cfe3051..35346c0f83 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -1079,8 +1079,11 @@ bool QSqlTableModel::insertRecord(int row, const QSqlRecord &record) row = rowCount(); if (!insertRow(row, QModelIndex())) return false; - if (!setRecord(row, record)) + if (!setRecord(row, record)) { + if (d->strategy == OnManualSubmit) + revertRow(row); return false; + } if (d->strategy == OnFieldChange || d->strategy == OnRowChange) return submit(); return true; |