mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Separate domain finding into separate function in FileProviderUtils
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
b47665efba
commit
44a6f4673e
@ -16,6 +16,7 @@
|
||||
|
||||
class QString;
|
||||
|
||||
@class NSFileProviderDomain;
|
||||
@class NSFileProviderManager;
|
||||
|
||||
/**
|
||||
@ -36,6 +37,9 @@ namespace Mac {
|
||||
|
||||
namespace FileProviderUtils {
|
||||
|
||||
// Synchronous function to get the domain for a domain identifier
|
||||
NSFileProviderDomain *domainForIdentifier(const QString &domainIdentifier);
|
||||
|
||||
// Synchronous function to get manager for a domain identifier
|
||||
NSFileProviderManager *managerForDomainIdentifier(const QString &domainIdentifier);
|
||||
|
||||
|
||||
@ -27,9 +27,9 @@ namespace FileProviderUtils {
|
||||
|
||||
Q_LOGGING_CATEGORY(lcMacFileProviderUtils, "nextcloud.gui.macfileproviderutils", QtInfoMsg)
|
||||
|
||||
NSFileProviderManager *managerForDomainIdentifier(const QString &domainIdentifier)
|
||||
NSFileProviderDomain *domainForIdentifier(const QString &domainIdentifier)
|
||||
{
|
||||
__block NSFileProviderManager *manager = nil;
|
||||
__block NSFileProviderDomain *foundDomain = nil;
|
||||
NSString *const nsDomainIdentifier = domainIdentifier.toNSString();
|
||||
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
|
||||
|
||||
@ -45,24 +45,31 @@ NSFileProviderManager *managerForDomainIdentifier(const QString &domainIdentifie
|
||||
return;
|
||||
}
|
||||
|
||||
BOOL foundDomain = NO;
|
||||
|
||||
for (NSFileProviderDomain *const domain in domains) {
|
||||
if ([domain.identifier isEqualToString:nsDomainIdentifier]) {
|
||||
foundDomain = YES;
|
||||
manager = [NSFileProviderManager managerForDomain:domain];
|
||||
foundDomain = domain;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!foundDomain) {
|
||||
qCWarning(lcMacFileProviderUtils) << "No matching item domain, cannot get manager";
|
||||
}
|
||||
|
||||
dispatch_semaphore_signal(semaphore);
|
||||
}];
|
||||
|
||||
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
|
||||
|
||||
if (foundDomain == nil) {
|
||||
qCWarning(lcMacFileProviderUtils) << "No matching item domain for identifier"
|
||||
<< domainIdentifier;
|
||||
}
|
||||
|
||||
return foundDomain;
|
||||
}
|
||||
|
||||
NSFileProviderManager *managerForDomainIdentifier(const QString &domainIdentifier)
|
||||
{
|
||||
NSFileProviderDomain * const domain = domainForIdentifier(domainIdentifier);
|
||||
NSFileProviderManager * const manager = [NSFileProviderManager managerForDomain:domain];
|
||||
|
||||
if (manager == nil) {
|
||||
qCWarning(lcMacFileProviderUtils) << "Received null manager for domain"
|
||||
<< domainIdentifier;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user