summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sql/models/qsqltablemodel.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp
index c895c39212..b36a54bbe9 100644
--- a/src/sql/models/qsqltablemodel.cpp
+++ b/src/sql/models/qsqltablemodel.cpp
@@ -461,23 +461,14 @@ bool QSqlTableModel::isDirty(const QModelIndex &index) const
if (!index.isValid())
return false;
- switch (d->strategy) {
- case OnFieldChange:
- return false;
- case OnRowChange: {
- const QSqlTableModelPrivate::ModifiedRow row = d->cache.value(index.row());
- return row.op() == QSqlTableModelPrivate::Update
- && row.rec().isGenerated(index.column());
- }
- case OnManualSubmit: {
- const QSqlTableModelPrivate::ModifiedRow row = d->cache.value(index.row());
- return row.op() == QSqlTableModelPrivate::Insert
- || row.op() == QSqlTableModelPrivate::Delete
- || (row.op() == QSqlTableModelPrivate::Update
- && row.rec().isGenerated(index.column()));
- }
- }
- return false;
+ const QSqlTableModelPrivate::ModifiedRow row = d->cache.value(index.row());
+ if (row.submitted())
+ return false;
+
+ return row.op() == QSqlTableModelPrivate::Insert
+ || row.op() == QSqlTableModelPrivate::Delete
+ || (row.op() == QSqlTableModelPrivate::Update
+ && row.rec().isGenerated(index.column()));
}
/*!