mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 21:35:47 +03:00
Merge pull request #4532 from nextcloud/bugfix/selective-sync-total-size-displayed
Bugfix. Take root folder's files size into account when displaying the total size in selective sync dialog.
This commit is contained in:
commit
4d3b6d1d1e
2 changed files with 24 additions and 1 deletions
|
@ -117,6 +117,8 @@ void SelectiveSyncWidget::refreshFolders()
|
||||||
job->setProperties(props);
|
job->setProperties(props);
|
||||||
connect(job, &LsColJob::directoryListingSubfolders,
|
connect(job, &LsColJob::directoryListingSubfolders,
|
||||||
this, &SelectiveSyncWidget::slotUpdateDirectories);
|
this, &SelectiveSyncWidget::slotUpdateDirectories);
|
||||||
|
connect(job, &LsColJob::directoryListingSubfolders,
|
||||||
|
this, &SelectiveSyncWidget::slotUpdateRootFolderFilesSize);
|
||||||
connect(job, &LsColJob::finishedWithError,
|
connect(job, &LsColJob::finishedWithError,
|
||||||
this, &SelectiveSyncWidget::slotLscolFinishedWithError);
|
this, &SelectiveSyncWidget::slotLscolFinishedWithError);
|
||||||
connect(job, &LsColJob::directoryListingIterated,
|
connect(job, &LsColJob::directoryListingIterated,
|
||||||
|
@ -288,6 +290,24 @@ void SelectiveSyncWidget::slotUpdateDirectories(QStringList list)
|
||||||
root->setExpanded(true);
|
root->setExpanded(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SelectiveSyncWidget::slotUpdateRootFolderFilesSize(const QStringList &subfolders)
|
||||||
|
{
|
||||||
|
const auto job = qobject_cast<LsColJob *>(sender());
|
||||||
|
|
||||||
|
if (!job) {
|
||||||
|
qWarning() << "slotUpdateRootFolderFilesSize must have a valid sender";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_rootFilesSize = 0;
|
||||||
|
|
||||||
|
for (auto it = std::cbegin(job->_folderInfos); it != std::cend(job->_folderInfos); ++it) {
|
||||||
|
if (!subfolders.contains(it.key())) {
|
||||||
|
_rootFilesSize += it.value().size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SelectiveSyncWidget::slotLscolFinishedWithError(QNetworkReply *r)
|
void SelectiveSyncWidget::slotLscolFinishedWithError(QNetworkReply *r)
|
||||||
{
|
{
|
||||||
if (r->error() == QNetworkReply::ContentNotFoundError) {
|
if (r->error() == QNetworkReply::ContentNotFoundError) {
|
||||||
|
@ -454,7 +474,7 @@ qint64 SelectiveSyncWidget::estimatedSize(QTreeWidgetItem *root)
|
||||||
// We did not load from the server so we have no idea how much we will sync from this branch
|
// We did not load from the server so we have no idea how much we will sync from this branch
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return result;
|
return result + _rootFilesSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,7 @@ public:
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void slotUpdateDirectories(QStringList);
|
void slotUpdateDirectories(QStringList);
|
||||||
|
void slotUpdateRootFolderFilesSize(const QStringList &subfolders);
|
||||||
void slotItemExpanded(QTreeWidgetItem *);
|
void slotItemExpanded(QTreeWidgetItem *);
|
||||||
void slotItemChanged(QTreeWidgetItem *, int);
|
void slotItemChanged(QTreeWidgetItem *, int);
|
||||||
void slotLscolFinishedWithError(QNetworkReply *);
|
void slotLscolFinishedWithError(QNetworkReply *);
|
||||||
|
@ -81,6 +82,8 @@ private:
|
||||||
ExcludedFiles _excludedFiles;
|
ExcludedFiles _excludedFiles;
|
||||||
|
|
||||||
QStringList _encryptedPaths;
|
QStringList _encryptedPaths;
|
||||||
|
|
||||||
|
qint64 _rootFilesSize = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue