summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-01-03 00:02:32 +0100
committerArno <arno@disconnect.de>2018-01-03 00:02:32 +0100
commit7b7ef1e0d88bbec407de65eac59304bcc01a9c75 (patch)
tree63d112e4c0010b7385bdcef19876ef4d9e691fe7
parent1186d454bb421fc69c313401dc9542e9510f7e83 (diff)
downloadShemovCleaner-7b7ef1e0d88bbec407de65eac59304bcc01a9c75.tar.gz
ShemovCleaner-7b7ef1e0d88bbec407de65eac59304bcc01a9c75.tar.bz2
ShemovCleaner-7b7ef1e0d88bbec407de65eac59304bcc01a9c75.zip
Update the cache when copying or moving files
-rw-r--r--filewidget.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index 0ee7d2d..b637e4c 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -525,22 +525,33 @@ void FileWidget::paste(){
int count = 0;
mProgressBar->reset();
mProgressBar->setMaximum(urls.count() - 1);
- foreach (QUrl u, urls){
+ for(QUrl u : urls){
QString path = u.toLocalFile();
QString newDir = mDir->text();
QFileInfo fi(path);
QString newFile = QString("%1/%2").arg(newDir).arg(fi.fileName());
mProgressBar->setValue(++count);
+ CachedFileData *fd = mFileCache[path];
if(mFileAction == Copy){
QString msg = QString(tr("Copying %1").arg(path));
emit statusMessage(msg);
qApp->processEvents();
- QFile::copy(path, newFile);
+ if(QFile::copy(path, newFile)){
+ CachedFileData *fdNew = new CachedFileData(*fd);
+ fdNew->fullPath = newFile;
+ mFileCache.insert(newFile, fdNew);
+ }
}else if(mFileAction == Cut){
QString msg = QString(tr("Moving %1").arg(path));
emit statusMessage(msg);
qApp->processEvents();
- QFile::rename(path, newFile);
+ if(QFile::rename(path, newFile)){
+ CachedFileData *fd = mFileCache.take(path);
+ if(fd){
+ mFileCache.remove(path);
+ mFileCache.insert(newFile, fd);
+ }
+ }
}
emit statusMessage("Finished Paste!");
}