mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 05:15:40 +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]] QStringList vfsEnabledAccounts() const;
|
||||||
[[nodiscard]] Q_INVOKABLE bool vfsEnabledForAccount(const QString &userIdAtHost) 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:
|
public slots:
|
||||||
void setVfsEnabledForAccount(const QString &userIdAtHost, const bool setEnabled);
|
void setVfsEnabledForAccount(const QString &userIdAtHost, const bool setEnabled);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void vfsEnabledAccountsChanged();
|
void vfsEnabledAccountsChanged();
|
||||||
void vfsStorageUseForAccountChanged(const QString &userIdAtHost);
|
void localStorageUsageForAccountChanged(const QString &userIdAtHost);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit FileProviderSettingsController(QObject *parent = nullptr);
|
explicit FileProviderSettingsController(QObject *parent = nullptr);
|
||||||
|
|
|
@ -133,7 +133,17 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
return overallActResult;
|
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:
|
private:
|
||||||
|
@ -169,7 +179,7 @@ private:
|
||||||
_storageUsage = mutableStorageDictCopy.copy;
|
_storageUsage = mutableStorageDictCopy.copy;
|
||||||
|
|
||||||
const auto qDomainIdentifier = QString::fromNSString(domain.identifier);
|
const auto qDomainIdentifier = QString::fromNSString(domain.identifier);
|
||||||
emit q->vfsStorageUseForAccountChanged(qDomainIdentifier);
|
emit q->localStorageUsageForAccountChanged(qDomainIdentifier);
|
||||||
};
|
};
|
||||||
|
|
||||||
[enumerator enumerateItemsForObserver:storageUseObserver startingAtPage:NSFileProviderInitialPageSortedByName];
|
[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 Mac
|
||||||
|
|
||||||
} // namespace OCC
|
} // namespace OCC
|
||||||
|
|
Loading…
Reference in a new issue