From 1186d454bb421fc69c313401dc9542e9510f7e83 Mon Sep 17 00:00:00 2001 From: Arno Date: Tue, 2 Jan 2018 23:43:08 +0100 Subject: Optimize deleteFiles Only remove something from the view if deletion was successful. If it was a file, try to remove it from the cache. --- filewidget.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/filewidget.cpp b/filewidget.cpp index d3fe7d9..0ee7d2d 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -730,17 +730,22 @@ void FileWidget::deleteFiles(){ for(const QModelIndex& idx : selFiles){ QString path = idx.data(FullPathRole).toString(); QFileInfo fi(path); + bool success = false; if(fi.isDir()){ QDir d(fi.absoluteFilePath()); - d.removeRecursively(); + success = d.removeRecursively(); }else{ - if(!QFile::remove(path)){ + success = QFile::remove(path); + if(!success){ QFile f(path); f.setPermissions(QFile::ReadOther | QFile::WriteOther); - f.remove(); + success = f.remove(); } } - removed << idx.data().toString(); + if(success){ + mFileCache.remove(fi.absoluteFilePath()); + removed << idx.data().toString(); + } } for(const QString& f : removed){ QList res = mModel->findItems(f, Qt::MatchExactly, NameColumn); -- cgit v1.2.3-70-g09d2