26   , mDisableMinMaxWidgetRefresh( false )
    29   connect( mRedMinLineEdit, &QLineEdit::textChanged, 
this, &QgsMultiBandColorRendererWidget::mRedMinLineEdit_textChanged );
    30   connect( mRedMaxLineEdit, &QLineEdit::textChanged, 
this, &QgsMultiBandColorRendererWidget::mRedMaxLineEdit_textChanged );
    31   connect( mGreenMinLineEdit, &QLineEdit::textChanged, 
this, &QgsMultiBandColorRendererWidget::mGreenMinLineEdit_textChanged );
    32   connect( mGreenMaxLineEdit, &QLineEdit::textChanged, 
this, &QgsMultiBandColorRendererWidget::mGreenMaxLineEdit_textChanged );
    33   connect( mBlueMinLineEdit, &QLineEdit::textChanged, 
this, &QgsMultiBandColorRendererWidget::mBlueMinLineEdit_textChanged );
    34   connect( mBlueMaxLineEdit, &QLineEdit::textChanged, 
this, &QgsMultiBandColorRendererWidget::mBlueMaxLineEdit_textChanged );
    48     QHBoxLayout *layout = 
new QHBoxLayout();
    49     layout->setContentsMargins( 0, 0, 0, 0 );
    50     mMinMaxContainerWidget->setLayout( layout );
    51     layout->addWidget( mMinMaxWidget );
    59              this, &QgsMultiBandColorRendererWidget::onBandChanged );
    61              this, &QgsMultiBandColorRendererWidget::onBandChanged );
    63              this, &QgsMultiBandColorRendererWidget::onBandChanged );
    65     mRedBandComboBox->setShowNotSetOption( 
true );
    66     mGreenBandComboBox->setShowNotSetOption( 
true );
    67     mBlueBandComboBox->setShowNotSetOption( 
true );
    97   int redBand = mRedBandComboBox->currentBand();
    98   int greenBand = mGreenBandComboBox->currentBand();
    99   int blueBand = mBlueBandComboBox->currentBand();
   102   setCustomMinMaxValues( r, provider, redBand, greenBand, blueBand );
   120 void QgsMultiBandColorRendererWidget::createValidators()
   122   mRedMinLineEdit->setValidator( 
new QDoubleValidator( mRedMinLineEdit ) );
   123   mRedMaxLineEdit->setValidator( 
new QDoubleValidator( mRedMinLineEdit ) );
   124   mGreenMinLineEdit->setValidator( 
new QDoubleValidator( mGreenMinLineEdit ) );
   125   mGreenMaxLineEdit->setValidator( 
new QDoubleValidator( mGreenMinLineEdit ) );
   126   mBlueMinLineEdit->setValidator( 
new QDoubleValidator( mBlueMinLineEdit ) );
   127   mBlueMaxLineEdit->setValidator( 
new QDoubleValidator( mBlueMinLineEdit ) );
   132     int redBand, 
int greenBand, 
int blueBand )
   134   if ( !r || !provider )
   139   if ( mContrastEnhancementAlgorithmComboBox->currentData().toInt() ==
   152   bool redMinOk, redMaxOk;
   153   double redMin = mRedMinLineEdit->text().toDouble( &redMinOk );
   154   double redMax = mRedMaxLineEdit->text().toDouble( &redMaxOk );
   155   if ( redMinOk && redMaxOk && redBand != -1 )
   163   bool greenMinOk, greenMaxOk;
   164   double greenMin = mGreenMinLineEdit->text().toDouble( &greenMinOk );
   165   double greenMax = mGreenMaxLineEdit->text().toDouble( &greenMaxOk );
   166   if ( greenMinOk && greenMaxOk && greenBand != -1 )
   169           provider->
dataType( greenBand ) ) );
   174   bool blueMinOk, blueMaxOk;
   175   double blueMin = mBlueMinLineEdit->text().toDouble( &blueMinOk );
   176   double blueMax = mBlueMaxLineEdit->text().toDouble( &blueMaxOk );
   177   if ( blueMinOk && blueMaxOk && blueBand != -1 )
   185   if ( redEnhancement )
   188         ( mContrastEnhancementAlgorithmComboBox->currentData().toInt() ) );
   190   if ( greenEnhancement )
   193         ( mContrastEnhancementAlgorithmComboBox->currentData().toInt() ) );
   195   if ( blueEnhancement )
   198         ( mContrastEnhancementAlgorithmComboBox->currentData().toInt() ) );
   205 void QgsMultiBandColorRendererWidget::onBandChanged( 
int index )
   210   myBands.append( mRedBandComboBox->currentBand() );
   211   myBands.append( mGreenBandComboBox->currentBand() );
   212   myBands.append( mBlueBandComboBox->currentBand() );
   217 void QgsMultiBandColorRendererWidget::mRedMinLineEdit_textChanged( 
const QString & )
   222 void QgsMultiBandColorRendererWidget::mRedMaxLineEdit_textChanged( 
const QString & )
   227 void QgsMultiBandColorRendererWidget::mGreenMinLineEdit_textChanged( 
const QString & )
   232 void QgsMultiBandColorRendererWidget::mGreenMaxLineEdit_textChanged( 
const QString & )
   237 void QgsMultiBandColorRendererWidget::mBlueMinLineEdit_textChanged( 
const QString & )
   242 void QgsMultiBandColorRendererWidget::mBlueMaxLineEdit_textChanged( 
const QString & )
   247 void QgsMultiBandColorRendererWidget::minMaxModified()
   249   if ( !mDisableMinMaxWidgetRefresh )
   253       mContrastEnhancementAlgorithmComboBox->setCurrentIndex(
   263   QgsDebugMsg( QStringLiteral( 
"theBandNo = %1 min = %2 max = %3" ).arg( bandNo ).arg( min ).arg( max ) );
   265   QLineEdit *myMinLineEdit, *myMaxLineEdit;
   267   if ( mRedBandComboBox->currentBand() == bandNo )
   269     myMinLineEdit = mRedMinLineEdit;
   270     myMaxLineEdit = mRedMaxLineEdit;
   272   else if ( mGreenBandComboBox->currentBand() == bandNo )
   274     myMinLineEdit = mGreenMinLineEdit;
   275     myMaxLineEdit = mGreenMaxLineEdit;
   277   else if ( mBlueBandComboBox->currentBand() == bandNo )
   279     myMinLineEdit = mBlueMinLineEdit;
   280     myMaxLineEdit = mBlueMaxLineEdit;
   288   mDisableMinMaxWidgetRefresh = 
true;
   289   if ( std::isnan( min ) )
   291     myMinLineEdit->clear();
   295     myMinLineEdit->setText( QString::number( min ) );
   298   if ( std::isnan( max ) )
   300     myMaxLineEdit->clear();
   304     myMaxLineEdit->setText( QString::number( max ) );
   306   mDisableMinMaxWidgetRefresh = 
false;
   309 void QgsMultiBandColorRendererWidget::setMinMaxValue( 
const QgsContrastEnhancement *ce, QLineEdit *minEdit, QLineEdit *maxEdit )
   311   if ( !minEdit || !maxEdit )
   323   minEdit->setText( QString::number( ce->
minimumValue() ) );
   324   maxEdit->setText( QString::number( ce->
maximumValue() ) );
   328   mContrastEnhancementAlgorithmComboBox->setCurrentIndex( mContrastEnhancementAlgorithmComboBox->findData(
   337     mRedBandComboBox->setBand( mbcr->
redBand() );
   338     mGreenBandComboBox->setBand( mbcr->
greenBand() );
   339     mBlueBandComboBox->setBand( mbcr->
blueBand() );
   341     mDisableMinMaxWidgetRefresh = 
true;
   345     mDisableMinMaxWidgetRefresh = 
false;
   351     if ( mRedBandComboBox->findText( tr( 
"Red" ) ) > -1 && mRedBandComboBox->findText( tr( 
"Green" ) ) > -1 &&
   352          mRedBandComboBox->findText( tr( 
"Blue" ) ) > -1 )
   354       mRedBandComboBox->setCurrentIndex( mRedBandComboBox->findText( tr( 
"Red" ) ) );
   355       mGreenBandComboBox->setCurrentIndex( mGreenBandComboBox->findText( tr( 
"Green" ) ) );
   356       mBlueBandComboBox->setCurrentIndex( mBlueBandComboBox->findText( tr( 
"Blue" ) ) );
   360       mRedBandComboBox->setCurrentIndex( mRedBandComboBox->count() > 1 ? 1 : 0 );
   361       mGreenBandComboBox->setCurrentIndex( mRedBandComboBox->count() > 2 ? 2 : 0 );
   362       mBlueBandComboBox->setCurrentIndex( mRedBandComboBox->count() > 3 ? 3 : 0 );
   372       return mRedMinLineEdit->text();
   374       return mGreenMinLineEdit->text();
   376       return mBlueMinLineEdit->text();
   388       return mRedMaxLineEdit->text();
   390       return mGreenMaxLineEdit->text();
   392       return mBlueMaxLineEdit->text();
   401   mDisableMinMaxWidgetRefresh = 
true;
   405       mRedMinLineEdit->setText( value );
   408       mGreenMinLineEdit->setText( value );
   411       mBlueMinLineEdit->setText( value );
   416   mDisableMinMaxWidgetRefresh = 
false;
   421   mDisableMinMaxWidgetRefresh = 
true;
   425       mRedMaxLineEdit->setText( value );
   428       mGreenMaxLineEdit->setText( value );
   431       mBlueMaxLineEdit->setText( value );
   436   mDisableMinMaxWidgetRefresh = 
false;
   444       return mRedBandComboBox->currentBand();
   446       return mGreenBandComboBox->currentBand();
   448       return mBlueBandComboBox->currentBand();
 
double maximumValue() const
Returns the maximum value for the contrast enhancement range. 
 
A rectangle specified with double values. 
 
const QgsContrastEnhancement * blueContrastEnhancement() const
 
void setMinimumValue(double value, bool generateTable=true)
Sets the minimum value for the contrast enhancement range. 
 
This class provides qgis with the ability to render raster datasets onto the mapcanvas. 
 
DataType
Raster data types. 
 
double minimumValue() const
Returns the minimum value for the contrast enhancement range. 
 
const QgsRasterMinMaxOrigin & minMaxOrigin() const
Returns const reference to origin of min/max values. 
 
QgsRasterRenderer * renderer() const
Returns the raster's renderer. 
 
Map canvas is a class for displaying all GIS data types on a canvas. 
 
void setGreenContrastEnhancement(QgsContrastEnhancement *ce)
Takes ownership. 
 
QgsRasterDataProvider * dataProvider() override
Returns the source data provider. 
 
void setRedContrastEnhancement(QgsContrastEnhancement *ce)
Takes ownership. 
 
void setMaximumValue(double value, bool generateTable=true)
Sets the maximum value for the contrast enhancement range. 
 
void bandChanged(int band)
Emitted when the currently selected band changes. 
 
void setMinMaxOrigin(const QgsRasterMinMaxOrigin &origin)
Sets origin of min/max values. 
 
ContrastEnhancementAlgorithm
This enumerator describes the types of contrast enhancement algorithms that can be used...
 
const QgsContrastEnhancement * redContrastEnhancement() const
 
const QgsContrastEnhancement * greenContrastEnhancement() const
 
void setBlueContrastEnhancement(QgsContrastEnhancement *ce)
Takes ownership. 
 
ContrastEnhancementAlgorithm contrastEnhancementAlgorithm() const
 
Renderer for multiband images with the color components. 
 
Manipulates raster pixel values so that they enhanceContrast or clip into a specified numerical range...
 
Raster renderer pipe that applies colors to a raster. 
 
void setContrastEnhancementAlgorithm(ContrastEnhancementAlgorithm algorithm, bool generateTable=true)
Sets the contrast enhancement algorithm. 
 
Qgis::DataType dataType(int bandNo) const override=0
Returns data type for the band specified by number. 
 
Base class for raster data providers.