summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2014-09-16 20:10:51 +0200
committerSlávek Banko <slavek.banko@axis.cz>2015-12-15 19:54:02 +0100
commitfa671f0185ed66cf45e168e79b4889bf12e61512 (patch)
tree2894df243b58200b631a73039d5548f0a7aad350
parent217873db13ca3a74fc24224969a3dc421bb33f28 (diff)
downloadqt3-fa671f0185ed66cf45e168e79b4889bf12e61512.tar.gz
qt3-fa671f0185ed66cf45e168e79b4889bf12e61512.zip
Improve TQProgressBar repaint optimization
(cherry picked from commit 5b34ad0d8e489369a0cd8bd1e1b3ccebc4c9acb7)
-rw-r--r--src/widgets/qprogressbar.cpp11
-rw-r--r--src/widgets/qprogressbar.h2
2 files changed, 5 insertions, 8 deletions
diff --git a/src/widgets/qprogressbar.cpp b/src/widgets/qprogressbar.cpp
index 57bb332..fde1e95 100644
--- a/src/widgets/qprogressbar.cpp
+++ b/src/widgets/qprogressbar.cpp
@@ -209,13 +209,11 @@ void QProgressBar::setProgress( int progress )
progress < 0 || ( ( progress > total_steps ) && total_steps ) )
return;
- const bool needRepaint = isVisible() && requireRepaint( progress );
-
progress_val = progress;
setIndicator( progress_str, progress_val, total_steps );
- if ( needRepaint ) {
+ if ( isVisible() && repaintRequired() ) {
repaint( FALSE );
d->last_painted_progress = progress;
}
@@ -349,10 +347,9 @@ void QProgressBar::styleChange( QStyle& old )
would require a repaint of the progress bar. This allows efficient
repainting.
*/
-bool QProgressBar::requireRepaint( int newProgress ) const
+bool QProgressBar::repaintRequired() const
{
- if ( newProgress == progress_val ||
- newProgress == d->last_painted_progress ) {
+ if ( progress_val == d->last_painted_progress ) {
return false;
}
@@ -366,7 +363,7 @@ bool QProgressBar::requireRepaint( int newProgress ) const
progressPerPixel = float( total_steps ) / float( width );
}
- const int delta = d->last_painted_progress - newProgress;
+ const int delta = d->last_painted_progress - progress_val;
return QABS( delta ) >= progressPerPixel;
}
diff --git a/src/widgets/qprogressbar.h b/src/widgets/qprogressbar.h
index 69afd94..1e1ecde 100644
--- a/src/widgets/qprogressbar.h
+++ b/src/widgets/qprogressbar.h
@@ -95,7 +95,7 @@ protected:
virtual bool setIndicator( QString & progress_str, int progress,
int totalSteps );
void styleChange( QStyle& );
- bool requireRepaint( int newProgress ) const;
+ bool repaintRequired() const;
private:
int total_steps;