QSqlTableModel::removeRows(): don't emit extra beforeDelete
Qt 5 seems like a welcome opportunity to stop emitting this spurious beforeDelete signal. Change-Id: Ib8628343ca9b8fdd85c154a206c7e2bf2c4c9dc1 Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
This commit is contained in:
parent
63f634322b
commit
f5e1da12f0
2
dist/changes-5.0.0
vendored
2
dist/changes-5.0.0
vendored
@ -329,6 +329,8 @@ QTestLib
|
||||
and log formats simultaneously.
|
||||
|
||||
|
||||
* removeRows() no longer emits extra beforeDelete signal for out of range row.
|
||||
|
||||
****************************************************************************
|
||||
* Database Drivers *
|
||||
****************************************************************************
|
||||
|
@ -990,8 +990,6 @@ bool QSqlTableModel::removeRows(int row, int count, const QModelIndex &parent)
|
||||
if (parent.isValid() || row < 0 || count <= 0)
|
||||
return false;
|
||||
|
||||
int initialRowCount = rowCount();
|
||||
|
||||
int i;
|
||||
for (i = 0; i < count && row + i < rowCount(); ++i) {
|
||||
int idx = row + i;
|
||||
@ -1012,12 +1010,6 @@ bool QSqlTableModel::removeRows(int row, int count, const QModelIndex &parent)
|
||||
if (d->strategy != OnManualSubmit && i > 0)
|
||||
submit();
|
||||
|
||||
// historical bug: emit beforeDelete for 1st row beyond end
|
||||
if (d->strategy != OnManualSubmit) {
|
||||
if (row + count > initialRowCount)
|
||||
emit beforeDelete(qMax(initialRowCount, row));
|
||||
}
|
||||
|
||||
if (i < count)
|
||||
return false;
|
||||
|
||||
|
@ -703,10 +703,9 @@ void tst_QSqlTableModel::removeRows()
|
||||
QVERIFY(!model.removeRows(1, 0, model.index(2, 0))); // can't pass a valid modelindex
|
||||
|
||||
QVERIFY_SQL(model, removeRows(0, 2));
|
||||
QCOMPARE(beforeDeleteSpy.count(), 3);
|
||||
QVERIFY(beforeDeleteSpy.at(0).at(0).toInt() == 5);
|
||||
QVERIFY(beforeDeleteSpy.at(1).at(0).toInt() == 0);
|
||||
QVERIFY(beforeDeleteSpy.at(2).at(0).toInt() == 1);
|
||||
QCOMPARE(beforeDeleteSpy.count(), 2);
|
||||
QVERIFY(beforeDeleteSpy.at(0).at(0).toInt() == 0);
|
||||
QVERIFY(beforeDeleteSpy.at(1).at(0).toInt() == 1);
|
||||
QCOMPARE(model.rowCount(), 1);
|
||||
QCOMPARE(model.data(model.index(0, 1)).toString(), QString("vohi"));
|
||||
model.clear();
|
||||
|
Loading…
Reference in New Issue
Block a user