Skip to content

Commit

Permalink
Sync nodata raster transparency widget
Browse files Browse the repository at this point in the history
Fixes #45132
  • Loading branch information
elpaso authored and nyalldawson committed Oct 6, 2021
1 parent eb76c6e commit 5573fa2
Showing 1 changed file with 3 additions and 47 deletions.
50 changes: 3 additions & 47 deletions src/gui/raster/qgsrasterlayerproperties.cpp
Expand Up @@ -732,58 +732,11 @@ void QgsRasterLayerProperties::sync()
mInvertColorsCheck->setChecked( hueSaturationFilter->invertColors() );
}

/*
* Transparent Pixel Tab
*/

//set the transparency slider
QgsRasterRenderer *renderer = mRasterLayer->renderer();
if ( renderer )
{
mRasterTransparencyWidget->mOpacityWidget->setOpacity( renderer->opacity() );
mRasterTransparencyWidget->cboxTransparencyBand->setBand( renderer->alphaBand() );
}

//add current NoDataValue to NoDataValue line edit
// TODO: should be per band
// TODO: no data ranges
if ( provider->sourceHasNoDataValue( 1 ) )
{
double v = QgsRasterBlock::printValue( provider->sourceNoDataValue( 1 ) ).toDouble();
mRasterTransparencyWidget->lblSrcNoDataValue->setText( QLocale().toString( v, 'g' ) );
}
else
{
mRasterTransparencyWidget->lblSrcNoDataValue->setText( tr( "not defined" ) );
}

mRasterTransparencyWidget->mSrcNoDataValueCheckBox->setChecked( provider->useSourceNoDataValue( 1 ) );

bool enableSrcNoData = provider->sourceHasNoDataValue( 1 ) && !std::isnan( provider->sourceNoDataValue( 1 ) );

mRasterTransparencyWidget->mSrcNoDataValueCheckBox->setEnabled( enableSrcNoData );
mRasterTransparencyWidget->lblSrcNoDataValue->setEnabled( enableSrcNoData );

QgsRasterRangeList noDataRangeList = provider->userNoDataValues( 1 );
QgsDebugMsgLevel( QStringLiteral( "noDataRangeList.size = %1" ).arg( noDataRangeList.size() ), 3 );
if ( !noDataRangeList.isEmpty() )
{
mRasterTransparencyWidget->leNoDataValue->insert( QgsRasterBlock::printValue( noDataRangeList.value( 0 ).min() ) );
}
else
{
mRasterTransparencyWidget->leNoDataValue->insert( QString() );
}

mRefreshLayerCheckBox->setChecked( mRasterLayer->hasAutoRefreshEnabled() );
mRefreshLayerIntervalSpinBox->setEnabled( mRasterLayer->hasAutoRefreshEnabled() );
mRefreshLayerIntervalSpinBox->setValue( mRasterLayer->autoRefreshInterval() / 1000.0 );

QgsDebugMsgLevel( QStringLiteral( "populate colormap tab" ), 3 );
/*
* Transparent Pixel Tab
*/

QgsDebugMsgLevel( QStringLiteral( "populate general tab" ), 3 );
/*
* General Tab
Expand Down Expand Up @@ -970,6 +923,9 @@ void QgsRasterLayerProperties::apply()

rasterRenderer->setRasterTransparency( rasterTransparency );

// Sync the layer styling widget
mRasterLayer->emitStyleChanged();

//set global transparency
rasterRenderer->setOpacity( mRasterTransparencyWidget->mOpacityWidget->opacity() );
}
Expand Down

0 comments on commit 5573fa2

Please sign in to comment.