diff options
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 25 |
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())); } /*! |