mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-23 21:05:44 +03:00
Expose local storage usage for account in gigabytes to QML
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
2105596643
commit
18ed46ef77
2 changed files with 25 additions and 2 deletions
|
@ -34,13 +34,15 @@ public:
|
|||
|
||||
[[nodiscard]] QStringList vfsEnabledAccounts() const;
|
||||
[[nodiscard]] Q_INVOKABLE bool vfsEnabledForAccount(const QString &userIdAtHost) const;
|
||||
[[nodiscard]] unsigned long long localStorageUsageForAccount(const QString &userIdAtHost) const;
|
||||
[[nodiscard]] Q_INVOKABLE float localStorageUsageGbForAccount(const QString &userIdAtHost) const;
|
||||
|
||||
public slots:
|
||||
void setVfsEnabledForAccount(const QString &userIdAtHost, const bool setEnabled);
|
||||
|
||||
signals:
|
||||
void vfsEnabledAccountsChanged();
|
||||
void vfsStorageUseForAccountChanged(const QString &userIdAtHost);
|
||||
void localStorageUsageForAccountChanged(const QString &userIdAtHost);
|
||||
|
||||
private:
|
||||
explicit FileProviderSettingsController(QObject *parent = nullptr);
|
||||
|
|
|
@ -133,7 +133,17 @@ public:
|
|||
}
|
||||
|
||||
return overallActResult;
|
||||
}
|
||||
|
||||
[[nodiscard]] unsigned long long localStorageUsageForAccount(const QString &userIdAtHost) const
|
||||
{
|
||||
// Return cached value as we fetch asynchronously on initialisation of this class.
|
||||
// We will then emit a signal when the new value is found.
|
||||
NSNumber *const storageUsage = [_storageUsage objectForKey:userIdAtHost.toNSString()];
|
||||
if (storageUsage == nil) {
|
||||
return 0;
|
||||
}
|
||||
return storageUsage.unsignedLongLongValue;
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -169,7 +179,7 @@ private:
|
|||
_storageUsage = mutableStorageDictCopy.copy;
|
||||
|
||||
const auto qDomainIdentifier = QString::fromNSString(domain.identifier);
|
||||
emit q->vfsStorageUseForAccountChanged(qDomainIdentifier);
|
||||
emit q->localStorageUsageForAccountChanged(qDomainIdentifier);
|
||||
};
|
||||
|
||||
[enumerator enumerateItemsForObserver:storageUseObserver startingAtPage:NSFileProviderInitialPageSortedByName];
|
||||
|
@ -240,6 +250,17 @@ void FileProviderSettingsController::setVfsEnabledForAccount(const QString &user
|
|||
}
|
||||
}
|
||||
|
||||
unsigned long long FileProviderSettingsController::localStorageUsageForAccount(const QString &userIdAtHost) const
|
||||
{
|
||||
return d->localStorageUsageForAccount(userIdAtHost);
|
||||
}
|
||||
|
||||
float FileProviderSettingsController::localStorageUsageGbForAccount(const QString &userIdAtHost) const
|
||||
{
|
||||
static constexpr auto bytesIn100Mb = 1ULL * 1000ULL * 1000ULL * 100ULL;
|
||||
return (float)(localStorageUsageForAccount(userIdAtHost) / bytesIn100Mb) / 10.0;
|
||||
}
|
||||
|
||||
} // namespace Mac
|
||||
|
||||
} // namespace OCC
|
||||
|
|
Loading…
Reference in a new issue