summaryrefslogtreecommitdiffstats
path: root/src/sql/models/qsqltablemodel_p.h
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2011-07-06 09:49:45 +0200
committerQt by Nokia <qt-info@nokia.com>2012-02-05 17:50:21 +0100
commit48c68b05465e488020e241dd66290777b0eeeb3d (patch)
tree3db00d1db516cc4a65a49449dd13c3a54106ee86 /src/sql/models/qsqltablemodel_p.h
parent23457bd6d9d54df2cab505e581e72f9942b0fdbb (diff)
ModifiedRow: use for all edit strategies
Previously ModifiedRow was used only for OnManualSubmit and a seperate buffer and utility methods were used for OnFieldChange and OnRowChange. Also, initialization of the edit buffer is done by ModifiedRow instead of a helper function. Change-Id: I3316498e5bb10c416138ca14c3a7f8b143c8e544 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.h16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/sql/models/qsqltablemodel_p.h b/src/sql/models/qsqltablemodel_p.h
index af3e833ff1..b69f53473c 100644
--- a/src/sql/models/qsqltablemodel_p.h
+++ b/src/sql/models/qsqltablemodel_p.h
@@ -64,29 +64,23 @@ class QSqlTableModelPrivate: public QSqlQueryModelPrivate
public:
QSqlTableModelPrivate()
- : editIndex(-1), insertIndex(-1), sortColumn(-1),
+ : sortColumn(-1),
sortOrder(Qt::AscendingOrder),
strategy(QSqlTableModel::OnRowChange)
{}
void clear();
QSqlRecord primaryValues(int index);
- virtual void clearEditBuffer();
virtual void clearCache();
- static void clearGenerated(QSqlRecord &rec);
- static void setGeneratedValue(QSqlRecord &rec, int c, QVariant v);
QSqlRecord record(const QVector<QVariant> &values) const;
bool exec(const QString &stmt, bool prepStatement,
const QSqlRecord &rec, const QSqlRecord &whereValues);
virtual void revertCachedRow(int row);
- void revertInsertedRow();
bool setRecord(int row, const QSqlRecord &record);
virtual int nameToIndex(const QString &name) const;
void initRecordAndPrimaryIndex();
QSqlDatabase db;
- int editIndex;
- int insertIndex;
int sortColumn;
Qt::SortOrder sortOrder;
@@ -103,7 +97,11 @@ public:
struct ModifiedRow
{
inline ModifiedRow(Op o = None, const QSqlRecord &r = QSqlRecord(), const QSqlRecord &pVals = QSqlRecord())
- : op(o), rec(r), primaryValues(pVals) { clearGenerated(rec); }
+ : op(o), rec(r), primaryValues(pVals)
+ {
+ for (int i = rec.count() - 1; i >= 0; --i)
+ rec.setGenerated(i, false);
+ }
inline void setValue(int c, const QVariant &v)
{
rec.setValue(c, v);
@@ -114,8 +112,6 @@ public:
QSqlRecord primaryValues;
};
- QSqlRecord editBuffer;
-
typedef QMap<int, ModifiedRow> CacheMap;
CacheMap cache;
};