diff options
author | Mark Brand <mabrand@mabrand.nl> | 2011-07-06 09:49:45 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-05 17:50:21 +0100 |
commit | 48c68b05465e488020e241dd66290777b0eeeb3d (patch) | |
tree | 3db00d1db516cc4a65a49449dd13c3a54106ee86 /src/sql/models/qsqltablemodel_p.h | |
parent | 23457bd6d9d54df2cab505e581e72f9942b0fdbb (diff) |
ModifiedRow: use for all edit strategies
Previously ModifiedRow was used only for OnManualSubmit and
a seperate buffer and utility methods were used for OnFieldChange
and OnRowChange.
Also, initialization of the edit buffer is done by ModifiedRow
instead of a helper function.
Change-Id: I3316498e5bb10c416138ca14c3a7f8b143c8e544
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
Diffstat (limited to 'src/sql/models/qsqltablemodel_p.h')
-rw-r--r-- | src/sql/models/qsqltablemodel_p.h | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/sql/models/qsqltablemodel_p.h b/src/sql/models/qsqltablemodel_p.h index af3e833ff1..b69f53473c 100644 --- a/src/sql/models/qsqltablemodel_p.h +++ b/src/sql/models/qsqltablemodel_p.h @@ -64,29 +64,23 @@ class QSqlTableModelPrivate: public QSqlQueryModelPrivate public: QSqlTableModelPrivate() - : editIndex(-1), insertIndex(-1), sortColumn(-1), + : sortColumn(-1), sortOrder(Qt::AscendingOrder), strategy(QSqlTableModel::OnRowChange) {} void clear(); QSqlRecord primaryValues(int index); - virtual void clearEditBuffer(); virtual void clearCache(); - static void clearGenerated(QSqlRecord &rec); - static void setGeneratedValue(QSqlRecord &rec, int c, QVariant v); QSqlRecord record(const QVector<QVariant> &values) const; bool exec(const QString &stmt, bool prepStatement, const QSqlRecord &rec, const QSqlRecord &whereValues); virtual void revertCachedRow(int row); - void revertInsertedRow(); bool setRecord(int row, const QSqlRecord &record); virtual int nameToIndex(const QString &name) const; void initRecordAndPrimaryIndex(); QSqlDatabase db; - int editIndex; - int insertIndex; int sortColumn; Qt::SortOrder sortOrder; @@ -103,7 +97,11 @@ public: struct ModifiedRow { inline ModifiedRow(Op o = None, const QSqlRecord &r = QSqlRecord(), const QSqlRecord &pVals = QSqlRecord()) - : op(o), rec(r), primaryValues(pVals) { clearGenerated(rec); } + : op(o), rec(r), primaryValues(pVals) + { + for (int i = rec.count() - 1; i >= 0; --i) + rec.setGenerated(i, false); + } inline void setValue(int c, const QVariant &v) { rec.setValue(c, v); @@ -114,8 +112,6 @@ public: QSqlRecord primaryValues; }; - QSqlRecord editBuffer; - typedef QMap<int, ModifiedRow> CacheMap; CacheMap cache; }; |