diff options
Diffstat (limited to 'filewidget.cpp')
-rw-r--r-- | filewidget.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/filewidget.cpp b/filewidget.cpp index 2d6acac..a7c1137 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -248,6 +248,27 @@ void FileWidget::writeSettings(){ s.setValue("video/searchdir", mDir->text()); } +void FileWidget::deleteRecursive(const QFileInfo &start){ + QString msg = QString(tr("Removed %1")); + if(start.isDir()){ + QDir curDir(start.absoluteFilePath()); + foreach(QFileInfo fi, curDir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot)){ + if(fi.isDir()){ + deleteRecursive(fi); + }else{ + QFile::remove(fi.absoluteFilePath()); + emit statusMessage(msg.arg(fi.absoluteFilePath())); + } + } + QDir dir = start.absoluteDir(); + dir.rmdir(start.fileName()); + emit statusMessage(msg.arg(start.absoluteFilePath())); + }else{ + QFile::remove(start.absoluteFilePath()); + emit statusMessage(start.absoluteFilePath()); + } +} + void FileWidget::filter(){ mProxy->setFilterRegExp(mFilter->text()); mProxy->setFilterKeyColumn(NameColumn); @@ -334,8 +355,8 @@ void FileWidget::deleteFiles(){ int retval = QMessageBox::question(this, tr("Delete files..."), msg); if(retval == QMessageBox::Yes){ foreach(QModelIndex idx, selFiles){ - QString fp = idx.data(FullPathRole).toString(); - QFile::remove(fp); + QFileInfo fi(idx.data(FullPathRole).toString()); + deleteRecursive(fi); } gatherData(); } |