Add method in file provider xpc to set fast enumeration enabled state
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 6 Feb 2024 06:08:37 +0000 (14:08 +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/fileproviderxpc.h
src/gui/macOS/fileproviderxpc_mac.mm

index af4a5fd7b950436c0def23ac7df5c2352e010217..58c6a0211b3095c901e4b1b2aceac761a213c6f5 100644 (file)
@@ -44,6 +44,8 @@ public slots:
     void unauthenticateExtension(const QString &extensionAccountId) const;
     void createDebugArchiveForExtension(const QString &extensionAccountId, const QString &filename) const;
 
+    void setFastEnumerationEnabledForExtension(const QString &extensionAccountId, bool enabled) const;
+
 private slots:
     void slotAccountStateChanged(AccountState::State state) const;
 
index 5fb39debe7872542200544b310bac7493adf5700..fb956030bde5b71eded2d5e8b6d9f2f9f166f854 100644 (file)
@@ -158,4 +158,11 @@ std::optional<std::pair<bool, bool>> FileProviderXPC::fastEnumerationStateForExt
     return std::optional<std::pair<bool, bool>>{{receivedFastEnumerationEnabled, receivedFastEnumerationSet}};
 }
 
+void FileProviderXPC::setFastEnumerationEnabledForExtension(const QString &extensionAccountId, bool enabled) const
+{
+    qCInfo(lcFileProviderXPC) << "Setting fast enumeration for extension" << extensionAccountId << "to" << enabled;
+    const auto service = (NSObject<ClientCommunicationProtocol> *)_clientCommServices.value(extensionAccountId);
+    [service setFastEnumerationEnabled:enabled];
+}
+
 } // namespace OCC::Mac