From 9ca418c92262895cf0ee13e6926a6cc30b5942a3 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Wed, 10 Jan 2024 02:18:32 +0800 Subject: [PATCH] Setup domain sync statuses in settings controller Signed-off-by: Claudio Cambra --- src/gui/macOS/fileprovidersettingscontroller.h | 2 ++ .../macOS/fileprovidersettingscontroller_mac.mm | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/gui/macOS/fileprovidersettingscontroller.h b/src/gui/macOS/fileprovidersettingscontroller.h index 2d5ef10b1..3e0e04659 100644 --- a/src/gui/macOS/fileprovidersettingscontroller.h +++ b/src/gui/macOS/fileprovidersettingscontroller.h @@ -17,6 +17,8 @@ #include #include +#include "gui/macOS/fileproviderdomainsyncstatus.h" + class QAbstractListModel; namespace OCC { diff --git a/src/gui/macOS/fileprovidersettingscontroller_mac.mm b/src/gui/macOS/fileprovidersettingscontroller_mac.mm index 9905ccd5e..8a1483ae2 100644 --- a/src/gui/macOS/fileprovidersettingscontroller_mac.mm +++ b/src/gui/macOS/fileprovidersettingscontroller_mac.mm @@ -180,6 +180,19 @@ public: }]; } +private slots: + void updateDomainSyncStatuses() + { + qCInfo(lcFileProviderSettingsController) << "Updating domain sync statuses"; + _fileProviderDomainSyncStatuses.clear(); + const auto enabledAccounts = nsEnabledAccounts(); + for (NSString *const domainIdentifier in enabledAccounts) { + const auto qDomainIdentifier = QString::fromNSString(domainIdentifier); + const auto syncStatus = new FileProviderDomainSyncStatus(qDomainIdentifier, q); + _fileProviderDomainSyncStatuses.insert(qDomainIdentifier, syncStatus); + } + } + private: [[nodiscard]] NSArray *nsEnabledAccounts() const { @@ -270,6 +283,8 @@ private: NSArray *const vfsEnabledAccounts = nsEnabledAccounts(); if (vfsEnabledAccounts != nil) { + updateDomainSyncStatuses(); + connect(q, &FileProviderSettingsController::vfsEnabledAccountsChanged, this, &MacImplementation::updateDomainSyncStatuses); return; } @@ -284,6 +299,7 @@ private: NSString *_accountsKey = [NSString stringWithUTF8String:enabledAccountsSettingsKey]; QHash> _materialisedFiles; QHash _storageUsage; + QHash _fileProviderDomainSyncStatuses; }; FileProviderSettingsController *FileProviderSettingsController::instance() -- 2.30.2