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:
parent
970f44bf48
commit
efd8e6922c
@ -471,6 +471,7 @@ void QSqlQueryModel::setQuery(const QString &query, const QSqlDatabase &db)
|
|||||||
void QSqlQueryModel::clear()
|
void QSqlQueryModel::clear()
|
||||||
{
|
{
|
||||||
Q_D(QSqlQueryModel);
|
Q_D(QSqlQueryModel);
|
||||||
|
beginResetModel();
|
||||||
d->error = QSqlError();
|
d->error = QSqlError();
|
||||||
d->atEnd = true;
|
d->atEnd = true;
|
||||||
d->query.clear();
|
d->query.clear();
|
||||||
@ -478,6 +479,7 @@ void QSqlQueryModel::clear()
|
|||||||
d->colOffsets.clear();
|
d->colOffsets.clear();
|
||||||
d->bottom = QModelIndex();
|
d->bottom = QModelIndex();
|
||||||
d->headers.clear();
|
d->headers.clear();
|
||||||
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -652,9 +652,11 @@ void QSqlRelationalTableModel::revertRow(int row)
|
|||||||
void QSqlRelationalTableModel::clear()
|
void QSqlRelationalTableModel::clear()
|
||||||
{
|
{
|
||||||
Q_D(QSqlRelationalTableModel);
|
Q_D(QSqlRelationalTableModel);
|
||||||
|
beginResetModel();
|
||||||
d->clearChanges();
|
d->clearChanges();
|
||||||
d->relations.clear();
|
d->relations.clear();
|
||||||
QSqlTableModel::clear();
|
QSqlTableModel::clear();
|
||||||
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1262,8 +1262,10 @@ void QSqlTableModel::setFilter(const QString &filter)
|
|||||||
void QSqlTableModel::clear()
|
void QSqlTableModel::clear()
|
||||||
{
|
{
|
||||||
Q_D(QSqlTableModel);
|
Q_D(QSqlTableModel);
|
||||||
|
beginResetModel();
|
||||||
d->clear();
|
d->clear();
|
||||||
QSqlQueryModel::clear();
|
QSqlQueryModel::clear();
|
||||||
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \reimp
|
/*! \reimp
|
||||||
|
@ -593,7 +593,7 @@ public:
|
|||||||
connect(this, SIGNAL(modelReset()), this, SLOT(modelResetSlot()));
|
connect(this, SIGNAL(modelReset()), this, SLOT(modelResetSlot()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void testme()
|
void testNested()
|
||||||
{
|
{
|
||||||
// Only the outermost beginResetModel/endResetModel should
|
// Only the outermost beginResetModel/endResetModel should
|
||||||
// emit signals.
|
// emit signals.
|
||||||
@ -618,6 +618,14 @@ public:
|
|||||||
QCOMPARE(gotReset, true);
|
QCOMPARE(gotReset, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void testClear() // QTBUG-49404: Basic test whether clear() emits signals.
|
||||||
|
{
|
||||||
|
gotAboutToBeReset = gotReset = false;
|
||||||
|
clear();
|
||||||
|
QVERIFY(gotAboutToBeReset);
|
||||||
|
QVERIFY(gotReset);
|
||||||
|
}
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void modelAboutToBeResetSlot() { gotAboutToBeReset = true; }
|
void modelAboutToBeResetSlot() { gotAboutToBeReset = true; }
|
||||||
void modelResetSlot() { gotReset = true; }
|
void modelResetSlot() { gotReset = true; }
|
||||||
@ -634,7 +642,8 @@ void tst_QSqlQueryModel::nestedResets()
|
|||||||
CHECK_DATABASE(db);
|
CHECK_DATABASE(db);
|
||||||
|
|
||||||
NestedResetsTest t;
|
NestedResetsTest t;
|
||||||
t.testme();
|
t.testClear();
|
||||||
|
t.testNested();
|
||||||
}
|
}
|
||||||
|
|
||||||
// For task 180617
|
// For task 180617
|
||||||
|
Loading…
x
Reference in New Issue
Block a user