summaryrefslogtreecommitdiffstats
path: root/src/sql/models/qsqlquerymodel.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-10 13:40:34 (GMT)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-10 13:40:34 (GMT)
commit2c4bbeecd084bf4565643d4cd42de3be1aed5681 (patch)
treedc40f7bba6c74248c9a0359b05b39bce0e6decb2 /src/sql/models/qsqlquerymodel.cpp
parentd1c5585faa066a6693c24600cf8a1c42a285fe3b (diff)
parent7b15c669c336a1d76e3ac001fadde38a294e3e80 (diff)
downloadQt-2c4bbeecd084bf4565643d4cd42de3be1aed5681.zip
Qt-2c4bbeecd084bf4565643d4cd42de3be1aed5681.tar.gz
Qt-2c4bbeecd084bf4565643d4cd42de3be1aed5681.tar.bz2
Merge remote branch 'mainline/4.6' into 4.6
Conflicts: tools/configure/configureapp.cpp
Diffstat (limited to 'src/sql/models/qsqlquerymodel.cpp')
-rw-r--r--src/sql/models/qsqlquerymodel.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp
index 1719239..319055e 100644
--- a/src/sql/models/qsqlquerymodel.cpp
+++ b/src/sql/models/qsqlquerymodel.cpp
@@ -314,6 +314,7 @@ void QSqlQueryModel::setQuery(const QSqlQuery &query)
QSqlRecord newRec = query.record();
bool columnsChanged = (newRec != d->rec);
bool hasQuerySize = query.driver()->hasFeature(QSqlDriver::QuerySize);
+ bool hasNewData = (newRec != QSqlRecord()) || !query.lastError().isValid();
if (d->colOffsets.size() != newRec.count() || columnsChanged)
d->initColOffsets(newRec.count());
@@ -328,13 +329,13 @@ void QSqlQueryModel::setQuery(const QSqlQuery &query)
d->error = QSqlError();
d->query = query;
d->rec = newRec;
-
+
if (mustClearModel)
endRemoveRows();
-
- d->atEnd = false;
- if (columnsChanged)
+ d->atEnd = false;
+
+ if (columnsChanged && hasNewData)
reset();
if (!query.isActive() || query.isForwardOnly()) {