]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
SocketAPI: Return NOP state if folder is diconnected or paused.
authorKlaas Freitag <freitag@owncloud.com>
Wed, 20 Apr 2016 15:14:12 +0000 (17:14 +0200)
committerKlaas Freitag <freitag@owncloud.com>
Wed, 20 Apr 2016 15:14:12 +0000 (17:14 +0200)
Later, we can send a specific state for that.

src/gui/socketapi.cpp

index ede3614c04cf3c0068774c68e48b96bd65aa561d..bcf2dfac0531e958edd9c576690c259bdec2b17f 100644 (file)
@@ -274,6 +274,8 @@ void SocketApi::command_RETRIEVE_FOLDER_STATUS(const QString& argument, QIODevic
 
 void SocketApi::command_RETRIEVE_FILE_STATUS(const QString& argument, QIODevice* socket)
 {
+    const QString nopString("NOP");
+
     if( !socket ) {
         qDebug() << "No valid socket object.";
         return;
@@ -286,12 +288,26 @@ void SocketApi::command_RETRIEVE_FILE_STATUS(const QString& argument, QIODevice*
     Folder* syncFolder = FolderMan::instance()->folderForPath( argument );
     if (!syncFolder) {
         // this can happen in offline mode e.g.: nothing to worry about
-        statusString = QLatin1String("NOP");
+        statusString = nopString;
     } else {
         const QString file = QDir::cleanPath(argument).mid(syncFolder->cleanPath().length()+1);
-        SyncFileStatus fileStatus = syncFolder->syncEngine().syncFileStatusTracker().fileStatus(file);
 
-        statusString = fileStatus.toSocketAPIString();
+        // future: Send more specific states for paused, disconnected etc.
+        if( syncFolder->syncPaused() ){
+            statusString = nopString;
+        } else if( !syncFolder->accountState()->isConnected() ) {
+            if( file.isEmpty() || file == QLatin1String("/") ) {
+                // only the root folder
+                statusString = nopString;
+            } else {
+                // all other files and dirs in unconnected sync
+                statusString = nopString;
+            }
+        } else {
+            SyncFileStatus fileStatus = syncFolder->syncEngine().syncFileStatusTracker().fileStatus(file);
+
+            statusString = fileStatus.toSocketAPIString();
+        }
     }
 
     const QString message = QLatin1String("STATUS:") % statusString % QLatin1Char(':') %  QDir::toNativeSeparators(argument);