diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2014-09-16 20:10:59 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2014-09-16 20:10:59 +0200 |
commit | d9d3dd456aa9e90328255ce9f9ca0bcf77890574 (patch) | |
tree | 4e0d6c949e6f50ca3eaf36d7837cb20e436a383b /src | |
parent | baea23ba1f144613c00fe64573a0f6c155a7dbcd (diff) | |
download | tqt3-d9d3dd456aa9e90328255ce9f9ca0bcf77890574.tar.gz tqt3-d9d3dd456aa9e90328255ce9f9ca0bcf77890574.zip |
Improve TQProgressBar repaint optimization
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/ntqprogressbar.h | 2 | ||||
-rw-r--r-- | src/widgets/qprogressbar.cpp | 11 |
2 files changed, 5 insertions, 8 deletions
diff --git a/src/widgets/ntqprogressbar.h b/src/widgets/ntqprogressbar.h index ca90da2ae..4ca7b9e84 100644 --- a/src/widgets/ntqprogressbar.h +++ b/src/widgets/ntqprogressbar.h @@ -96,7 +96,7 @@ protected: virtual bool setIndicator( TQString & progress_str, int progress, int totalSteps ); void styleChange( TQStyle& ); - bool requireRepaint( int newProgress ) const; + bool repaintRequired() const; private: int total_steps; diff --git a/src/widgets/qprogressbar.cpp b/src/widgets/qprogressbar.cpp index 3eb0db0dc..ec5424c34 100644 --- a/src/widgets/qprogressbar.cpp +++ b/src/widgets/qprogressbar.cpp @@ -212,13 +212,11 @@ void TQProgressBar::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; } @@ -358,10 +356,9 @@ void TQProgressBar::styleChange( TQStyle& old ) would require a repaint of the progress bar. This allows efficient repainting. */ -bool TQProgressBar::requireRepaint( int newProgress ) const +bool TQProgressBar::repaintRequired() const { - if ( newProgress == progress_val || - newProgress == d->last_painted_progress ) { + if ( progress_val == d->last_painted_progress ) { return false; } @@ -375,7 +372,7 @@ bool TQProgressBar::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 TQABS( delta ) >= progressPerPixel; } |