From de74ac587352380fdecbb21d5a09c73ac16db125 Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 27 Dec 2017 10:57:24 +0100 Subject: Get rid of homebrewed deleteRecursive Since Qt 5.0 QDir has the member removeRecursively, so use it. Just be careful what you feed it. Don't use QFileInfo::dir, because that's the *containing* directory. That would delete everything *including* the parent directory! --- filesystemwidget.cpp | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'filesystemwidget.cpp') diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 970fd33..8ae5a1f 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -285,7 +285,12 @@ void FilesystemWidget::deleteFiles(){ QModelIndex real = mFileProxy->mapToSource(idx); if(real.isValid()){ QFileInfo fi(real.data(SmDirModel::FullPathRole).toString()); - deleteRecursive(fi); + if(fi.isDir()){ + QDir d(fi.absoluteFilePath()); + d.removeRecursively(); + }else if(fi.isFile()){ + QFile::remove(fi.absoluteFilePath()); + } } } } @@ -613,23 +618,6 @@ void FilesystemWidget::centerCurrent(){ mDirView->scrollTo(curIdx, QAbstractItemView::PositionAtCenter); } -void FilesystemWidget::deleteRecursive(const QFileInfo &start){ - if(start.isDir()){ - QDir curDir = QDir(start.absoluteFilePath());; - foreach(QFileInfo info, curDir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot)){ - if(info.isDir()){ - deleteRecursive(info); - }else{ - QFile::remove(info.absoluteFilePath()); - } - } - QDir dir = start.absoluteDir(); - dir.rmdir(start.fileName()); - }else{ - QFile::remove(start.absoluteFilePath()); - } -} - QFileInfoList FilesystemWidget::getRecursive(const QFileInfo &start) const{ QFileInfoList retval; if(start.isDir()){ -- cgit v1.2.3-70-g09d2