[Pkg-owncloud-commits] [owncloud-client] 219/332: SocketAPI: Handle top sync folder correctly.
Sandro Knauß
hefee-guest at moszumanska.debian.org
Thu Aug 14 21:07:02 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 f8bea55b100ffdafc3c9a56f70af7c9e5da35dcb
Author: Klaas Freitag <freitag at owncloud.com>
Date: Thu Jul 17 19:27:12 2014 +0200
SocketAPI: Handle top sync folder correctly.
---
src/mirall/socketapi.cpp | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/mirall/socketapi.cpp b/src/mirall/socketapi.cpp
index 757a1ff..e34f86d 100644
--- a/src/mirall/socketapi.cpp
+++ b/src/mirall/socketapi.cpp
@@ -107,14 +107,18 @@ SyncFileStatus fileStatus(Folder *folder, const QString& fileName )
{
// FIXME: Find a way for STATUS_ERROR
- QString file = fileName;
- if( folder->path() != QLatin1String("/") ) {
+ QString file = folder->path();
+
+ bool isSyncRootFolder = true;
+ if( fileName != QLatin1String("/") && !fileName.isEmpty() ) {
file = folder->path() + fileName;
+ isSyncRootFolder = false;
}
QFileInfo fi(file);
if( !fi.exists() ) {
+ qDebug() << "OO File " << file << " is not existing";
return SyncFileStatus(SyncFileStatus::STATUS_STAT_ERROR);
}
@@ -137,28 +141,30 @@ SyncFileStatus fileStatus(Folder *folder, const QString& fileName )
return SyncFileStatus(SyncFileStatus::STATUS_IGNORE);
}
+ // Problem: for the sync dir itself we do not have a record in the sync journal
+ // so the next check must not be used for the sync root folder.
SyncJournalFileRecord rec = folder->journalDb()->getFileRecord(fileName);
- if( !rec.isValid() ) {
+ if( !isSyncRootFolder && !rec.isValid() ) {
return SyncFileStatus(SyncFileStatus::STATUS_NEW);
}
- SyncFileStatus stat(SyncFileStatus::STATUS_NONE);
+ SyncFileStatus status(SyncFileStatus::STATUS_NONE);
if( type == CSYNC_FTW_TYPE_DIR ) {
// compute recursive status of the directory
- stat = recursiveFolderStatus( folder, fileName );
+ status = recursiveFolderStatus( folder, fileName );
} else if(fi.lastModified() != rec._modtime ) {
// file was locally modified.
- stat.set(SyncFileStatus::STATUS_EVAL);
+ status.set(SyncFileStatus::STATUS_EVAL);
} else {
- stat.set(SyncFileStatus::STATUS_SYNC);
+ status.set(SyncFileStatus::STATUS_SYNC);
}
if (rec._remotePerm.contains("S")) {
// FIXME! that should be an additional flag
- stat.setSharedWithMe(true);
+ status.setSharedWithMe(true);
}
- return stat;
+ return status;
}
--
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