Skip to content

Commit fa292eb

Browse files
committed
Implement populateTransparencyTab also for three band
1 parent 8ffc134 commit fa292eb

File tree

1 file changed

+13
-87
lines changed

1 file changed

+13
-87
lines changed

src/app/qgsrasterlayerproperties.cpp

+13-87
Original file line numberDiff line numberDiff line change
@@ -306,12 +306,6 @@ QgsRasterLayerProperties::~QgsRasterLayerProperties()
306306
}
307307
}
308308

309-
/*
310-
*
311-
* PUBLIC METHODS
312-
*
313-
*/
314-
315309
void QgsRasterLayerProperties::populateTransparencyTable()
316310
{
317311
QgsDebugMsg( "entering." );
@@ -333,6 +327,7 @@ void QgsRasterLayerProperties::populateTransparencyTable()
333327
{
334328
tableTransparency->setHorizontalHeaderItem( i, new QTableWidgetItem( QString::number( bandList.at( i ) ) ) );
335329
}
330+
tableTransparency->setHorizontalHeaderItem( bandList.size(), new QTableWidgetItem( tr( "Percent Transparent" ) ) );
336331

337332
const QgsRasterTransparency* rasterTransparency = renderer->rasterTransparency();
338333
if ( !rasterTransparency )
@@ -342,7 +337,6 @@ void QgsRasterLayerProperties::populateTransparencyTable()
342337

343338
if ( bandList.count() == 1 )
344339
{
345-
tableTransparency->setHorizontalHeaderItem( 1, new QTableWidgetItem( tr( "Percent Transparent" ) ) );
346340
QList<QgsRasterTransparency::TransparentSingleValuePixel> pixelList = rasterTransparency->transparentSingleValuePixelList();
347341
for ( int i = 0; i < pixelList.size(); ++i )
348342
{
@@ -355,92 +349,24 @@ void QgsRasterLayerProperties::populateTransparencyTable()
355349
}
356350
else if ( bandList.count() == 3 )
357351
{
358-
359-
}
360-
361-
362-
363-
364-
#if 0
365-
//Clear existing color transparency list
366-
//NOTE: May want to just tableTransparency->clearContents() and fill back in after checking to be sure list and table are the same size
367-
QString myNumberFormatter;
368-
if ( mRasterLayer->bandCount() == 3 )
369-
{
370-
for ( int myTableRunner = tableTransparency->rowCount() - 1; myTableRunner >= 0; myTableRunner-- )
371-
{
372-
tableTransparency->removeRow( myTableRunner );
373-
}
374-
375-
tableTransparency->clear();
376-
tableTransparency->setColumnCount( 4 );
377-
tableTransparency->setHorizontalHeaderItem( 0, new QTableWidgetItem( tr( "Red" ) ) );
378-
tableTransparency->setHorizontalHeaderItem( 1, new QTableWidgetItem( tr( "Green" ) ) );
379-
tableTransparency->setHorizontalHeaderItem( 2, new QTableWidgetItem( tr( "Blue" ) ) );
380-
tableTransparency->setHorizontalHeaderItem( 3, new QTableWidgetItem( tr( "Percent Transparent" ) ) );
381-
382-
383-
//populate three band transparency list
384-
if ( rasterTransparency )
385-
{
386-
QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList = rasterTransparency->transparentThreeValuePixelList();
387-
for ( int myListRunner = 0; myListRunner < myTransparentThreeValuePixelList.count(); myListRunner++ )
388-
{
389-
tableTransparency->insertRow( myListRunner );
390-
QTableWidgetItem* myRedItem = new QTableWidgetItem( myNumberFormatter.sprintf( "%.2f", myTransparentThreeValuePixelList[myListRunner].red ) );
391-
QTableWidgetItem* myGreenItem = new QTableWidgetItem( myNumberFormatter.sprintf( "%.2f", myTransparentThreeValuePixelList[myListRunner].green ) );
392-
QTableWidgetItem* myBlueItem = new QTableWidgetItem( myNumberFormatter.sprintf( "%.2f", myTransparentThreeValuePixelList[myListRunner].blue ) );
393-
QTableWidgetItem* myPercentTransparentItem = new QTableWidgetItem( myNumberFormatter.sprintf( "%.2f", myTransparentThreeValuePixelList[myListRunner].percentTransparent ) );
394-
395-
tableTransparency->setItem( myListRunner, 0, myRedItem );
396-
tableTransparency->setItem( myListRunner, 1, myGreenItem );
397-
tableTransparency->setItem( myListRunner, 2, myBlueItem );
398-
tableTransparency->setItem( myListRunner, 3, myPercentTransparentItem );
399-
}
400-
}
401-
}
402-
else if ( mRasterLayer->bandCount() == 1 )
403-
{
404-
//Clear existing single band or palette values transparency list
405-
for ( int myTableRunner = tableTransparency->rowCount() - 1; myTableRunner >= 0; myTableRunner-- )
406-
{
407-
tableTransparency->removeRow( myTableRunner );
408-
}
409-
410-
tableTransparency->clear();
411-
tableTransparency->setColumnCount( 2 );
412-
if ( QgsRasterLayer::PalettedColor != mRasterLayer->drawingStyle() &&
413-
QgsRasterLayer::PalettedSingleBandGray != mRasterLayer->drawingStyle() &&
414-
QgsRasterLayer::PalettedSingleBandPseudoColor != mRasterLayer->drawingStyle() &&
415-
QgsRasterLayer::PalettedMultiBandColor != mRasterLayer->drawingStyle() )
416-
{
417-
tableTransparency->setHorizontalHeaderItem( 0, new QTableWidgetItem( tr( "Gray" ) ) );
418-
}
419-
else
420-
{
421-
tableTransparency->setHorizontalHeaderItem( 0, new QTableWidgetItem( tr( "Indexed Value" ) ) );
422-
}
423-
tableTransparency->setHorizontalHeaderItem( 1, new QTableWidgetItem( tr( "Percent Transparent" ) ) );
424-
425-
//populate gray transparency list
426-
if ( rasterTransparency )
352+
QList<QgsRasterTransparency::TransparentThreeValuePixel> pixelList = rasterTransparency->transparentThreeValuePixelList();
353+
for ( int i = 0; i < pixelList.size(); ++i )
427354
{
428-
QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList = rasterTransparency->transparentSingleValuePixelList();
429-
for ( int myListRunner = 0; myListRunner < myTransparentSingleValuePixelList.count(); myListRunner++ )
430-
{
431-
tableTransparency->insertRow( myListRunner );
432-
QTableWidgetItem* myGrayItem = new QTableWidgetItem( myNumberFormatter.sprintf( "%g", myTransparentSingleValuePixelList[myListRunner].pixelValue ) );
433-
QTableWidgetItem* myPercentTransparentItem = new QTableWidgetItem( myNumberFormatter.sprintf( "%.2f", myTransparentSingleValuePixelList[myListRunner].percentTransparent ) );
434-
435-
tableTransparency->setItem( myListRunner, 0, myGrayItem );
436-
tableTransparency->setItem( myListRunner, 1, myPercentTransparentItem );
437-
}
355+
tableTransparency->insertRow( i );
356+
QTableWidgetItem* redItem = new QTableWidgetItem( QString::number( pixelList[i].red ) );
357+
QTableWidgetItem* greenItem = new QTableWidgetItem( QString::number( pixelList[i].green ) );
358+
QTableWidgetItem* blueItem = new QTableWidgetItem( QString::number( pixelList[i].blue ) );
359+
QTableWidgetItem* transparentItem = new QTableWidgetItem( QString::number( pixelList[i].percentTransparent ) );
360+
361+
tableTransparency->setItem( i, 0, redItem );
362+
tableTransparency->setItem( i, 1, greenItem );
363+
tableTransparency->setItem( i, 2, blueItem );
364+
tableTransparency->setItem( i, 3, transparentItem );
438365
}
439366
}
440367

441368
tableTransparency->resizeColumnsToContents();
442369
tableTransparency->resizeRowsToContents();
443-
#endif //0
444370
}
445371

446372
void QgsRasterLayerProperties::setRendererWidget( const QString& rendererName )

0 commit comments

Comments
 (0)