diff options
author | Arno <arno@disconnect.de> | 2017-12-27 10:57:24 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-12-27 10:57:24 +0100 |
commit | de74ac587352380fdecbb21d5a09c73ac16db125 (patch) | |
tree | d21c839350c78f3b2c7c48258f2b3e9839b43821 | |
parent | d4a929cd1d6bdda3173ad4dbf74eae378f277bfc (diff) | |
download | SheMov-de74ac587352380fdecbb21d5a09c73ac16db125.tar.gz SheMov-de74ac587352380fdecbb21d5a09c73ac16db125.tar.bz2 SheMov-de74ac587352380fdecbb21d5a09c73ac16db125.zip |
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!
-rw-r--r-- | filesystemwidget.cpp | 24 | ||||
-rw-r--r-- | filesystemwidget.h | 1 |
2 files changed, 6 insertions, 19 deletions
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()){ diff --git a/filesystemwidget.h b/filesystemwidget.h index 8ecffca..e535d46 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -86,7 +86,6 @@ class FilesystemWidget : public QWidget { void resizeFileView(); private: - void deleteRecursive(const QFileInfo &start); QFileInfoList getRecursive(const QFileInfo &start) const; void copyFiles(const QStringList &files, const QString &dest); void moveFiles(const QStringList &files, const QString &dest); |