Skip to content

Commit

Permalink
Merge pull request #4902 from nextcloud/bugfix/wrong-estimated-time-w…
Browse files Browse the repository at this point in the history
…hen-syncing

Fix wrong estimated time when doing sync.
  • Loading branch information
allexzander authored Sep 7, 2022
2 parents 4dbbcbe + 7ba6815 commit 66effe1
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
26 changes: 20 additions & 6 deletions src/gui/folderstatusmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -963,6 +963,10 @@ void FolderStatusModel::slotSetProgress(const ProgressInfo &progress)

auto *pi = &_folders[folderIndex]._progress;

if (progress.status() == ProgressInfo::Starting) {
_isSyncRunningForAwhile = false;
}

QVector<int> roles;
roles << FolderStatusDelegate::SyncProgressItemString
<< FolderStatusDelegate::WarningCount
Expand Down Expand Up @@ -1086,13 +1090,23 @@ void FolderStatusModel::slotSetProgress(const ProgressInfo &progress)
QString s1 = Utility::octetsToString(completedSize);
QString s2 = Utility::octetsToString(totalSize);

if (progress.trustEta()) {
const auto estimatedEta = progress.totalProgress().estimatedEta;

if (progress.trustEta() && (estimatedEta > 0 || _isSyncRunningForAwhile)) {
_isSyncRunningForAwhile = true;
//: Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"
overallSyncString = tr("%5 left, %1 of %2, file %3 of %4")
.arg(s1, s2)
.arg(currentFile)
.arg(totalFileCount)
.arg(Utility::durationToDescriptiveString1(progress.totalProgress().estimatedEta));
if (estimatedEta == 0) {
overallSyncString = tr("A few seconds left, %1 of %2, file %3 of %4")
.arg(s1, s2)
.arg(currentFile)
.arg(totalFileCount);
} else {
overallSyncString = tr("%5 left, %1 of %2, file %3 of %4")
.arg(s1, s2)
.arg(currentFile)
.arg(totalFileCount)
.arg(Utility::durationToDescriptiveString1(estimatedEta));
}

} else {
//: Example text: "12 MB of 345 MB, file 6 of 7"
Expand Down
2 changes: 2 additions & 0 deletions src/gui/folderstatusmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ private slots:
const AccountState *_accountState = nullptr;
bool _dirty = false; // If the selective sync checkboxes were changed

bool _isSyncRunningForAwhile = false;

/**
* Keeps track of items that are fetching data from the server.
*
Expand Down

0 comments on commit 66effe1

Please sign in to comment.