return _fileProviderDomainSyncStatuses.value(userIdAtHost);
}
+public slots:
+ void enumerateMaterialisedFilesForDomainManager(NSFileProviderManager * const managerForDomain,
+ NSFileProviderDomain * const domain)
+ {
+ const id<NSFileProviderEnumerator> enumerator = [managerForDomain enumeratorForMaterializedItems];
+ Q_ASSERT(enumerator != nil);
+ [enumerator retain];
+
+ FileProviderStorageUseEnumerationObserver *const storageUseObserver = [[FileProviderStorageUseEnumerationObserver alloc] init];
+ [storageUseObserver retain];
+ storageUseObserver.enumerationFinishedHandler = ^(NSError *const error) {
+ qCInfo(lcFileProviderSettingsController) << "Enumeration finished for" << domain.identifier;
+ if (error != nil) {
+ qCWarning(lcFileProviderSettingsController) << "Error while enumerating storage use" << error.localizedDescription;
+ [storageUseObserver release];
+ [enumerator release];
+ return;
+ }
+
+ const auto items = storageUseObserver.materialisedItems;
+ Q_ASSERT(items != nil);
+
+ // Remember that OCC::Account::userIdAtHost == domain.identifier for us
+ const auto qDomainIdentifier = QString::fromNSString(domain.identifier);
+ QVector<FileProviderItemMetadata> qMaterialisedItems;
+ qMaterialisedItems.reserve(items.count);
+ for (const id<NSFileProviderItem> item in items) {
+ const auto itemMetadata = FileProviderItemMetadata::fromNSFileProviderItem(item, qDomainIdentifier);
+ const auto storageUsage = _storageUsage.value(qDomainIdentifier) + itemMetadata.documentSize();
+ qCDebug(lcFileProviderSettingsController) << "Adding item" << itemMetadata.identifier()
+ << "with size" << itemMetadata.documentSize()
+ << "to storage usage for account" << qDomainIdentifier
+ << "with total size" << storageUsage;
+ qMaterialisedItems.append(itemMetadata);
+ _storageUsage.insert(qDomainIdentifier, storageUsage);
+ }
+ _materialisedFiles.insert(qDomainIdentifier, qMaterialisedItems);
+
+ emit q->localStorageUsageForAccountChanged(qDomainIdentifier);
+ emit q->materialisedItemsForAccountChanged(qDomainIdentifier);
+
+ [storageUseObserver release];
+ [enumerator release];
+ };
+ [enumerator enumerateItemsForObserver:storageUseObserver startingAtPage:NSFileProviderInitialPageSortedByName];
+ }
+
private slots:
void updateDomainSyncStatuses()
{
return;
}
- const id<NSFileProviderEnumerator> enumerator = [managerForDomain enumeratorForMaterializedItems];
- Q_ASSERT(enumerator != nil);
- [enumerator retain];
-
- FileProviderStorageUseEnumerationObserver *const storageUseObserver = [[FileProviderStorageUseEnumerationObserver alloc] init];
- [storageUseObserver retain];
- storageUseObserver.enumerationFinishedHandler = ^(NSError *const error) {
- qCInfo(lcFileProviderSettingsController) << "Enumeration finished for" << domain.identifier;
- if (error != nil) {
- qCWarning(lcFileProviderSettingsController) << "Error while enumerating storage use" << error.localizedDescription;
- [storageUseObserver release];
- [enumerator release];
- return;
- }
-
- const auto items = storageUseObserver.materialisedItems;
- Q_ASSERT(items != nil);
-
- // Remember that OCC::Account::userIdAtHost == domain.identifier for us
- const auto qDomainIdentifier = QString::fromNSString(domain.identifier);
- QVector<FileProviderItemMetadata> qMaterialisedItems;
- qMaterialisedItems.reserve(items.count);
- for (const id<NSFileProviderItem> item in items) {
- const auto itemMetadata = FileProviderItemMetadata::fromNSFileProviderItem(item, qDomainIdentifier);
- const auto storageUsage = _storageUsage.value(qDomainIdentifier) + itemMetadata.documentSize();
- qCDebug(lcFileProviderSettingsController) << "Adding item" << itemMetadata.identifier()
- << "with size" << itemMetadata.documentSize()
- << "to storage usage for account" << qDomainIdentifier
- << "with total size" << storageUsage;
- qMaterialisedItems.append(itemMetadata);
- _storageUsage.insert(qDomainIdentifier, storageUsage);
- }
- _materialisedFiles.insert(qDomainIdentifier, qMaterialisedItems);
-
- emit q->localStorageUsageForAccountChanged(qDomainIdentifier);
- emit q->materialisedItemsForAccountChanged(qDomainIdentifier);
-
- [storageUseObserver release];
- [enumerator release];
- };
- [enumerator enumerateItemsForObserver:storageUseObserver startingAtPage:NSFileProviderInitialPageSortedByName];
+ enumerateMaterialisedFilesForDomainManager(managerForDomain, domain);
}
}];
}