[Pkg-owncloud-commits] [owncloud-client] 109/332: SocketApi: Fix recursiveFolderStatus
Sandro Knauß
hefee-guest at moszumanska.debian.org
Thu Aug 14 21:06:46 UTC 2014
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 1e306012ec5475156933c740b7f3616defbbee89
Author: Olivier Goffart <ogoffart at woboq.com>
Date: Thu Jun 19 15:25:30 2014 +0200
SocketApi: Fix recursiveFolderStatus
If only one file is EVAL or NEW, this mean the folder need to be sync
---
src/mirall/socketapi.cpp | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/src/mirall/socketapi.cpp b/src/mirall/socketapi.cpp
index 3d8d38b..f859aeb 100644
--- a/src/mirall/socketapi.cpp
+++ b/src/mirall/socketapi.cpp
@@ -72,6 +72,8 @@ SyncFileStatus recursiveFolderStatus(Folder *folder, const QString& fileName )
const QStringList dirEntries = dir.entryList( QDir::AllEntries | QDir::NoDotAndDotDot );
+ SyncFileStatus result = FILE_STATUS_SYNC;
+
foreach( const QString entry, dirEntries ) {
QFileInfo fi(entry);
SyncFileStatus sfs;
@@ -88,12 +90,11 @@ SyncFileStatus recursiveFolderStatus(Folder *folder, const QString& fileName )
if( sfs == FILE_STATUS_STAT_ERROR || sfs == FILE_STATUS_ERROR ) {
return FILE_STATUS_ERROR;
- }
- if( sfs != FILE_STATUS_SYNC) {
- return FILE_STATUS_EVAL;
+ } else if( sfs == FILE_STATUS_EVAL || sfs == FILE_STATUS_NEW) {
+ result = FILE_STATUS_EVAL;
}
}
- return FILE_STATUS_SYNC;
+ return result;
}
/**
@@ -154,16 +155,13 @@ SyncFileStatus fileStatus(Folder *folder, const QString& fileName )
SyncJournalFileRecord rec = folder->journalDb()->getFileRecord(fileName);
if( !rec.isValid() ) {
stat = FILE_STATUS_NEW;
- }
-
- // file was locally modified.
- if( stat == FILE_STATUS_NONE && fi.lastModified() != rec._modtime ) {
+ } else if( stat == FILE_STATUS_NONE && fi.lastModified() != rec._modtime ) {
+ // file was locally modified.
stat = FILE_STATUS_EVAL;
+ } else {
+ stat = FILE_STATUS_SYNC;
}
}
- if( stat == FILE_STATUS_NONE ) {
- stat = FILE_STATUS_SYNC;
- }
}
return stat;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list