From 763d0a55e912689f2c0cbad41e81cdc3dbf402d0 Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Mon, 11 Jul 2011 14:41:00 +0200 Subject: 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 --- src/sql/models/qsqltablemodel_p.h | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'src/sql/models/qsqltablemodel_p.h') 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 CacheMap; -- cgit v1.2.3