if (row.op() == QSqlTableModelPrivate::None)
row = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Update,
- record(index.row()));
+ QSqlQueryModel::record(index.row()));
row.setValue(index.column(), value);
emit dataChanged(index, index);
revertRow(idx);
} else {
if (mrow.op() == QSqlTableModelPrivate::None)
- mrow = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Delete, record(idx));
+ mrow = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Delete,
+ QSqlQueryModel::record(idx));
else
mrow.setOp(QSqlTableModelPrivate::Delete);
if (d->strategy == OnManualSubmit)
return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable;
}
+QSqlRecord QSqlTableModel::record() const
+{
+ return QSqlQueryModel::record();
+}
+
+/*!
+\reimp
+\since 5.0
+ Returns the record at \a row in the model.
+
+ If \a row is the index of a valid row, the record
+ will be populated with values from that row.
+
+ If the model is not initialized, an empty record will be
+ returned.
+
+ \sa QSqlRecord::isEmpty()
+*/
+QSqlRecord QSqlTableModel::record(int row) const
+{
+ Q_D(const QSqlTableModel);
+
+ if (d->cache.contains(row))
+ return d->cache.value(row).rec();
+
+ return QSqlQueryModel::record(row);
+}
+
/*!
Applies \a values to the \a row in the model. The source and
target fields are mapped by field name, not by position in
QSqlTableModelPrivate::ModifiedRow &mrow = d->cache[row];
if (mrow.op() == QSqlTableModelPrivate::None)
mrow = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Update,
- record(row));
+ QSqlQueryModel::record(row));
Map::const_iterator i = map.constBegin();
const Map::const_iterator e = map.constEnd();