diff options
author | Mark Brand <mabrand@mabrand.nl> | 2011-07-11 14:41:00 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-07 22:05:51 +0100 |
commit | 763d0a55e912689f2c0cbad41e81cdc3dbf402d0 (patch) | |
tree | 722646e0879737a5006ebe1924732e5fc3bb7839 /src/sql/models/qsqltablemodel_p.h | |
parent | 1247683d40c3fbb4b7ce50cc5361e2398b45875e (diff) |
QSqlTableModelPrivate::ModifiedRow guard private data
Even though ModifiedRow is not part of the public API, guarding its
data helps make clear the intended patterns of use.
"op" and "primaryValues" are read-only after construction.
setValue() encourages maintainers to let ModifiedRow manage the
"generated" flags of the record.
The primeInsert() signal still exposes the actual record, including
the "generated" flags, which is the justification for recRef().
Change-Id: I16d1610a8f9233af78b90662b08706b48ea19c41
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 | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/sql/models/qsqltablemodel_p.h b/src/sql/models/qsqltablemodel_p.h index 15cbe8ef7a..e6e70d23bc 100644 --- a/src/sql/models/qsqltablemodel_p.h +++ b/src/sql/models/qsqltablemodel_p.h @@ -94,22 +94,28 @@ public: enum Op { None, Insert, Update, Delete }; - struct ModifiedRow + class ModifiedRow { + public: inline ModifiedRow(Op o = None, const QSqlRecord &r = QSqlRecord(), const QSqlRecord &pVals = QSqlRecord()) - : op(o), rec(r), primaryValues(pVals) + : m_op(o), m_rec(r), m_primaryValues(pVals) { - for (int i = rec.count() - 1; i >= 0; --i) - rec.setGenerated(i, false); + for (int i = m_rec.count() - 1; i >= 0; --i) + m_rec.setGenerated(i, false); } + inline Op op() const { return m_op; } + inline QSqlRecord rec() const { return m_rec; } + inline QSqlRecord& recRef() { return m_rec; } + inline QSqlRecord primaryValues() const { return m_primaryValues; } inline void setValue(int c, const QVariant &v) { - rec.setValue(c, v); - rec.setGenerated(c, true); + m_rec.setValue(c, v); + m_rec.setGenerated(c, true); } - Op op; - QSqlRecord rec; - QSqlRecord primaryValues; + private: + Op m_op; + QSqlRecord m_rec; + QSqlRecord m_primaryValues; }; typedef QMap<int, ModifiedRow> CacheMap; |