summaryrefslogtreecommitdiffstats
path: root/src/sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/models/qsqlquerymodel.cpp14
-rw-r--r--src/sql/models/qsqlquerymodel_p.h4
2 files changed, 8 insertions, 10 deletions
diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp
index dc9ef0d616..ea3bc7f20b 100644
--- a/src/sql/models/qsqlquerymodel.cpp
+++ b/src/sql/models/qsqlquerymodel.cpp
@@ -78,10 +78,10 @@ void QSqlQueryModelPrivate::prefetch(int limit)
atEnd = true; // this is the end.
}
if (newBottom.row() >= 0 && newBottom.row() > bottom.row()) {
- if (!resetting)
+ if (!nestedResetLevel)
q->beginInsertRows(QModelIndex(), bottom.row() + 1, newBottom.row());
bottom = newBottom;
- if (!resetting)
+ if (!nestedResetLevel)
q->endInsertRows();
} else {
bottom = newBottom;
@@ -215,10 +215,9 @@ bool QSqlQueryModel::canFetchMore(const QModelIndex &parent) const
void QSqlQueryModel::beginResetModel()
{
Q_D(QSqlQueryModel);
- if (!d->resetting) {
+ if (!d->nestedResetLevel)
QAbstractTableModel::beginResetModel();
- d->resetting = true;
- }
+ ++d->nestedResetLevel;
}
/*! \internal
@@ -226,10 +225,9 @@ void QSqlQueryModel::beginResetModel()
void QSqlQueryModel::endResetModel()
{
Q_D(QSqlQueryModel);
- if (d->resetting) {
- d->resetting = false;
+ --d->nestedResetLevel;
+ if (!d->nestedResetLevel)
QAbstractTableModel::endResetModel();
- }
}
/*! \fn int QSqlQueryModel::rowCount(const QModelIndex &parent) const
diff --git a/src/sql/models/qsqlquerymodel_p.h b/src/sql/models/qsqlquerymodel_p.h
index 3288d311a4..70f72f393f 100644
--- a/src/sql/models/qsqlquerymodel_p.h
+++ b/src/sql/models/qsqlquerymodel_p.h
@@ -67,7 +67,7 @@ class QSqlQueryModelPrivate: public QAbstractItemModelPrivate
{
Q_DECLARE_PUBLIC(QSqlQueryModel)
public:
- QSqlQueryModelPrivate() : atEnd(false), resetting(false) {}
+ QSqlQueryModelPrivate() : atEnd(false), nestedResetLevel(0) {}
~QSqlQueryModelPrivate();
void prefetch(int);
@@ -80,7 +80,7 @@ public:
uint atEnd : 1;
QVector<QHash<int, QVariant> > headers;
QVarLengthArray<int, 56> colOffsets; // used to calculate indexInQuery of columns
- bool resetting;
+ int nestedResetLevel;
};
// helpers for building SQL expressions