From a40018cdf9234cb96973170a6091ad005510f11b Mon Sep 17 00:00:00 2001 From: Michal Horejsek Date: Wed, 4 Nov 2020 13:57:23 +0100 Subject: [PATCH] Percentage available on progress count struct --- internal/frontend/qt-ie/frontend.go | 2 +- internal/transfer/progress_counts.go | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/frontend/qt-ie/frontend.go b/internal/frontend/qt-ie/frontend.go index d05f011d..65a3768f 100644 --- a/internal/frontend/qt-ie/frontend.go +++ b/internal/frontend/qt-ie/frontend.go @@ -344,7 +344,7 @@ func (f *FrontendQt) setProgressManager(progress *transfer.Progress) { f.Qml.SetProgressFails(int(counts.Failed)) f.Qml.SetProgressDescription(progress.PauseReason()) if counts.Total > 0 { - newProgress := float32(counts.Imported+counts.Skipped+counts.Failed) / float32(counts.Total) + newProgress := counts.Progress() if newProgress >= 0 && newProgress != f.Qml.Progress() { f.Qml.SetProgress(newProgress) f.Qml.ProgressChanged(newProgress) diff --git a/internal/transfer/progress_counts.go b/internal/transfer/progress_counts.go index 2a3d1531..2c594078 100644 --- a/internal/transfer/progress_counts.go +++ b/internal/transfer/progress_counts.go @@ -26,3 +26,10 @@ type ProgressCounts struct { Added, Total uint } + +// Progress returns ratio between processed messages (fully imported, skipped +// and failed ones) and total number of messages as percentage (0 - 1). +func (c *ProgressCounts) Progress() float32 { + progressed := c.Imported + c.Skipped + c.Failed + return float32(progressed) / float32(c.Total) +}