QSqlQueryModel::clear(): Call begin/endResetModel().

Call begin/endResetModel() in QSqlQueryModel and all
derived classes.

Task-number: QTBUG-49404
Change-Id: I11492d6386efb4c945c246a6379aaa6ca4502a25
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
This commit is contained in:
Friedemann Kleint 2015-11-18 09:58:34 +01:00
parent 970f44bf48
commit efd8e6922c
4 changed files with 17 additions and 2 deletions

View File

@ -471,6 +471,7 @@ void QSqlQueryModel::setQuery(const QString &query, const QSqlDatabase &db)
void QSqlQueryModel::clear()
{
Q_D(QSqlQueryModel);
beginResetModel();
d->error = QSqlError();
d->atEnd = true;
d->query.clear();
@ -478,6 +479,7 @@ void QSqlQueryModel::clear()
d->colOffsets.clear();
d->bottom = QModelIndex();
d->headers.clear();
endResetModel();
}
/*!

View File

@ -652,9 +652,11 @@ void QSqlRelationalTableModel::revertRow(int row)
void QSqlRelationalTableModel::clear()
{
Q_D(QSqlRelationalTableModel);
beginResetModel();
d->clearChanges();
d->relations.clear();
QSqlTableModel::clear();
endResetModel();
}

View File

@ -1262,8 +1262,10 @@ void QSqlTableModel::setFilter(const QString &filter)
void QSqlTableModel::clear()
{
Q_D(QSqlTableModel);
beginResetModel();
d->clear();
QSqlQueryModel::clear();
endResetModel();
}
/*! \reimp

View File

@ -593,7 +593,7 @@ public:
connect(this, SIGNAL(modelReset()), this, SLOT(modelResetSlot()));
}
void testme()
void testNested()
{
// Only the outermost beginResetModel/endResetModel should
// emit signals.
@ -618,6 +618,14 @@ public:
QCOMPARE(gotReset, true);
}
void testClear() // QTBUG-49404: Basic test whether clear() emits signals.
{
gotAboutToBeReset = gotReset = false;
clear();
QVERIFY(gotAboutToBeReset);
QVERIFY(gotReset);
}
private slots:
void modelAboutToBeResetSlot() { gotAboutToBeReset = true; }
void modelResetSlot() { gotReset = true; }
@ -634,7 +642,8 @@ void tst_QSqlQueryModel::nestedResets()
CHECK_DATABASE(db);
NestedResetsTest t;
t.testme();
t.testClear();
t.testNested();
}
// For task 180617