]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Create and connect specific signal for existing folder now being discovered to be big
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 28 Jun 2023 11:39:09 +0000 (19:39 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 4 Aug 2023 09:40:37 +0000 (17:40 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/folder.cpp
src/libsync/discovery.cpp
src/libsync/discoveryphase.cpp
src/libsync/discoveryphase.h
src/libsync/syncengine.cpp
src/libsync/syncengine.h

index 9a503853e31a9dd16efaa6d83aaaf712b3485ae4..9879ed30284fb1eed9c03a0134a3b15c1385aa0e 100644 (file)
@@ -108,6 +108,7 @@ Folder::Folder(const FolderDefinition &definition,
         this, &Folder::slotItemCompleted);
     connect(_engine.data(), &SyncEngine::newBigFolder,
         this, &Folder::slotNewBigFolderDiscovered);
+    connect(_engine.data(), &SyncEngine::existingFolderNowBig, this, &Folder::slotExistingFolderNowBig);
     connect(_engine.data(), &SyncEngine::seenLockedFile, FolderMan::instance(), &FolderMan::slotSyncOnceFileUnlocks);
     connect(_engine.data(), &SyncEngine::aboutToPropagate,
         this, &Folder::slotLogPropagationStart);
index 16b2b12c5a245f75a7ad036d15e924e14965ee1d..e9bbe46b6bfbf9b80aee79f83ad6314244e1d1eb 100644 (file)
@@ -728,7 +728,7 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo(const SyncFileItemPtr &it
                 ENFORCE(dbEntry.isDirectory());
 
                 if (differingSize) {
-                    _discoveryData->checkSelectiveSyncExistingFolder(path._server, serverEntry.remotePerm, sizeOnServer);
+                    _discoveryData->checkSelectiveSyncExistingFolder(path._server, sizeOnServer);
                 }
 
                 item->_instruction = CSYNC_INSTRUCTION_UPDATE_METADATA;
index 446570e5387094b6a1cf80b0bdbc113c55168edf..b1efc31572a89e147ed90f1c6850ae4ab8fdf38d 100644 (file)
@@ -157,16 +157,14 @@ void DiscoveryPhase::checkSelectiveSyncNewFolder(const QString &path,
     checkFolderSizeLimit(path, callback);
 }
 
-void DiscoveryPhase::checkSelectiveSyncExistingFolder(const QString &path, const RemotePermissions &rp, const qint64 folderSize)
+void DiscoveryPhase::checkSelectiveSyncExistingFolder(const QString &path, const qint64 folderSize)
 {
     // TODO: Check for setting to obey big folder sync
     // If no size limit is enforced, or if is in whitelist (explicitly allowed) or in blacklist (explicitly disallowed), do nothing.
     if (!activeFolderSizeLimit() || findPathInList(_selectiveSyncWhiteList, path) || findPathInList(_selectiveSyncBlackList, path)) {
         return;
     } else if (folderSize >= _syncOptions._newBigFolderSizeLimit) { // If the folder is too big, notify the user and prompt for response.
-        const auto isExternalStorage =
-            _syncOptions._confirmExternalStorage && _syncOptions._vfs->mode() == Vfs::Off && rp.hasPermission(RemotePermissions::IsMounted);
-        emit newBigFolder(path, isExternalStorage);
+        emit existingFolderNowBig(path);
     }
 }
 
index 38c54832eef8f497115a4166d076bdb28828dffe..1775325a61fcefce3b379ad8c4fd965e5774e842 100644 (file)
@@ -266,7 +266,7 @@ class DiscoveryPhase : public QObject
                                      const RemotePermissions rp,
                                      const std::function<void(bool)> callback);
 
-    void checkSelectiveSyncExistingFolder(const QString &path, const RemotePermissions &rp, const qint64 folderSize);
+    void checkSelectiveSyncExistingFolder(const QString &path, const qint64 folderSize);
 
     /** Given an original path, return the target path obtained when renaming is done.
      *
@@ -324,6 +324,7 @@ signals:
 
     // A new folder was discovered and was not synced because of the confirmation feature
     void newBigFolder(const QString &folder, bool isExternal);
+    void existingFolderNowBig(const QString &folder);
 
     /** For excluded items that don't show up in itemDiscovered()
       *
index 7a13f7133f30b4dd8283f03e91d5109fd19071f3..b4fadc45399d7523fc2c78d4df1e878f7318450a 100644 (file)
@@ -656,6 +656,7 @@ void SyncEngine::startSync()
 
     connect(_discoveryPhase.data(), &DiscoveryPhase::itemDiscovered, this, &SyncEngine::slotItemDiscovered);
     connect(_discoveryPhase.data(), &DiscoveryPhase::newBigFolder, this, &SyncEngine::newBigFolder);
+    connect(_discoveryPhase.data(), &DiscoveryPhase::existingFolderNowBig, this, &SyncEngine::existingFolderNowBig);
     connect(_discoveryPhase.data(), &DiscoveryPhase::fatalError, this, [this](const QString &errorString, ErrorCategory errorCategory) {
         Q_EMIT syncError(errorString, errorCategory);
         finalize(false);
index fce3a96b6945526ea4d45f12e934b93d2760d5cf..d1c4ab9d5169bc678d140327a0f4d2bade97b551 100644 (file)
@@ -187,6 +187,8 @@ signals:
     // A new folder was discovered and was not synced because of the confirmation feature
     void newBigFolder(const QString &folder, bool isExternal);
 
+    void existingFolderNowBig(const QString &folder);
+
     /** Emitted when propagation has problems with a locked file.
      *
      * Forwarded from OwncloudPropagator::seenLockedFile.