diff options
author | Ahmad Samir <a.samirh78@gmail.com> | 2023-05-30 22:35:16 +0300 |
---|---|---|
committer | Ahmad Samir <a.samirh78@gmail.com> | 2023-06-05 23:35:20 +0300 |
commit | 794dbfe0a03cc70626ecab7b4efb089e21e6e9cf (patch) | |
tree | 62176142d817e6c5ee6dab3892724704a7cea64d /src/widgets/dialogs | |
parent | 63720716a0ca3e3989f179a02803e09a08cf89a9 (diff) |
QProgressDialog: minor refactor
Change-Id: Iba4dd1b0c3087e22e9fc0cae7fc764fbc055b089
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/widgets/dialogs')
-rw-r--r-- | src/widgets/dialogs/qprogressdialog.cpp | 16 |
1 files 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) { |