From: Claudio Cambra Date: Wed, 1 Feb 2023 16:21:35 +0000 (+0100) Subject: Add ability for FileProviderDomainManager to wipe domains X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~10^2~55^2~240 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b1547405759957561e44a358af138aaf4124bea8;p=nextcloud-desktop.git Add ability for FileProviderDomainManager to wipe domains Signed-off-by: Claudio Cambra --- diff --git a/src/gui/macOS/fileproviderdomainmanager_mac.mm b/src/gui/macOS/fileproviderdomainmanager_mac.mm index 41f59b980..2249ecab7 100644 --- a/src/gui/macOS/fileproviderdomainmanager_mac.mm +++ b/src/gui/macOS/fileproviderdomainmanager_mac.mm @@ -100,6 +100,32 @@ class FileProviderDomainManager::Private { }]; } + void wipeAllFileProviderDomains() + { + qCDebug(lcMacFileProviderDomainManager) << "Removing and wiping all file provider domains"; + + [NSFileProviderManager getDomainsWithCompletionHandler:^(NSArray *domains, NSError *error) { + if (error) { + qCDebug(lcMacFileProviderDomainManager) << "Error removing and wiping file provider domains: " + << [error code] + << [error localizedDescription]; + return; + } + + for (NSFileProviderDomain *domain in domains) { + [NSFileProviderManager removeDomain:domain mode:NSFileProviderDomainRemovalModeRemoveAll completionHandler:^(NSURL *preservedLocation, NSError *error) { + if (error) { + qCDebug(lcMacFileProviderDomainManager) << "Error removing and wiping file provider domain: " + << [domain displayName] + << [error code] + << [error localizedDescription]; + return; + } + }]; + } + }]; + } + void setFileProviderDomainConnected(const AccountState *accountState) { const QString accountDisplayName = accountState->account()->displayName(); @@ -158,6 +184,7 @@ FileProviderDomainManager::FileProviderDomainManager(QObject *parent) connect(AccountManager::instance(), &AccountManager::accountRemoved, this, &FileProviderDomainManager::removeFileProviderDomainForAccount); + d->wipeAllFileProviderDomains(); // TODO: Remove when testing done setupFileProviderDomains(); // Initially fetch accounts in manager }