diff options
Diffstat (limited to 'src/libsync/owncloudpropagator.cpp')
-rw-r--r-- | src/libsync/owncloudpropagator.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/libsync/owncloudpropagator.cpp b/src/libsync/owncloudpropagator.cpp index 1981fd7e7..f50201020 100644 --- a/src/libsync/owncloudpropagator.cpp +++ b/src/libsync/owncloudpropagator.cpp @@ -967,14 +967,11 @@ void PropagateDirectory::slotFirstJobFinished(SyncFileItem::Status status) void PropagateDirectory::slotSubJobsFinished(SyncFileItem::Status status) { if (!_item->isEmpty() && status == SyncFileItem::Success) { - if (!_item->_renameTarget.isEmpty()) { - if (_item->_instruction == CSYNC_INSTRUCTION_RENAME - && _item->_originalFile != _item->_renameTarget) { - // Remove the stale entries from the database. - propagator()->_journal->deleteFileRecord(_item->_originalFile, true); - } - - _item->_file = _item->_renameTarget; + // If a directory is renamed, recursively delete any stale items + // that may still exist below the old path. + if (_item->_instruction == CSYNC_INSTRUCTION_RENAME + && _item->_originalFile != _item->_renameTarget) { + propagator()->_journal->deleteFileRecord(_item->_originalFile, true); } // For new directories we always want to update the etag once |