QSqlTableModel: handle changes between submit and select
authorMark Brand <mabrand@mabrand.nl>
Wed, 15 Feb 2012 08:56:23 +0000 (09:56 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 6 Mar 2012 23:01:07 +0000 (00:01 +0100)
commitb979956ec46093e5668c2b264f9b68da3cbb0326
tree14d05c1fe58c08a29ff8c4bf6703a247c38979b3
parentd7b720dd3ee7a095abe7e283d1bed881268b0f5e
QSqlTableModel: handle changes between submit and select

Once an insert has been submitted, the cached record behaves like an
update. For row bookkeeping, we still have to remember that it was
originally inserted and is not in the query rows.

Between submitting a delete and selecting, we remove the values
from the deleted record. This causes a blank row to be displayed.
Read-only flag is set for cells in deleted row.

Reverting between submit and select means going back to the last
submitted values.

When removing rows, it's better to process from highest row numbers
to lowest. This avoids complications with higher rows shifting down
when lower rows are removed.

Change-Id: I8752fa11f7a1b88f2a71b9e03a020ac37e62487f
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
src/sql/models/qsqltablemodel.cpp
src/sql/models/qsqltablemodel_p.h
tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp