if (row.op() == QSqlTableModelPrivate::None)
row = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Update,
- d->rec);
+ record(index.row()));
row.setValue(index.column(), value);
emit dataChanged(index, index);
// so fake this by adjusting row
--row;
} else {
- d->cache[idx] = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Delete);
+ d->cache[idx] = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Delete, record(idx));
if (d->strategy == OnManualSubmit)
emit headerDataChanged(Qt::Vertical, idx, idx);
}
QSqlTableModelPrivate::ModifiedRow &mrow = d->cache[row];
if (mrow.op() == QSqlTableModelPrivate::None)
mrow = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Update,
- d->rec);
+ record(row));
Map::const_iterator i = map.constBegin();
const Map::const_iterator e = map.constEnd();
public:
inline ModifiedRow(Op o = None, const QSqlRecord &r = QSqlRecord())
: m_op(o), m_rec(r), m_submitted(false)
- {
- for (int i = m_rec.count() - 1; i >= 0; --i)
- m_rec.setGenerated(i, false);
- }
+ { init_rec(); }
inline Op op() const { return m_op; }
inline QSqlRecord rec() const { return m_rec; }
inline QSqlRecord& recRef() { return m_rec; }
inline bool submitted() const { return m_submitted; }
inline void setSubmitted() { m_submitted = true; }
private:
+ void init_rec()
+ {
+ for (int i = m_rec.count() - 1; i >= 0; --i)
+ m_rec.setGenerated(i, false);
+ m_db_values = m_rec;
+ }
Op m_op;
QSqlRecord m_rec;
+ QSqlRecord m_db_values;
bool m_submitted;
};