From f37e7cc3b62512ceb3beca30e24420d32e526d2d Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Mon, 20 Mar 2023 18:04:41 +0100 Subject: [PATCH] Remove readdFileProviderDomain hack in FileProviderDomainManager Signed-off-by: Claudio Cambra --- .../macOS/fileproviderdomainmanager_mac.mm | 121 +++++------------- 1 file changed, 31 insertions(+), 90 deletions(-) diff --git a/src/gui/macOS/fileproviderdomainmanager_mac.mm b/src/gui/macOS/fileproviderdomainmanager_mac.mm index 228b1550d..c9712f2d9 100644 --- a/src/gui/macOS/fileproviderdomainmanager_mac.mm +++ b/src/gui/macOS/fileproviderdomainmanager_mac.mm @@ -282,38 +282,6 @@ class API_AVAILABLE(macos(11.0)) FileProviderDomainManager::Private { } } - void readdFileProviderDomain(NSFileProviderDomain * const domain, void (^completionHandler)()) - { - if (@available(macOS 11.0, *)) { - dispatch_async(dispatch_get_main_queue(), ^{ - // Wait for this to finish - dispatch_group_t dispatchGroup = dispatch_group_create(); - dispatch_group_notify(dispatchGroup, dispatch_get_main_queue(), ^{ - [NSFileProviderManager addDomain:domain completionHandler:^(NSError * const error) { - if(error) { - qCDebug(lcMacFileProviderDomainManager) << "Error adding file provider domain: " - << error.code - << error.localizedDescription; - } - - completionHandler(); - }]; - }); - - dispatch_group_enter(dispatchGroup); - [NSFileProviderManager removeDomain:domain completionHandler:^(NSError * const error) { - if(error) { - qCDebug(lcMacFileProviderDomainManager) << "Error removing file provider domain: " - << error.code - << error.localizedDescription; - } - - dispatch_group_leave(dispatchGroup); - }]; - }); - } - } - void disconnectFileProviderDomainForAccount(const AccountState * const accountState, const QString &message) { if (@available(macOS 11.0, *)) { @@ -333,29 +301,20 @@ class API_AVAILABLE(macos(11.0)) FileProviderDomainManager::Private { Q_ASSERT(fileProviderDomain != nil); NSFileProviderManager * const fpManager = [NSFileProviderManager managerForDomain:fileProviderDomain]; - void (^disconnectBlock)(void) = ^{ - [fpManager disconnectWithReason:message.toNSString() - options:NSFileProviderManagerDisconnectionOptionsTemporary - completionHandler:^(NSError * const error) { - if (error) { - qCDebug(lcMacFileProviderDomainManager) << "Error disconnecting file provider domain: " - << fileProviderDomain.displayName - << error.code - << error.localizedDescription; - return; - } - - qCDebug(lcMacFileProviderDomainManager) << "Successfully disconnected file provider domain: " - << fileProviderDomain.displayName; - }]; - }; - - if (fpManager == nil) { - readdFileProviderDomain(fileProviderDomain, disconnectBlock); - return; - } + [fpManager disconnectWithReason:message.toNSString() + options:NSFileProviderManagerDisconnectionOptionsTemporary + completionHandler:^(NSError * const error) { + if (error) { + qCDebug(lcMacFileProviderDomainManager) << "Error disconnecting file provider domain: " + << fileProviderDomain.displayName + << error.code + << error.localizedDescription; + return; + } - disconnectBlock(); + qCDebug(lcMacFileProviderDomainManager) << "Successfully disconnected file provider domain: " + << fileProviderDomain.displayName; + }]; } } @@ -378,29 +337,20 @@ class API_AVAILABLE(macos(11.0)) FileProviderDomainManager::Private { Q_ASSERT(fileProviderDomain != nil); NSFileProviderManager * const fpManager = [NSFileProviderManager managerForDomain:fileProviderDomain]; - void (^reconnectBlock)(void) = ^{ - [fpManager reconnectWithCompletionHandler:^(NSError * const error) { - if (error) { - qCDebug(lcMacFileProviderDomainManager) << "Error reconnecting file provider domain: " - << fileProviderDomain.displayName - << error.code - << error.localizedDescription; - return; - } - - qCDebug(lcMacFileProviderDomainManager) << "Successfully reconnected file provider domain: " - << fileProviderDomain.displayName; + [fpManager reconnectWithCompletionHandler:^(NSError * const error) { + if (error) { + qCDebug(lcMacFileProviderDomainManager) << "Error reconnecting file provider domain: " + << fileProviderDomain.displayName + << error.code + << error.localizedDescription; + return; + } - signalEnumeratorChanged(account.get()); - }]; - }; + qCDebug(lcMacFileProviderDomainManager) << "Successfully reconnected file provider domain: " + << fileProviderDomain.displayName; - if (fpManager == nil) { - readdFileProviderDomain(fileProviderDomain, reconnectBlock); - return; - } - - reconnectBlock(); + signalEnumeratorChanged(account.get()); + }]; } } @@ -421,21 +371,12 @@ class API_AVAILABLE(macos(11.0)) FileProviderDomainManager::Private { Q_ASSERT(fileProviderDomain != nil); NSFileProviderManager * const fpManager = [NSFileProviderManager managerForDomain:fileProviderDomain]; - void (^signalEnumeratorBlock)(void) = ^{ - [fpManager signalEnumeratorForContainerItemIdentifier:NSFileProviderWorkingSetContainerItemIdentifier completionHandler:^(NSError * const error) { - if (error != nil) { - qCDebug(lcMacFileProviderDomainManager) << "Error signalling enumerator changed for working set:" - << error.localizedDescription; - } - }]; - }; - - if (fpManager == nil) { - readdFileProviderDomain(fileProviderDomain, signalEnumeratorBlock); - return; - } - - signalEnumeratorBlock(); + [fpManager signalEnumeratorForContainerItemIdentifier:NSFileProviderWorkingSetContainerItemIdentifier completionHandler:^(NSError * const error) { + if (error != nil) { + qCDebug(lcMacFileProviderDomainManager) << "Error signalling enumerator changed for working set:" + << error.localizedDescription; + } + }]; } } -- 2.30.2