Skip to content

Commit c020cdb

Browse files
author
jef
committedNov 30, 2010
fix #3274
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@14814 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

1 file changed

+406
-401
lines changed

1 file changed

+406
-401
lines changed
 

‎src/app/qgsrasterlayerproperties.cpp

Lines changed: 406 additions & 401 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,8 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer* lyr, QgsMapCanv
290290
{
291291
refreshHistogram();
292292
}
293-
tableTransparency->horizontalHeader()->setResizeMode(0,QHeaderView::Stretch);
294-
tableTransparency->horizontalHeader()->setResizeMode(1,QHeaderView::Stretch);
293+
tableTransparency->horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch );
294+
tableTransparency->horizontalHeader()->setResizeMode( 1, QHeaderView::Stretch );
295295
} // QgsRasterLayerProperties ctor
296296

297297

@@ -945,476 +945,478 @@ bool QgsRasterLayerProperties::validUserDefinedMinMax()
945945
*/
946946
void QgsRasterLayerProperties::apply()
947947
{
948-
QgsDebugMsg( "apply processing symbology tab" );
949-
/*
950-
* Symbology Tab
951-
*/
952-
//set the appropriate render style
953-
if ( rbtnSingleBand->isChecked() )
948+
if ( mRasterLayerIsGdal )
954949
{
955-
//
956-
// Grayscale
957-
//
958-
if ( mRasterLayer->rasterType() == QgsRasterLayer::GrayOrUndefined )
950+
QgsDebugMsg( "apply processing symbology tab" );
951+
/*
952+
* Symbology Tab
953+
*/
954+
//set the appropriate render style
955+
if ( rbtnSingleBand->isChecked() )
959956
{
960-
961-
if ( cboxColorMap->currentText() != tr( "Grayscale" ) )
957+
//
958+
// Grayscale
959+
//
960+
if ( mRasterLayer->rasterType() == QgsRasterLayer::GrayOrUndefined )
962961
{
963-
QgsDebugMsg( "Raster Drawing Style to :: SingleBandPseudoColor" );
964962

965-
mRasterLayer->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor );
966-
}
967-
else
968-
{
969-
QgsDebugMsg( "Setting Raster Drawing Style to :: SingleBandGray" );
963+
if ( cboxColorMap->currentText() != tr( "Grayscale" ) )
964+
{
965+
QgsDebugMsg( "Raster Drawing Style to :: SingleBandPseudoColor" );
970966

971-
mRasterLayer->setDrawingStyle( QgsRasterLayer::SingleBandGray );
972-
}
973-
}
974-
//
975-
// Paletted Image
976-
//
977-
else if ( mRasterLayer->rasterType() == QgsRasterLayer::Palette )
978-
{
979-
if ( cboxColorMap->currentText() == tr( "Grayscale" ) )
980-
{
981-
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedSingleBandGray" );
982-
QgsDebugMsg( QString( "Combo value : %1 GrayBand Mapping : %2" )
983-
.arg( cboGray->currentText() ).arg( mRasterLayer->grayBandName() ) );
967+
mRasterLayer->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor );
968+
}
969+
else
970+
{
971+
QgsDebugMsg( "Setting Raster Drawing Style to :: SingleBandGray" );
984972

985-
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedSingleBandGray );
973+
mRasterLayer->setDrawingStyle( QgsRasterLayer::SingleBandGray );
974+
}
986975
}
987-
else if ( cboxColorMap->currentText() == tr( "Colormap" ) )
976+
//
977+
// Paletted Image
978+
//
979+
else if ( mRasterLayer->rasterType() == QgsRasterLayer::Palette )
988980
{
989-
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedColor" );
990-
QgsDebugMsg( QString( "Combo value : %1 GrayBand Mapping : %2" ).arg( cboGray->currentText() ).arg( mRasterLayer->
991-
grayBandName() ) );
981+
if ( cboxColorMap->currentText() == tr( "Grayscale" ) )
982+
{
983+
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedSingleBandGray" );
984+
QgsDebugMsg( QString( "Combo value : %1 GrayBand Mapping : %2" )
985+
.arg( cboGray->currentText() ).arg( mRasterLayer->grayBandName() ) );
986+
987+
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedSingleBandGray );
988+
}
989+
else if ( cboxColorMap->currentText() == tr( "Colormap" ) )
990+
{
991+
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedColor" );
992+
QgsDebugMsg( QString( "Combo value : %1 GrayBand Mapping : %2" ).arg( cboGray->currentText() ).arg( mRasterLayer->
993+
grayBandName() ) );
994+
995+
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedColor );
996+
}
997+
else
998+
{
999+
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedSingleBandPseudoColor" );
1000+
1001+
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedSingleBandPseudoColor );
1002+
}
9921003

993-
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedColor );
9941004
}
995-
else
1005+
//
1006+
// Mutltiband
1007+
//
1008+
else if ( mRasterLayer->rasterType() == QgsRasterLayer::Multiband )
9961009
{
997-
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedSingleBandPseudoColor" );
1010+
if ( cboxColorMap->currentText() != tr( "Grayscale" ) )
1011+
{
1012+
QgsDebugMsg( "Setting Raster Drawing Style to ::MultiBandSingleBandPseudoColor " );
9981013

999-
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedSingleBandPseudoColor );
1000-
}
1014+
mRasterLayer->setDrawingStyle( QgsRasterLayer::MultiBandSingleBandPseudoColor );
1015+
}
1016+
else
1017+
{
1018+
QgsDebugMsg( "Setting Raster Drawing Style to :: MultiBandSingleBandGray" );
1019+
QgsDebugMsg( QString( "Combo value : %1 GrayBand Mapping : %2" ).arg( cboGray->currentText() ).arg( mRasterLayer->
1020+
grayBandName() ) );
10011021

1002-
}
1003-
//
1004-
// Mutltiband
1005-
//
1006-
else if ( mRasterLayer->rasterType() == QgsRasterLayer::Multiband )
1022+
mRasterLayer->setDrawingStyle( QgsRasterLayer::MultiBandSingleBandGray );
1023+
1024+
}
1025+
}
1026+
} //end of grayscale box enabled and rbtnsingleband checked
1027+
else //assume that rbtnThreeBand is checked and render in rgb color
10071028
{
1008-
if ( cboxColorMap->currentText() != tr( "Grayscale" ) )
1029+
//set the grayscale color table type if the groupbox is enabled
1030+
1031+
if ( mRasterLayer->rasterType() == QgsRasterLayer::Palette )
10091032
{
1010-
QgsDebugMsg( "Setting Raster Drawing Style to ::MultiBandSingleBandPseudoColor " );
1033+
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedMultiBandColor" );
10111034

1012-
mRasterLayer->setDrawingStyle( QgsRasterLayer::MultiBandSingleBandPseudoColor );
1035+
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedMultiBandColor );
10131036
}
1014-
else
1037+
else if ( mRasterLayer->rasterType() == QgsRasterLayer::Multiband )
10151038
{
1016-
QgsDebugMsg( "Setting Raster Drawing Style to :: MultiBandSingleBandGray" );
1017-
QgsDebugMsg( QString( "Combo value : %1 GrayBand Mapping : %2" ).arg( cboGray->currentText() ).arg( mRasterLayer->
1018-
grayBandName() ) );
10191039

1020-
mRasterLayer->setDrawingStyle( QgsRasterLayer::MultiBandSingleBandGray );
1040+
QgsDebugMsg( "Setting Raster Drawing Style to :: MultiBandColor" );
10211041

1042+
mRasterLayer->setDrawingStyle( QgsRasterLayer::MultiBandColor );
10221043
}
1044+
10231045
}
1024-
} //end of grayscale box enabled and rbtnsingleband checked
1025-
else //assume that rbtnThreeBand is checked and render in rgb color
1026-
{
1027-
//set the grayscale color table type if the groupbox is enabled
10281046

1029-
if ( mRasterLayer->rasterType() == QgsRasterLayer::Palette )
1047+
//set whether the layer histogram should be inverted
1048+
if ( cboxInvertColorMap->isChecked() )
10301049
{
1031-
QgsDebugMsg( "Setting Raster Drawing Style to :: PalettedMultiBandColor" );
1032-
1033-
mRasterLayer->setDrawingStyle( QgsRasterLayer::PalettedMultiBandColor );
1050+
mRasterLayer->setInvertHistogram( true );
10341051
}
1035-
else if ( mRasterLayer->rasterType() == QgsRasterLayer::Multiband )
1052+
else
10361053
{
1037-
1038-
QgsDebugMsg( "Setting Raster Drawing Style to :: MultiBandColor" );
1039-
1040-
mRasterLayer->setDrawingStyle( QgsRasterLayer::MultiBandColor );
1054+
mRasterLayer->setInvertHistogram( false );
10411055
}
10421056

1043-
}
1057+
//now set the color -> band mapping combos to the correct values
1058+
mRasterLayer->setRedBandName( cboRed->currentText() );
1059+
mRasterLayer->setGreenBandName( cboGreen->currentText() );
1060+
mRasterLayer->setBlueBandName( cboBlue->currentText() );
1061+
mRasterLayer->setGrayBandName( cboGray->currentText() );
1062+
mRasterLayer->setTransparentBandName( cboxTransparencyBand->currentText() );
10441063

1045-
//set whether the layer histogram should be inverted
1046-
if ( cboxInvertColorMap->isChecked() )
1047-
{
1048-
mRasterLayer->setInvertHistogram( true );
1049-
}
1050-
else
1051-
{
1052-
mRasterLayer->setInvertHistogram( false );
1053-
}
1054-
1055-
//set transparency
1056-
mRasterLayer->setTransparency( static_cast < unsigned int >( 255 - sliderTransparency->value() ) );
1057-
1058-
//now set the color -> band mapping combos to the correct values
1059-
mRasterLayer->setRedBandName( cboRed->currentText() );
1060-
mRasterLayer->setGreenBandName( cboGreen->currentText() );
1061-
mRasterLayer->setBlueBandName( cboBlue->currentText() );
1062-
mRasterLayer->setGrayBandName( cboGray->currentText() );
1063-
mRasterLayer->setTransparentBandName( cboxTransparencyBand->currentText() );
1064-
1065-
//set the appropriate color shading type
1066-
//If UserDefined do nothing, user defined can only be set programatically
1067-
if ( cboxColorMap->currentText() == tr( "Pseudocolor" ) )
1068-
{
1069-
mRasterLayer->setColorShadingAlgorithm( QgsRasterLayer::PseudoColorShader );
1070-
}
1071-
else if ( cboxColorMap->currentText() == tr( "Freak Out" ) )
1072-
{
1073-
mRasterLayer->setColorShadingAlgorithm( QgsRasterLayer::FreakOutShader );
1074-
}
1075-
else if ( cboxColorMap->currentText() == tr( "Colormap" ) )
1076-
{
1077-
mRasterLayer->setColorShadingAlgorithm( QgsRasterLayer::ColorRampShader );
1078-
}
1079-
1080-
//set the color scaling algorithm
1081-
//Since the maximum, minimum values are going to be set anyway, pass in false for the second parameter of setContrastEnahancementAlgorithm
1082-
//so the the look up tables are not generated for each band, since their parameters are about to change anyway.This will also generate the
1083-
//lookup tables for the three or one band(s) that are immediately needed
1084-
if ( cboxContrastEnhancementAlgorithm->currentText() == tr( "Stretch To MinMax" ) )
1085-
{
1086-
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::StretchToMinimumMaximum, false );
1087-
}
1088-
else if ( cboxContrastEnhancementAlgorithm->currentText() == tr( "Stretch And Clip To MinMax" ) )
1089-
{
1090-
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::StretchAndClipToMinimumMaximum, false );
1091-
}
1092-
else if ( cboxContrastEnhancementAlgorithm->currentText() == tr( "Clip To MinMax" ) )
1093-
{
1094-
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::ClipToMinimumMaximum, false );
1095-
}
1096-
else if ( QgsContrastEnhancement::UserDefinedEnhancement == mRasterLayer->contrastEnhancementAlgorithm() )
1097-
{
1098-
//do nothing
1099-
}
1100-
else
1101-
{
1102-
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::NoEnhancement, false );
1103-
}
1064+
//set the appropriate color shading type
1065+
//If UserDefined do nothing, user defined can only be set programatically
1066+
if ( cboxColorMap->currentText() == tr( "Pseudocolor" ) )
1067+
{
1068+
mRasterLayer->setColorShadingAlgorithm( QgsRasterLayer::PseudoColorShader );
1069+
}
1070+
else if ( cboxColorMap->currentText() == tr( "Freak Out" ) )
1071+
{
1072+
mRasterLayer->setColorShadingAlgorithm( QgsRasterLayer::FreakOutShader );
1073+
}
1074+
else if ( cboxColorMap->currentText() == tr( "Colormap" ) )
1075+
{
1076+
mRasterLayer->setColorShadingAlgorithm( QgsRasterLayer::ColorRampShader );
1077+
}
11041078

1105-
//set the std deviations to be plotted and check for user defined Min Max values
1106-
if ( mRasterLayerIsGdal && rbtnThreeBand->isChecked() )
1107-
{
1108-
//Set min max based on user defined values if all are set and stdDev is 0.0
1109-
if ( rbtnThreeBandMinMax->isEnabled() && rbtnThreeBandMinMax->isChecked() && validUserDefinedMinMax() )
1079+
//set the color scaling algorithm
1080+
//Since the maximum, minimum values are going to be set anyway, pass in false for the second parameter of setContrastEnahancementAlgorithm
1081+
//so the the look up tables are not generated for each band, since their parameters are about to change anyway.This will also generate the
1082+
//lookup tables for the three or one band(s) that are immediately needed
1083+
if ( cboxContrastEnhancementAlgorithm->currentText() == tr( "Stretch To MinMax" ) )
11101084
{
1111-
mRasterLayer->setRGBMinimumMaximumEstimated( mRGBMinimumMaximumEstimated );
1112-
if ( mRasterLayer->redBandName() != TRSTRING_NOT_SET )
1113-
{
1114-
mRasterLayer->setMinimumValue( cboRed->currentText(), leRedMin->text().toDouble(), false );
1115-
mRasterLayer->setMaximumValue( cboRed->currentText(), leRedMax->text().toDouble() );
1116-
}
1117-
if ( mRasterLayer->greenBandName() != TRSTRING_NOT_SET )
1118-
{
1119-
mRasterLayer->setMinimumValue( cboGreen->currentText(), leGreenMin->text().toDouble(), false );
1120-
mRasterLayer->setMaximumValue( cboGreen->currentText(), leGreenMax->text().toDouble() );
1121-
}
1122-
if ( mRasterLayer->blueBandName() != TRSTRING_NOT_SET )
1123-
{
1124-
mRasterLayer->setMinimumValue( cboBlue->currentText(), leBlueMin->text().toDouble(), false );
1125-
mRasterLayer->setMaximumValue( cboBlue->currentText(), leBlueMax->text().toDouble() );
1126-
}
1127-
mRasterLayer->setStandardDeviations( 0.0 );
1128-
mRasterLayer->setUserDefinedRGBMinimumMaximum( true );
1085+
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::StretchToMinimumMaximum, false );
1086+
}
1087+
else if ( cboxContrastEnhancementAlgorithm->currentText() == tr( "Stretch And Clip To MinMax" ) )
1088+
{
1089+
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::StretchAndClipToMinimumMaximum, false );
11291090
}
1130-
else if ( rbtnThreeBandStdDev->isEnabled() && rbtnThreeBandStdDev->isChecked() )
1091+
else if ( cboxContrastEnhancementAlgorithm->currentText() == tr( "Clip To MinMax" ) )
11311092
{
1132-
mRasterLayer->setStandardDeviations( sboxThreeBandStdDev->value() );
1133-
mRasterLayer->setUserDefinedRGBMinimumMaximum( false );
1093+
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::ClipToMinimumMaximum, false );
1094+
}
1095+
else if ( QgsContrastEnhancement::UserDefinedEnhancement == mRasterLayer->contrastEnhancementAlgorithm() )
1096+
{
1097+
//do nothing
11341098
}
11351099
else
11361100
{
1137-
mRasterLayer->setStandardDeviations( 0.0 );
1138-
mRasterLayer->setUserDefinedRGBMinimumMaximum( false );
1101+
mRasterLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::NoEnhancement, false );
11391102
}
1140-
}
1141-
else if ( mRasterLayerIsGdal )
1142-
{
1143-
//Set min max based on user defined values if all are set and stdDev is 0.0
1144-
if ( rbtnSingleBandMinMax->isEnabled() && rbtnSingleBandMinMax->isChecked() && validUserDefinedMinMax() )
1103+
1104+
//set the std deviations to be plotted and check for user defined Min Max values
1105+
if ( rbtnThreeBand->isChecked() )
11451106
{
1146-
mRasterLayer->setGrayMinimumMaximumEstimated( mGrayMinimumMaximumEstimated );
1147-
if ( mRasterLayer->grayBandName() != TRSTRING_NOT_SET )
1107+
//Set min max based on user defined values if all are set and stdDev is 0.0
1108+
if ( rbtnThreeBandMinMax->isEnabled() && rbtnThreeBandMinMax->isChecked() && validUserDefinedMinMax() )
1109+
{
1110+
mRasterLayer->setRGBMinimumMaximumEstimated( mRGBMinimumMaximumEstimated );
1111+
if ( mRasterLayer->redBandName() != TRSTRING_NOT_SET )
1112+
{
1113+
mRasterLayer->setMinimumValue( cboRed->currentText(), leRedMin->text().toDouble(), false );
1114+
mRasterLayer->setMaximumValue( cboRed->currentText(), leRedMax->text().toDouble() );
1115+
}
1116+
if ( mRasterLayer->greenBandName() != TRSTRING_NOT_SET )
1117+
{
1118+
mRasterLayer->setMinimumValue( cboGreen->currentText(), leGreenMin->text().toDouble(), false );
1119+
mRasterLayer->setMaximumValue( cboGreen->currentText(), leGreenMax->text().toDouble() );
1120+
}
1121+
if ( mRasterLayer->blueBandName() != TRSTRING_NOT_SET )
1122+
{
1123+
mRasterLayer->setMinimumValue( cboBlue->currentText(), leBlueMin->text().toDouble(), false );
1124+
mRasterLayer->setMaximumValue( cboBlue->currentText(), leBlueMax->text().toDouble() );
1125+
}
1126+
mRasterLayer->setStandardDeviations( 0.0 );
1127+
mRasterLayer->setUserDefinedRGBMinimumMaximum( true );
1128+
}
1129+
else if ( rbtnThreeBandStdDev->isEnabled() && rbtnThreeBandStdDev->isChecked() )
11481130
{
1149-
mRasterLayer->setMinimumValue( cboGray->currentText(), leGrayMin->text().toDouble(), false );
1150-
mRasterLayer->setMaximumValue( cboGray->currentText(), leGrayMax->text().toDouble() );
1131+
mRasterLayer->setStandardDeviations( sboxThreeBandStdDev->value() );
1132+
mRasterLayer->setUserDefinedRGBMinimumMaximum( false );
1133+
}
1134+
else
1135+
{
1136+
mRasterLayer->setStandardDeviations( 0.0 );
1137+
mRasterLayer->setUserDefinedRGBMinimumMaximum( false );
11511138
}
1152-
mRasterLayer->setStandardDeviations( 0.0 );
1153-
mRasterLayer->setUserDefinedGrayMinimumMaximum( true );
1154-
}
1155-
else if ( rbtnSingleBandStdDev->isEnabled() && rbtnSingleBandStdDev->isChecked() )
1156-
{
1157-
mRasterLayer->setStandardDeviations( sboxSingleBandStdDev->value() );
1158-
mRasterLayer->setUserDefinedGrayMinimumMaximum( false );
11591139
}
11601140
else
11611141
{
1162-
mRasterLayer->setStandardDeviations( 0.0 );
1163-
mRasterLayer->setUserDefinedGrayMinimumMaximum( false );
1142+
//Set min max based on user defined values if all are set and stdDev is 0.0
1143+
if ( rbtnSingleBandMinMax->isEnabled() && rbtnSingleBandMinMax->isChecked() && validUserDefinedMinMax() )
1144+
{
1145+
mRasterLayer->setGrayMinimumMaximumEstimated( mGrayMinimumMaximumEstimated );
1146+
if ( mRasterLayer->grayBandName() != TRSTRING_NOT_SET )
1147+
{
1148+
mRasterLayer->setMinimumValue( cboGray->currentText(), leGrayMin->text().toDouble(), false );
1149+
mRasterLayer->setMaximumValue( cboGray->currentText(), leGrayMax->text().toDouble() );
1150+
}
1151+
mRasterLayer->setStandardDeviations( 0.0 );
1152+
mRasterLayer->setUserDefinedGrayMinimumMaximum( true );
1153+
}
1154+
else if ( rbtnSingleBandStdDev->isEnabled() && rbtnSingleBandStdDev->isChecked() )
1155+
{
1156+
mRasterLayer->setStandardDeviations( sboxSingleBandStdDev->value() );
1157+
mRasterLayer->setUserDefinedGrayMinimumMaximum( false );
1158+
}
1159+
else
1160+
{
1161+
mRasterLayer->setStandardDeviations( 0.0 );
1162+
mRasterLayer->setUserDefinedGrayMinimumMaximum( false );
1163+
}
11641164
}
1165-
}
11661165

1167-
QSettings myQSettings;
1168-
myQSettings.setValue( "/Raster/defaultRedBand", mDefaultRedBand );
1169-
myQSettings.setValue( "/Raster/defaultGreenBand", mDefaultGreenBand );
1170-
myQSettings.setValue( "/Raster/defaultBlueBand", mDefaultBlueBand );
1166+
QSettings myQSettings;
1167+
myQSettings.setValue( "/Raster/defaultRedBand", mDefaultRedBand );
1168+
myQSettings.setValue( "/Raster/defaultGreenBand", mDefaultGreenBand );
1169+
myQSettings.setValue( "/Raster/defaultBlueBand", mDefaultBlueBand );
11711170

1172-
myQSettings.setValue( "/Raster/defaultContrastEnhancementAlgorithm", mDefaultContrastEnhancementAlgorithm );
1171+
myQSettings.setValue( "/Raster/defaultContrastEnhancementAlgorithm", mDefaultContrastEnhancementAlgorithm );
11731172

1174-
myQSettings.setValue( "/Raster/defaultStandardDeviation", mDefaultStandardDeviation );
1173+
myQSettings.setValue( "/Raster/defaultStandardDeviation", mDefaultStandardDeviation );
11751174

1176-
QgsDebugMsg( "processing transparency tab" );
1177-
/*
1178-
* Transparent Pixel Tab
1179-
*/
1175+
QgsDebugMsg( "processing transparency tab" );
1176+
/*
1177+
* Transparent Pixel Tab
1178+
*/
11801179

1181-
//set NoDataValue
1182-
bool myDoubleOk = false;
1183-
if ( "" != leNoDataValue->text() )
1184-
{
1185-
double myNoDataValue = leNoDataValue->text().toDouble( &myDoubleOk );
1186-
if ( myDoubleOk )
1180+
//set NoDataValue
1181+
bool myDoubleOk = false;
1182+
if ( "" != leNoDataValue->text() )
11871183
{
1188-
mRasterLayer->setNoDataValue( myNoDataValue );
1184+
double myNoDataValue = leNoDataValue->text().toDouble( &myDoubleOk );
1185+
if ( myDoubleOk )
1186+
{
1187+
mRasterLayer->setNoDataValue( myNoDataValue );
1188+
}
11891189
}
1190-
}
11911190

1192-
//Walk through each row in table and test value. If not valid set to 0.0 and continue building transparency list
1193-
if ( rbtnThreeBand->isChecked() && QgsRasterLayer::MultiBandColor == mRasterLayer->drawingStyle() )
1194-
{
1195-
double myTransparentValue;
1196-
double myPercentTransparent;
1197-
QgsRasterTransparency::TransparentThreeValuePixel myTransparentPixel;
1198-
QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList;
1199-
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
1191+
//Walk through each row in table and test value. If not valid set to 0.0 and continue building transparency list
1192+
if ( rbtnThreeBand->isChecked() && QgsRasterLayer::MultiBandColor == mRasterLayer->drawingStyle() )
12001193
{
1201-
if ( !tableTransparency->item( myListRunner, 0 ) )
1202-
{
1203-
myTransparentPixel.red = 0.0;
1204-
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1205-
tableTransparency->setItem( myListRunner, 0, newItem );
1206-
}
1207-
else
1194+
double myTransparentValue;
1195+
double myPercentTransparent;
1196+
QgsRasterTransparency::TransparentThreeValuePixel myTransparentPixel;
1197+
QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList;
1198+
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
12081199
{
1209-
myTransparentValue = tableTransparency->item( myListRunner, 0 )->text().toDouble( &myDoubleOk );
1210-
if ( myDoubleOk )
1200+
if ( !tableTransparency->item( myListRunner, 0 ) )
12111201
{
1212-
myTransparentPixel.red = myTransparentValue;
1202+
myTransparentPixel.red = 0.0;
1203+
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1204+
tableTransparency->setItem( myListRunner, 0, newItem );
12131205
}
12141206
else
12151207
{
1216-
myTransparentPixel.red = 0.0;
1217-
tableTransparency->item( myListRunner, 0 )->setText( "0.0" );
1208+
myTransparentValue = tableTransparency->item( myListRunner, 0 )->text().toDouble( &myDoubleOk );
1209+
if ( myDoubleOk )
1210+
{
1211+
myTransparentPixel.red = myTransparentValue;
1212+
}
1213+
else
1214+
{
1215+
myTransparentPixel.red = 0.0;
1216+
tableTransparency->item( myListRunner, 0 )->setText( "0.0" );
1217+
}
12181218
}
1219-
}
12201219

1221-
if ( !tableTransparency->item( myListRunner, 1 ) )
1222-
{
1223-
myTransparentPixel.green = 0.0;
1224-
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1225-
tableTransparency->setItem( myListRunner, 1, newItem );
1226-
}
1227-
else
1228-
{
1229-
myTransparentValue = tableTransparency->item( myListRunner, 1 )->text().toDouble( &myDoubleOk );
1230-
if ( myDoubleOk )
1220+
if ( !tableTransparency->item( myListRunner, 1 ) )
12311221
{
1232-
myTransparentPixel.green = myTransparentValue;
1222+
myTransparentPixel.green = 0.0;
1223+
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1224+
tableTransparency->setItem( myListRunner, 1, newItem );
12331225
}
12341226
else
12351227
{
1236-
myTransparentPixel.green = 0.0;
1237-
tableTransparency->item( myListRunner, 1 )->setText( "0.0" );
1228+
myTransparentValue = tableTransparency->item( myListRunner, 1 )->text().toDouble( &myDoubleOk );
1229+
if ( myDoubleOk )
1230+
{
1231+
myTransparentPixel.green = myTransparentValue;
1232+
}
1233+
else
1234+
{
1235+
myTransparentPixel.green = 0.0;
1236+
tableTransparency->item( myListRunner, 1 )->setText( "0.0" );
1237+
}
12381238
}
1239-
}
12401239

1241-
if ( !tableTransparency->item( myListRunner, 2 ) )
1242-
{
1243-
myTransparentPixel.blue = 0.0;
1244-
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1245-
tableTransparency->setItem( myListRunner, 2, newItem );
1246-
}
1247-
else
1248-
{
1249-
myTransparentValue = tableTransparency->item( myListRunner, 2 )->text().toDouble( &myDoubleOk );
1250-
if ( myDoubleOk )
1240+
if ( !tableTransparency->item( myListRunner, 2 ) )
12511241
{
1252-
myTransparentPixel.blue = myTransparentValue;
1242+
myTransparentPixel.blue = 0.0;
1243+
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1244+
tableTransparency->setItem( myListRunner, 2, newItem );
12531245
}
12541246
else
12551247
{
1256-
myTransparentPixel.blue = 0.0;
1257-
tableTransparency->item( myListRunner, 2 )->setText( "0.0" );
1248+
myTransparentValue = tableTransparency->item( myListRunner, 2 )->text().toDouble( &myDoubleOk );
1249+
if ( myDoubleOk )
1250+
{
1251+
myTransparentPixel.blue = myTransparentValue;
1252+
}
1253+
else
1254+
{
1255+
myTransparentPixel.blue = 0.0;
1256+
tableTransparency->item( myListRunner, 2 )->setText( "0.0" );
1257+
}
12581258
}
1259-
}
12601259

1261-
if ( !tableTransparency->item( myListRunner, 3 ) )
1262-
{
1263-
myTransparentPixel.percentTransparent = 100.0;
1264-
QTableWidgetItem* newItem = new QTableWidgetItem( "100.0" );
1265-
tableTransparency->setItem( myListRunner, 3, newItem );
1266-
}
1267-
else
1268-
{
1269-
QString myNumberFormatter;
1270-
myPercentTransparent = tableTransparency->item( myListRunner, 3 )->text().toDouble( &myDoubleOk );
1271-
if ( myDoubleOk )
1260+
if ( !tableTransparency->item( myListRunner, 3 ) )
12721261
{
1273-
if ( myPercentTransparent > 100.0 )
1274-
myTransparentPixel.percentTransparent = 100.0;
1275-
else if ( myPercentTransparent < 0.0 )
1276-
myTransparentPixel.percentTransparent = 0.0;
1277-
else
1278-
myTransparentPixel.percentTransparent = myPercentTransparent;
1279-
1280-
tableTransparency->item( myListRunner, 3 )->setText( myNumberFormatter.sprintf( "%.2f", myTransparentPixel.percentTransparent ) );
1262+
myTransparentPixel.percentTransparent = 100.0;
1263+
QTableWidgetItem* newItem = new QTableWidgetItem( "100.0" );
1264+
tableTransparency->setItem( myListRunner, 3, newItem );
12811265
}
12821266
else
12831267
{
1284-
myTransparentPixel.percentTransparent = 100.0;
1285-
tableTransparency->item( myListRunner, 3 )->setText( "100.0" );
1268+
QString myNumberFormatter;
1269+
myPercentTransparent = tableTransparency->item( myListRunner, 3 )->text().toDouble( &myDoubleOk );
1270+
if ( myDoubleOk )
1271+
{
1272+
if ( myPercentTransparent > 100.0 )
1273+
myTransparentPixel.percentTransparent = 100.0;
1274+
else if ( myPercentTransparent < 0.0 )
1275+
myTransparentPixel.percentTransparent = 0.0;
1276+
else
1277+
myTransparentPixel.percentTransparent = myPercentTransparent;
1278+
1279+
tableTransparency->item( myListRunner, 3 )->setText( myNumberFormatter.sprintf( "%.2f", myTransparentPixel.percentTransparent ) );
1280+
}
1281+
else
1282+
{
1283+
myTransparentPixel.percentTransparent = 100.0;
1284+
tableTransparency->item( myListRunner, 3 )->setText( "100.0" );
1285+
}
12861286
}
1287+
1288+
myTransparentThreeValuePixelList.append( myTransparentPixel );
12871289
}
12881290

1289-
myTransparentThreeValuePixelList.append( myTransparentPixel );
1291+
mRasterLayer->rasterTransparency()->setTransparentThreeValuePixelList( myTransparentThreeValuePixelList );
12901292
}
1291-
1292-
mRasterLayer->rasterTransparency()->setTransparentThreeValuePixelList( myTransparentThreeValuePixelList );
1293-
}
1294-
else
1295-
{
1296-
double myTransparentValue;
1297-
double myPercentTransparent;
1298-
QgsRasterTransparency::TransparentSingleValuePixel myTransparentPixel;
1299-
QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList;
1300-
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
1293+
else
13011294
{
1302-
if ( !tableTransparency->item( myListRunner, 0 ) )
1303-
{
1304-
myTransparentPixel.pixelValue = 0.0;
1305-
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1306-
tableTransparency->setItem( myListRunner, 0, newItem );
1307-
}
1308-
else
1295+
double myTransparentValue;
1296+
double myPercentTransparent;
1297+
QgsRasterTransparency::TransparentSingleValuePixel myTransparentPixel;
1298+
QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList;
1299+
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
13091300
{
1310-
myTransparentValue = tableTransparency->item( myListRunner, 0 )->text().toDouble( &myDoubleOk );
1311-
if ( myDoubleOk )
1301+
if ( !tableTransparency->item( myListRunner, 0 ) )
13121302
{
1313-
myTransparentPixel.pixelValue = myTransparentValue;
1303+
myTransparentPixel.pixelValue = 0.0;
1304+
QTableWidgetItem* newItem = new QTableWidgetItem( "0.0" );
1305+
tableTransparency->setItem( myListRunner, 0, newItem );
13141306
}
13151307
else
13161308
{
1317-
myTransparentPixel.pixelValue = 0.0;
1318-
tableTransparency->item( myListRunner, 0 )->setText( "0.0" );
1309+
myTransparentValue = tableTransparency->item( myListRunner, 0 )->text().toDouble( &myDoubleOk );
1310+
if ( myDoubleOk )
1311+
{
1312+
myTransparentPixel.pixelValue = myTransparentValue;
1313+
}
1314+
else
1315+
{
1316+
myTransparentPixel.pixelValue = 0.0;
1317+
tableTransparency->item( myListRunner, 0 )->setText( "0.0" );
1318+
}
13191319
}
1320-
}
13211320

1322-
if ( !tableTransparency->item( myListRunner, 1 ) )
1323-
{
1324-
myTransparentPixel.percentTransparent = 100.0;
1325-
QTableWidgetItem* newItem = new QTableWidgetItem( "100.0" );
1326-
tableTransparency->setItem( myListRunner, 1, newItem );
1327-
}
1328-
else
1329-
{
1330-
QString myNumberFormatter;
1331-
myPercentTransparent = tableTransparency->item( myListRunner, 1 )->text().toDouble( &myDoubleOk );
1332-
if ( myDoubleOk )
1321+
if ( !tableTransparency->item( myListRunner, 1 ) )
13331322
{
1334-
if ( myPercentTransparent > 100.0 )
1335-
myTransparentPixel.percentTransparent = 100.0;
1336-
else if ( myPercentTransparent < 0.0 )
1337-
myTransparentPixel.percentTransparent = 0.0;
1338-
else
1339-
myTransparentPixel.percentTransparent = myPercentTransparent;
1340-
1341-
tableTransparency->item( myListRunner, 1 )->setText( myNumberFormatter.sprintf( "%.2f", myTransparentPixel.percentTransparent ) );
1323+
myTransparentPixel.percentTransparent = 100.0;
1324+
QTableWidgetItem* newItem = new QTableWidgetItem( "100.0" );
1325+
tableTransparency->setItem( myListRunner, 1, newItem );
13421326
}
13431327
else
13441328
{
1345-
myTransparentPixel.percentTransparent = 100.0;
1346-
tableTransparency->item( myListRunner, 1 )->setText( "100.0" );
1329+
QString myNumberFormatter;
1330+
myPercentTransparent = tableTransparency->item( myListRunner, 1 )->text().toDouble( &myDoubleOk );
1331+
if ( myDoubleOk )
1332+
{
1333+
if ( myPercentTransparent > 100.0 )
1334+
myTransparentPixel.percentTransparent = 100.0;
1335+
else if ( myPercentTransparent < 0.0 )
1336+
myTransparentPixel.percentTransparent = 0.0;
1337+
else
1338+
myTransparentPixel.percentTransparent = myPercentTransparent;
1339+
1340+
tableTransparency->item( myListRunner, 1 )->setText( myNumberFormatter.sprintf( "%.2f", myTransparentPixel.percentTransparent ) );
1341+
}
1342+
else
1343+
{
1344+
myTransparentPixel.percentTransparent = 100.0;
1345+
tableTransparency->item( myListRunner, 1 )->setText( "100.0" );
1346+
}
13471347
}
1348+
1349+
myTransparentSingleValuePixelList.append( myTransparentPixel );
13481350
}
13491351

1350-
myTransparentSingleValuePixelList.append( myTransparentPixel );
1352+
mRasterLayer->rasterTransparency()->setTransparentSingleValuePixelList( myTransparentSingleValuePixelList );
13511353
}
13521354

1353-
mRasterLayer->rasterTransparency()->setTransparentSingleValuePixelList( myTransparentSingleValuePixelList );
1354-
}
1355-
1356-
QgsDebugMsg( "apply processing Colormap tab" );
1357-
/*
1358-
* ColorMap Tab
1359-
*/
1360-
if ( cboxColorMap->currentText() == tr( "Colormap" ) )
1361-
{
1362-
QgsColorRampShader* myRasterShaderFunction = ( QgsColorRampShader* )mRasterLayer->rasterShader()->rasterShaderFunction();
1363-
if ( myRasterShaderFunction )
1355+
QgsDebugMsg( "apply processing Colormap tab" );
1356+
/*
1357+
* ColorMap Tab
1358+
*/
1359+
if ( cboxColorMap->currentText() == tr( "Colormap" ) )
13641360
{
1365-
//iterate through mColormapTreeWidget and set colormap info of layer
1366-
QList<QgsColorRampShader::ColorRampItem> myColorRampItems;
1367-
1368-
int myTopLevelItemCount = mColormapTreeWidget->topLevelItemCount();
1369-
QTreeWidgetItem* myCurrentItem;
1370-
for ( int i = 0; i < myTopLevelItemCount; ++i )
1361+
QgsColorRampShader* myRasterShaderFunction = ( QgsColorRampShader* )mRasterLayer->rasterShader()->rasterShaderFunction();
1362+
if ( myRasterShaderFunction )
13711363
{
1372-
myCurrentItem = mColormapTreeWidget->topLevelItem( i );
1373-
if ( !myCurrentItem )
1364+
//iterate through mColormapTreeWidget and set colormap info of layer
1365+
QList<QgsColorRampShader::ColorRampItem> myColorRampItems;
1366+
1367+
int myTopLevelItemCount = mColormapTreeWidget->topLevelItemCount();
1368+
QTreeWidgetItem* myCurrentItem;
1369+
for ( int i = 0; i < myTopLevelItemCount; ++i )
13741370
{
1375-
continue;
1376-
}
1377-
QgsColorRampShader::ColorRampItem myNewColorRampItem;
1378-
myNewColorRampItem.value = myCurrentItem->text( 0 ).toDouble();
1379-
myNewColorRampItem.color = myCurrentItem->background( 1 ).color();
1380-
myNewColorRampItem.label = myCurrentItem->text( 2 );
1371+
myCurrentItem = mColormapTreeWidget->topLevelItem( i );
1372+
if ( !myCurrentItem )
1373+
{
1374+
continue;
1375+
}
1376+
QgsColorRampShader::ColorRampItem myNewColorRampItem;
1377+
myNewColorRampItem.value = myCurrentItem->text( 0 ).toDouble();
1378+
myNewColorRampItem.color = myCurrentItem->background( 1 ).color();
1379+
myNewColorRampItem.label = myCurrentItem->text( 2 );
13811380

1382-
myColorRampItems.append( myNewColorRampItem );
1383-
}
1381+
myColorRampItems.append( myNewColorRampItem );
1382+
}
13841383

1385-
// sort the shader items
1386-
qSort( myColorRampItems );
1384+
// sort the shader items
1385+
qSort( myColorRampItems );
13871386

1388-
myRasterShaderFunction->setColorRampItemList( myColorRampItems );
1389-
//Reload table in GUI because it may have been sorted or contained invalid values
1390-
populateColorMapTable( myColorRampItems );
1387+
myRasterShaderFunction->setColorRampItemList( myColorRampItems );
1388+
//Reload table in GUI because it may have been sorted or contained invalid values
1389+
populateColorMapTable( myColorRampItems );
13911390

1392-
if ( cboxColorInterpolation->currentText() == tr( "Linear" ) )
1393-
{
1394-
myRasterShaderFunction->setColorRampType( QgsColorRampShader::INTERPOLATED );
1395-
}
1396-
else if ( cboxColorInterpolation->currentText() == tr( "Discrete" ) )
1397-
{
1398-
myRasterShaderFunction->setColorRampType( QgsColorRampShader::DISCRETE );
1391+
if ( cboxColorInterpolation->currentText() == tr( "Linear" ) )
1392+
{
1393+
myRasterShaderFunction->setColorRampType( QgsColorRampShader::INTERPOLATED );
1394+
}
1395+
else if ( cboxColorInterpolation->currentText() == tr( "Discrete" ) )
1396+
{
1397+
myRasterShaderFunction->setColorRampType( QgsColorRampShader::DISCRETE );
1398+
}
1399+
else
1400+
{
1401+
myRasterShaderFunction->setColorRampType( QgsColorRampShader::EXACT );
1402+
}
13991403
}
14001404
else
14011405
{
1402-
myRasterShaderFunction->setColorRampType( QgsColorRampShader::EXACT );
1406+
QgsDebugMsg( "color ramp was NOT set because RasterShaderFunction was NULL" );
14031407
}
14041408
}
1405-
else
1406-
{
1407-
QgsDebugMsg( "color ramp was NOT set because RasterShaderFunction was NULL" );
1408-
}
14091409
}
14101410

1411+
//set transparency
1412+
mRasterLayer->setTransparency( static_cast < unsigned int >( 255 - sliderTransparency->value() ) );
1413+
14111414
QgsDebugMsg( "processing general tab" );
14121415
/*
14131416
* General Tab
14141417
*/
14151418
mRasterLayer->setLayerName( leDisplayName->text() );
14161419

1417-
14181420
// set up the scale based layer visibility stuff....
14191421
mRasterLayer->toggleScaleBasedVisibility( chkUseScaleDependentRendering->isChecked() );
14201422
mRasterLayer->setMinimumScale( leMinimumScale->text().toFloat() );
@@ -1440,68 +1442,71 @@ void QgsRasterLayerProperties::apply()
14401442
mRasterLayer->triggerRepaint();
14411443

14421444
//Because Min Max values can be set during the redraw if a strech is requested we need to resync after apply
1443-
if ( mRasterLayerIsGdal && QgsContrastEnhancement::NoEnhancement != mRasterLayer->contrastEnhancementAlgorithm() )
1445+
if ( mRasterLayerIsGdal )
14441446
{
1445-
//set the stdDevs and min max values
1446-
if ( rbtnThreeBand->isChecked() )
1447+
if ( QgsContrastEnhancement::NoEnhancement != mRasterLayer->contrastEnhancementAlgorithm() )
14471448
{
1448-
if ( rbtnThreeBandStdDev->isEnabled() )
1449+
//set the stdDevs and min max values
1450+
if ( rbtnThreeBand->isChecked() )
14491451
{
1450-
sboxThreeBandStdDev->setValue( mRasterLayer->standardDeviations() );
1451-
}
1452-
1453-
if ( rbtnThreeBandMinMax->isEnabled() )
1454-
{
1455-
mRGBMinimumMaximumEstimated = mRasterLayer->isRGBMinimumMaximumEstimated();
1456-
if ( mRasterLayer->redBandName() != TRSTRING_NOT_SET )
1452+
if ( rbtnThreeBandStdDev->isEnabled() )
14571453
{
1458-
leRedMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->redBandName() ) ) );
1459-
leRedMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->redBandName() ) ) );
1454+
sboxThreeBandStdDev->setValue( mRasterLayer->standardDeviations() );
14601455
}
1461-
if ( mRasterLayer->greenBandName() != TRSTRING_NOT_SET )
1462-
{
1463-
leGreenMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->greenBandName() ) ) );
1464-
leGreenMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->greenBandName() ) ) );
1465-
}
1466-
if ( mRasterLayer->blueBandName() != TRSTRING_NOT_SET )
1456+
1457+
if ( rbtnThreeBandMinMax->isEnabled() )
14671458
{
1468-
leBlueMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->blueBandName() ) ) );
1469-
leBlueMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->blueBandName() ) ) );
1459+
mRGBMinimumMaximumEstimated = mRasterLayer->isRGBMinimumMaximumEstimated();
1460+
if ( mRasterLayer->redBandName() != TRSTRING_NOT_SET )
1461+
{
1462+
leRedMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->redBandName() ) ) );
1463+
leRedMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->redBandName() ) ) );
1464+
}
1465+
if ( mRasterLayer->greenBandName() != TRSTRING_NOT_SET )
1466+
{
1467+
leGreenMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->greenBandName() ) ) );
1468+
leGreenMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->greenBandName() ) ) );
1469+
}
1470+
if ( mRasterLayer->blueBandName() != TRSTRING_NOT_SET )
1471+
{
1472+
leBlueMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->blueBandName() ) ) );
1473+
leBlueMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->blueBandName() ) ) );
1474+
}
1475+
setMinimumMaximumEstimateWarning();
14701476
}
1471-
setMinimumMaximumEstimateWarning();
14721477
}
1473-
}
1474-
else
1475-
{
1476-
if ( rbtnSingleBandStdDev->isEnabled() )
1478+
else
14771479
{
1478-
sboxSingleBandStdDev->setValue( mRasterLayer->standardDeviations() );
1479-
}
1480+
if ( rbtnSingleBandStdDev->isEnabled() )
1481+
{
1482+
sboxSingleBandStdDev->setValue( mRasterLayer->standardDeviations() );
1483+
}
14801484

1481-
if ( rbtnSingleBandMinMax->isEnabled() )
1482-
{
1483-
mGrayMinimumMaximumEstimated = mRasterLayer->isGrayMinimumMaximumEstimated();
1484-
if ( mRasterLayer->grayBandName() != TRSTRING_NOT_SET )
1485+
if ( rbtnSingleBandMinMax->isEnabled() )
14851486
{
1486-
leGrayMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->grayBandName() ) ) );
1487-
leGrayMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->grayBandName() ) ) );
1487+
mGrayMinimumMaximumEstimated = mRasterLayer->isGrayMinimumMaximumEstimated();
1488+
if ( mRasterLayer->grayBandName() != TRSTRING_NOT_SET )
1489+
{
1490+
leGrayMin->setText( QString::number( mRasterLayer->minimumValue( mRasterLayer->grayBandName() ) ) );
1491+
leGrayMax->setText( QString::number( mRasterLayer->maximumValue( mRasterLayer->grayBandName() ) ) );
1492+
}
1493+
setMinimumMaximumEstimateWarning();
14881494
}
1489-
setMinimumMaximumEstimateWarning();
14901495
}
14911496
}
1492-
}
14931497

1494-
//GUI Cleanup
1495-
//Once the user has applied the changes, user defined function will not longer be a valid option so it should be
1496-
//removed from the list
1497-
if ( -1 != cboxColorMap->findText( tr( "User Defined" ) ) && tr( "User Defined" ) != cboxColorMap->currentText() )
1498-
{
1499-
cboxColorMap->removeItem( cboxColorMap->findText( tr( "User Defined" ) ) );
1500-
}
1498+
//GUI Cleanup
1499+
//Once the user has applied the changes, user defined function will not longer be a valid option so it should be
1500+
//removed from the list
1501+
if ( -1 != cboxColorMap->findText( tr( "User Defined" ) ) && tr( "User Defined" ) != cboxColorMap->currentText() )
1502+
{
1503+
cboxColorMap->removeItem( cboxColorMap->findText( tr( "User Defined" ) ) );
1504+
}
15011505

1502-
if ( -1 != cboxContrastEnhancementAlgorithm->findText( tr( "User Defined" ) ) && tr( "User Defined" ) != cboxContrastEnhancementAlgorithm->currentText() )
1503-
{
1504-
cboxContrastEnhancementAlgorithm->removeItem( cboxContrastEnhancementAlgorithm->findText( tr( "User Defined" ) ) );
1506+
if ( -1 != cboxContrastEnhancementAlgorithm->findText( tr( "User Defined" ) ) && tr( "User Defined" ) != cboxContrastEnhancementAlgorithm->currentText() )
1507+
{
1508+
cboxContrastEnhancementAlgorithm->removeItem( cboxContrastEnhancementAlgorithm->findText( tr( "User Defined" ) ) );
1509+
}
15051510
}
15061511

15071512
// notify the project we've made a change

0 commit comments

Comments
 (0)
Please sign in to comment.