void QgsRendererRasterPropertiesWidget::syncToLayer( QgsRasterLayer* layer ) { mRasterLayer = layer; cboRenderers->blockSignals( true ); cboRenderers->clear(); QgsRasterRendererRegistryEntry entry; Q_FOREACH ( const QString& name, QgsRasterRendererRegistry::instance()->renderersList() ) { if ( QgsRasterRendererRegistry::instance()->rendererData( name, entry ) ) { if (( mRasterLayer->rasterType() != QgsRasterLayer::ColorLayer && entry.name != "singlebandcolordata" ) || ( mRasterLayer->rasterType() == QgsRasterLayer::ColorLayer && entry.name == "singlebandcolordata" ) ) { cboRenderers->addItem( entry.icon(), entry.visibleName, entry.name ); } } } cboRenderers->setCurrentIndex( -1 ); cboRenderers->blockSignals( false ); QgsRasterRenderer* renderer = mRasterLayer->renderer(); if ( renderer ) { setRendererWidget( renderer->type() ); } QgsBrightnessContrastFilter* brightnessFilter = mRasterLayer->brightnessFilter(); if ( brightnessFilter ) { mSliderBrightness->setValue( brightnessFilter->brightness() ); mSliderContrast->setValue( brightnessFilter->contrast() ); } btnColorizeColor->setColorDialogTitle( tr( "Select color" ) ); btnColorizeColor->setContext( "symbology" ); // Hue and saturation color control const QgsHueSaturationFilter* hueSaturationFilter = mRasterLayer->hueSaturationFilter(); //set hue and saturation controls to current values if ( hueSaturationFilter ) { sliderSaturation->setValue( hueSaturationFilter->saturation() ); comboGrayscale->setCurrentIndex(( int ) hueSaturationFilter->grayscaleMode() ); // Set initial state of saturation controls based on grayscale mode choice toggleSaturationControls(( int )hueSaturationFilter->grayscaleMode() ); // Set initial state of colorize controls mColorizeCheck->setChecked( hueSaturationFilter->colorizeOn() ); btnColorizeColor->setColor( hueSaturationFilter->colorizeColor() ); toggleColorizeControls( hueSaturationFilter->colorizeOn() ); sliderColorizeStrength->setValue( hueSaturationFilter->colorizeStrength() ); } //blend mode mBlendModeComboBox->setBlendMode( mRasterLayer->blendMode() ); }
void QgsRendererRasterPropertiesWidget::syncToLayer( QgsRasterLayer *layer ) { mRasterLayer = layer; cboRenderers->blockSignals( true ); cboRenderers->clear(); QgsRasterRendererRegistryEntry entry; Q_FOREACH ( const QString &name, QgsApplication::rasterRendererRegistry()->renderersList() ) { if ( QgsApplication::rasterRendererRegistry()->rendererData( name, entry ) ) { if ( ( mRasterLayer->rasterType() != QgsRasterLayer::ColorLayer && entry.name != QLatin1String( "singlebandcolordata" ) ) || ( mRasterLayer->rasterType() == QgsRasterLayer::ColorLayer && entry.name == QLatin1String( "singlebandcolordata" ) ) ) { cboRenderers->addItem( entry.icon(), entry.visibleName, entry.name ); } } } cboRenderers->setCurrentIndex( -1 ); cboRenderers->blockSignals( false ); QgsRasterRenderer *renderer = mRasterLayer->renderer(); if ( renderer ) { setRendererWidget( renderer->type() ); } QgsBrightnessContrastFilter *brightnessFilter = mRasterLayer->brightnessFilter(); if ( brightnessFilter ) { mSliderBrightness->setValue( brightnessFilter->brightness() ); mSliderContrast->setValue( brightnessFilter->contrast() ); } btnColorizeColor->setColorDialogTitle( tr( "Select Color" ) ); btnColorizeColor->setContext( QStringLiteral( "symbology" ) ); // Hue and saturation color control const QgsHueSaturationFilter *hueSaturationFilter = mRasterLayer->hueSaturationFilter(); //set hue and saturation controls to current values if ( hueSaturationFilter ) { sliderSaturation->setValue( hueSaturationFilter->saturation() ); comboGrayscale->setCurrentIndex( ( int ) hueSaturationFilter->grayscaleMode() ); // Set initial state of saturation controls based on grayscale mode choice toggleSaturationControls( static_cast<int>( hueSaturationFilter->grayscaleMode() ) ); // Set initial state of colorize controls mColorizeCheck->setChecked( hueSaturationFilter->colorizeOn() ); btnColorizeColor->setColor( hueSaturationFilter->colorizeColor() ); toggleColorizeControls( hueSaturationFilter->colorizeOn() ); sliderColorizeStrength->setValue( hueSaturationFilter->colorizeStrength() ); } //blend mode mBlendModeComboBox->setBlendMode( mRasterLayer->blendMode() ); const QgsRasterResampleFilter *resampleFilter = mRasterLayer->resampleFilter(); //set combo boxes to current resampling types if ( resampleFilter ) { const QgsRasterResampler *zoomedInResampler = resampleFilter->zoomedInResampler(); if ( zoomedInResampler ) { if ( zoomedInResampler->type() == QLatin1String( "bilinear" ) ) { mZoomedInResamplingComboBox->setCurrentIndex( 1 ); } else if ( zoomedInResampler->type() == QLatin1String( "cubic" ) ) { mZoomedInResamplingComboBox->setCurrentIndex( 2 ); } } else { mZoomedInResamplingComboBox->setCurrentIndex( 0 ); } const QgsRasterResampler *zoomedOutResampler = resampleFilter->zoomedOutResampler(); if ( zoomedOutResampler ) { if ( zoomedOutResampler->type() == QLatin1String( "bilinear" ) ) //bilinear resampler does averaging when zooming out { mZoomedOutResamplingComboBox->setCurrentIndex( 1 ); } } else { mZoomedOutResamplingComboBox->setCurrentIndex( 0 ); } mMaximumOversamplingSpinBox->setValue( resampleFilter->maxOversampling() ); } }