summaryrefslogtreecommitdiffstats
path: root/src/sql/models/qsqltablemodel_p.h
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2011-07-11 14:41:00 +0200
committerQt by Nokia <qt-info@nokia.com>2012-02-07 22:05:51 +0100
commit763d0a55e912689f2c0cbad41e81cdc3dbf402d0 (patch)
tree722646e0879737a5006ebe1924732e5fc3bb7839 /src/sql/models/qsqltablemodel_p.h
parent1247683d40c3fbb4b7ce50cc5361e2398b45875e (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.h24
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;