@@ -282,13 +282,21 @@ QgsRasterLayerProperties::~QgsRasterLayerProperties()
282
282
void QgsRasterLayerProperties::populateTransparencyTable ()
283
283
{
284
284
QgsDebugMsg ( " entering." );
285
+ if ( !mRasterLayer )
286
+ {
287
+ return ;
288
+ }
289
+ QgsRasterRenderer* renderer = mRasterLayer ->renderer ();
290
+ if ( !renderer )
291
+ {
292
+ return ;
293
+ }
294
+ const QgsRasterTransparency* rasterTransparency = renderer->rasterTransparency ();
285
295
286
296
// Clear existing color transparency list
287
297
// NOTE: May want to just tableTransparency->clearContents() and fill back in after checking to be sure list and table are the same size
288
298
QString myNumberFormatter;
289
- if ( /* rbtnThreeBand->isChecked() && */
290
- QgsRasterLayer::PalettedColor != mRasterLayer ->drawingStyle () &&
291
- QgsRasterLayer::PalettedMultiBandColor != mRasterLayer ->drawingStyle () )
299
+ if ( mRasterLayer ->bandCount () == 3 )
292
300
{
293
301
for ( int myTableRunner = tableTransparency->rowCount () - 1 ; myTableRunner >= 0 ; myTableRunner-- )
294
302
{
@@ -302,8 +310,9 @@ void QgsRasterLayerProperties::populateTransparencyTable()
302
310
tableTransparency->setHorizontalHeaderItem ( 2 , new QTableWidgetItem ( tr ( " Blue" ) ) );
303
311
tableTransparency->setHorizontalHeaderItem ( 3 , new QTableWidgetItem ( tr ( " Percent Transparent" ) ) );
304
312
313
+
305
314
// populate three band transparency list
306
- QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList = mRasterLayer -> rasterTransparency () ->transparentThreeValuePixelList ();
315
+ QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList = rasterTransparency->transparentThreeValuePixelList ();
307
316
for ( int myListRunner = 0 ; myListRunner < myTransparentThreeValuePixelList.count (); myListRunner++ )
308
317
{
309
318
tableTransparency->insertRow ( myListRunner );
@@ -318,7 +327,7 @@ void QgsRasterLayerProperties::populateTransparencyTable()
318
327
tableTransparency->setItem ( myListRunner, 3 , myPercentTransparentItem );
319
328
}
320
329
}
321
- else
330
+ else if ( mRasterLayer -> bandCount () == 1 )
322
331
{
323
332
// Clear existing single band or palette values transparency list
324
333
for ( int myTableRunner = tableTransparency->rowCount () - 1 ; myTableRunner >= 0 ; myTableRunner-- )
@@ -342,7 +351,7 @@ void QgsRasterLayerProperties::populateTransparencyTable()
342
351
tableTransparency->setHorizontalHeaderItem ( 1 , new QTableWidgetItem ( tr ( " Percent Transparent" ) ) );
343
352
344
353
// populate gray transparency list
345
- QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList = mRasterLayer -> rasterTransparency () ->transparentSingleValuePixelList ();
354
+ QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList = rasterTransparency->transparentSingleValuePixelList ();
346
355
for ( int myListRunner = 0 ; myListRunner < myTransparentSingleValuePixelList.count (); myListRunner++ )
347
356
{
348
357
tableTransparency->insertRow ( myListRunner );
0 commit comments