Skip to content

Commit b3a6172

Browse files
committedAug 29, 2012
fix crash in #6276
1 parent a4c709e commit b3a6172

File tree

1 file changed

+35
-31
lines changed

1 file changed

+35
-31
lines changed
 

‎src/app/qgsrasterlayerproperties.cpp

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -651,45 +651,49 @@ void QgsRasterLayerProperties::apply()
651651

652652
//transparency settings
653653
QgsRasterRenderer* rasterRenderer = mRasterLayer->renderer();
654-
rasterRenderer->setAlphaBand( cboxTransparencyBand->itemData( cboxTransparencyBand->currentIndex() ).toInt() );
655-
656-
//Walk through each row in table and test value. If not valid set to 0.0 and continue building transparency list
657-
QgsRasterTransparency* rasterTransparency = new QgsRasterTransparency();
658-
if ( tableTransparency->columnCount() == 4 )
654+
if ( rasterRenderer )
659655
{
660-
QgsRasterTransparency::TransparentThreeValuePixel myTransparentPixel;
661-
QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList;
662-
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
656+
rasterRenderer->setAlphaBand( cboxTransparencyBand->itemData( cboxTransparencyBand->currentIndex() ).toInt() );
657+
658+
//Walk through each row in table and test value. If not valid set to 0.0 and continue building transparency list
659+
QgsRasterTransparency* rasterTransparency = new QgsRasterTransparency();
660+
if ( tableTransparency->columnCount() == 4 )
663661
{
664-
myTransparentPixel.red = transparencyCellValue( myListRunner, 0 );
665-
myTransparentPixel.green = transparencyCellValue( myListRunner, 1 );
666-
myTransparentPixel.blue = transparencyCellValue( myListRunner, 2 );
667-
myTransparentPixel.percentTransparent = transparencyCellValue( myListRunner, 3 );
668-
myTransparentThreeValuePixelList.append( myTransparentPixel );
662+
QgsRasterTransparency::TransparentThreeValuePixel myTransparentPixel;
663+
QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList;
664+
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
665+
{
666+
myTransparentPixel.red = transparencyCellValue( myListRunner, 0 );
667+
myTransparentPixel.green = transparencyCellValue( myListRunner, 1 );
668+
myTransparentPixel.blue = transparencyCellValue( myListRunner, 2 );
669+
myTransparentPixel.percentTransparent = transparencyCellValue( myListRunner, 3 );
670+
myTransparentThreeValuePixelList.append( myTransparentPixel );
671+
}
672+
rasterTransparency->setTransparentThreeValuePixelList( myTransparentThreeValuePixelList );
669673
}
670-
rasterTransparency->setTransparentThreeValuePixelList( myTransparentThreeValuePixelList );
671-
}
672-
else if ( tableTransparency->columnCount() == 3 )
673-
{
674-
QgsRasterTransparency::TransparentSingleValuePixel myTransparentPixel;
675-
QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList;
676-
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
674+
else if ( tableTransparency->columnCount() == 3 )
677675
{
678-
myTransparentPixel.min = transparencyCellValue( myListRunner, 0 );
679-
myTransparentPixel.max = transparencyCellValue( myListRunner, 1 );
680-
myTransparentPixel.percentTransparent = transparencyCellValue( myListRunner, 2 );
676+
QgsRasterTransparency::TransparentSingleValuePixel myTransparentPixel;
677+
QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList;
678+
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
679+
{
680+
myTransparentPixel.min = transparencyCellValue( myListRunner, 0 );
681+
myTransparentPixel.max = transparencyCellValue( myListRunner, 1 );
682+
myTransparentPixel.percentTransparent = transparencyCellValue( myListRunner, 2 );
681683

682-
myTransparentSingleValuePixelList.append( myTransparentPixel );
684+
myTransparentSingleValuePixelList.append( myTransparentPixel );
685+
}
686+
rasterTransparency->setTransparentSingleValuePixelList( myTransparentSingleValuePixelList );
683687
}
684-
rasterTransparency->setTransparentSingleValuePixelList( myTransparentSingleValuePixelList );
685-
}
686-
rasterRenderer->setRasterTransparency( rasterTransparency );
687688

688-
//set global transparency
689-
rasterRenderer->setOpacity(( 255 - sliderTransparency->value() ) / 255.0 );
689+
rasterRenderer->setRasterTransparency( rasterTransparency );
690690

691-
//invert color map
692-
rasterRenderer->setInvertColor( mInvertColorMapCheckBox->isChecked() );
691+
//set global transparency
692+
rasterRenderer->setOpacity(( 255 - sliderTransparency->value() ) / 255.0 );
693+
694+
//invert color map
695+
rasterRenderer->setInvertColor( mInvertColorMapCheckBox->isChecked() );
696+
}
693697

694698
QgsDebugMsg( "processing general tab" );
695699
/*

0 commit comments

Comments
 (0)
Please sign in to comment.