Add method to private FileProviderDomainManager to signal enumerator
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 10 Mar 2023 23:00:25 +0000 (00:00 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:26 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/macOS/fileproviderdomainmanager_mac.mm

index 3b0ae2d38f1499c13f53afd8f25ba2fc0926fbf4..526107695f84245b3568124b303075d784d016f6 100644 (file)
@@ -124,6 +124,26 @@ class FileProviderDomainManager::Private {
         }];
     }
 
+    void signalEnumeratorChanged(const Account * const account)
+    {
+        const auto accountId = account->id();
+        qCDebug(lcMacFileProviderDomainManager) << "Signalling enumerator changed in file provider domain for account with id: " << accountId;
+
+        if(!_registeredDomains.contains(accountId)) {
+            qCDebug(lcMacFileProviderDomainManager) << "File provider domain not found for id: " << accountId;
+            return;
+        }
+
+        NSFileProviderDomain * const fileProviderDomain = _registeredDomains[accountId];
+        NSFileProviderManager * const fpManager = [NSFileProviderManager managerForDomain:fileProviderDomain];
+        [fpManager signalEnumeratorForContainerItemIdentifier:NSFileProviderWorkingSetContainerItemIdentifier completionHandler:^(NSError *error) {
+            if (error != nil) {
+                qCDebug(lcMacFileProviderDomainManager) << "Error signalling enumerator changed for working set:"
+                                                        << error.localizedDescription;
+            }
+        }];
+    }
+
 private:
     QHash<QString, NSFileProviderDomain*> _registeredDomains;
 };