QFileDialog can delete files too, not just directories

After Ic12de12ec51c20de52d040514e90be5e783add43 this functionality
was broken.  Added an autotest.

Task-number: QTBUG-34159
Change-Id: I8f41b7073dc57fea855ab87796f09e8a91520d13
Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
Shawn Rutledge 2013-10-23 12:22:58 +02:00 committed by The Qt Project
parent 483a9d83f0
commit 7e30d3afd3
2 changed files with 22 additions and 0 deletions

View File

@ -204,6 +204,8 @@ bool QFileSystemModel::remove(const QModelIndex &aindex)
#ifndef QT_NO_FILESYSTEMWATCHER
d->fileInfoGatherer.removePath(path);
#endif
if (QFileInfo(path).isFile())
return QFile::remove(path);
return QDir(path).removeRecursively();
}

View File

@ -115,6 +115,7 @@ private slots:
void sort();
void mkdir();
void deleteFile();
void caseSensitivity();
@ -927,6 +928,25 @@ void tst_QFileSystemModel::mkdir()
QCOMPARE(oldRow, idx.row());
}
void tst_QFileSystemModel::deleteFile()
{
QString newFilePath = QDir::temp().filePath("NewFileDeleteTest");
QFile newFile(newFilePath);
if (newFile.exists()) {
if (!newFile.remove())
qWarning() << "unable to remove" << newFilePath;
QTest::qWait(WAITTIME);
}
if (!newFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
qWarning() << "unable to create" << newFilePath;
}
newFile.close();
QModelIndex idx = model->index(newFilePath);
QVERIFY(idx.isValid());
QVERIFY(model->remove(idx));
QVERIFY(!newFile.exists());
}
void tst_QFileSystemModel::caseSensitivity()
{
QString tmp = flatDirTestPath;