From 794dbfe0a03cc70626ecab7b4efb089e21e6e9cf Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Tue, 30 May 2023 22:35:16 +0300 Subject: [PATCH] QProgressDialog: minor refactor Change-Id: Iba4dd1b0c3087e22e9fc0cae7fc764fbc055b089 Reviewed-by: Richard Moe Gustavsen --- src/widgets/dialogs/qprogressdialog.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/widgets/dialogs/qprogressdialog.cpp b/src/widgets/dialogs/qprogressdialog.cpp index 5799be5baf..df6e77e8bd 100644 --- a/src/widgets/dialogs/qprogressdialog.cpp +++ b/src/widgets/dialogs/qprogressdialog.cpp @@ -627,24 +627,22 @@ void QProgressDialog::setValue(int progress) return; } else { d->setValueCalled = true; - bool need_show; + bool need_show = false; using namespace std::chrono; nanoseconds elapsed = d->starttime.durationElapsed(); if (elapsed >= d->showTime) { need_show = true; } else { if (elapsed > minWaitTime) { + const int totalSteps = maximum() - minimum(); + const int myprogress = std::max(progress - minimum(), 1); + const int remainingSteps = totalSteps - myprogress; nanoseconds estimate; - int totalSteps = maximum() - minimum(); - int myprogress = progress - minimum(); - if (myprogress == 0) myprogress = 1; - if ((totalSteps - myprogress) >= INT_MAX / elapsed.count()) - estimate = (totalSteps - myprogress) / myprogress * elapsed; + if (remainingSteps >= INT_MAX / elapsed.count()) + estimate = (remainingSteps / myprogress) * elapsed; else - estimate = elapsed * (totalSteps - myprogress) / myprogress; + estimate = (elapsed * remainingSteps) / myprogress; need_show = estimate >= d->showTime; - } else { - need_show = false; } } if (need_show) {