summaryrefslogtreecommitdiffstats
path: root/src/widgets/dialogs
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2023-05-30 22:35:16 +0300
committerAhmad Samir <a.samirh78@gmail.com>2023-06-05 23:35:20 +0300
commit794dbfe0a03cc70626ecab7b4efb089e21e6e9cf (patch)
tree62176142d817e6c5ee6dab3892724704a7cea64d /src/widgets/dialogs
parent63720716a0ca3e3989f179a02803e09a08cf89a9 (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.cpp16
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) {