Add method to acquire fast enumeration enabled status in file provider settings contr...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 6 Feb 2024 06:16:42 +0000 (14:16 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 6 Mar 2024 10:46:41 +0000 (18:46 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/macOS/fileprovidersettingscontroller.h
src/gui/macOS/fileprovidersettingscontroller_mac.mm

index bf980fdf770c79e590046dd477ddc670f5ddcbb5..2db4ae8836ddc60d7988c639ce26fea435513dee 100644 (file)
@@ -44,6 +44,7 @@ public:
     [[nodiscard]] Q_INVOKABLE float localStorageUsageGbForAccount(const QString &userIdAtHost) const;
     [[nodiscard]] unsigned long long remoteStorageUsageForAccount(const QString &userIdAtHost) const;
     [[nodiscard]] Q_INVOKABLE float remoteStorageUsageGbForAccount(const QString &userIdAtHost) const;
+    [[nodiscard]] Q_INVOKABLE bool fastEnumerationEnabledForAccount(const QString &userIdAtHost) const;
 
     [[nodiscard]] Q_INVOKABLE QAbstractListModel *materialisedItemsModelForAccount(const QString &userIdAtHost);
     [[nodiscard]] Q_INVOKABLE FileProviderDomainSyncStatus *domainSyncStatusForAccount(const QString &userIdAtHost) const;
index 4c8e3d4c4022ede4f6ceda60d0012f25cc6a68b9..b94224c7d65111243f2ff9f2e3f6c9aec4a832de 100644 (file)
@@ -362,6 +362,18 @@ void FileProviderSettingsController::setVfsEnabledForAccount(const QString &user
     }
 }
 
+bool FileProviderSettingsController::fastEnumerationEnabledForAccount(const QString &userIdAtHost) const
+{
+    const auto xpc = FileProvider::instance()->xpc();
+    if (!xpc) {
+        return false;
+    }
+    if (const auto fastEnumerationState = xpc->fastEnumerationStateForExtension(userIdAtHost)) {
+        return fastEnumerationState->first;
+    }
+    return false;
+}
+
 unsigned long long FileProviderSettingsController::localStorageUsageForAccount(const QString &userIdAtHost) const
 {
     return d->localStorageUsageForAccount(userIdAtHost);