[ui] prevent infinite canvas redraw due to (#6098)

progress bar changing status bar height when
shown/hidden.

Yes, it's as bad as it sounds.
This commit is contained in:
Mathieu Pellerin 2018-01-19 06:27:23 +07:00 committed by GitHub
parent bc1bfd3406
commit 5dc91b4b1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2783,10 +2783,8 @@ void QgisApp::createStatusBar()
// And also rendering suppression checkbox
mProgressBar = new QProgressBar( mStatusBar );
mProgressBar->setObjectName( QStringLiteral( "mProgressBar" ) );
mProgressBar->setMaximumWidth( 100 );
mProgressBar->hide();
mProgressBar->setWhatsThis( tr( "Progress bar that displays the status "
"of rendering layers and other time-intensive operations" ) );
mProgressBar->setMaximumWidth( 0 );
mProgressBar->setMaximumHeight( 18 );
mStatusBar->addPermanentWidget( mProgressBar, 1 );
connect( mMapCanvas, &QgsMapCanvas::renderStarting, this, &QgisApp::canvasRefreshStarted );
@ -11084,14 +11082,14 @@ void QgisApp::showProgress( int progress, int totalSteps )
if ( progress == totalSteps )
{
mProgressBar->reset();
mProgressBar->hide();
mProgressBar->setMaximumWidth( 0 );
}
else
{
//only call show if not already hidden to reduce flicker
if ( !mProgressBar->isVisible() )
if ( mProgressBar->maximumWidth() == 0 )
{
mProgressBar->show();
mProgressBar->setMaximumWidth( 100 );
}
mProgressBar->setMaximum( totalSteps );
mProgressBar->setValue( progress );