Skip to content

Commit

Permalink
-Disabled renaming of the gray band name by getRasterBandStats()
Browse files Browse the repository at this point in the history
-Added additional check to each ::draw function look ignore draw requests for bandno <= 0

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@7966 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
ersts committed Jan 15, 2008
1 parent c87b753 commit ee2874e
Showing 1 changed file with 59 additions and 9 deletions.
68 changes: 59 additions & 9 deletions src/core/raster/qgsrasterlayer.cpp
Expand Up @@ -1420,6 +1420,12 @@ void QgsRasterLayer::draw (QPainter * theQPainter,
void QgsRasterLayer::drawSingleBandGray(QPainter * theQPainter, QgsRasterViewPort * theRasterViewPort, QgsMapToPixel * theQgsMapToPixel, int theBandNo)
{
QgsDebugMsg("QgsRasterLayer::drawSingleBandGray called for layer " + QString::number(theBandNo));
//Invalid band number, segfault prevention
if(0 >= theBandNo)
{
return;
}

GDALRasterBand *myGdalBand = mGdalDataset->GetRasterBand(theBandNo);
GDALDataType myDataType = myGdalBand->GetRasterDataType();
void *myGdalScanData = readData ( myGdalBand, theRasterViewPort );
Expand Down Expand Up @@ -1514,12 +1520,17 @@ void QgsRasterLayer::drawSingleBandGray(QPainter * theQPainter, QgsRasterViewPor
void QgsRasterLayer::drawSingleBandPseudoColor(QPainter * theQPainter,
QgsRasterViewPort * theRasterViewPort,
QgsMapToPixel * theQgsMapToPixel,
int theBandNoInt)
int theBandNo)
{
QgsDebugMsg("QgsRasterLayer::drawSingleBandPseudoColor called");

QgsRasterBandStats myRasterBandStats = getRasterBandStats(theBandNoInt);
GDALRasterBand *myGdalBand = mGdalDataset->GetRasterBand(theBandNoInt);
//Invalid band number, segfault prevention
if(0 >= theBandNo)
{
return;
}

QgsRasterBandStats myRasterBandStats = getRasterBandStats(theBandNo);
GDALRasterBand *myGdalBand = mGdalDataset->GetRasterBand(theBandNo);
GDALDataType myDataType = myGdalBand->GetRasterDataType();
void *myGdalScanData = readData ( myGdalBand, theRasterViewPort );

Expand Down Expand Up @@ -1616,7 +1627,12 @@ void QgsRasterLayer::drawPalettedSingleBandColor(QPainter * theQPainter, QgsRast
QgsMapToPixel * theQgsMapToPixel, int theBandNo)
{
QgsDebugMsg("QgsRasterLayer::drawPalettedSingleBandColor called");

//Invalid band number, segfault prevention
if(0 >= theBandNo)
{
return;
}

GDALRasterBand *myGdalBand = mGdalDataset->GetRasterBand(theBandNo);
GDALDataType myDataType = myGdalBand->GetRasterDataType();
void *myGdalScanData = readData ( myGdalBand, theRasterViewPort );
Expand Down Expand Up @@ -1696,7 +1712,12 @@ void QgsRasterLayer::drawPalettedSingleBandGray(QPainter * theQPainter, QgsRaste
QString const & theColorQString)
{
QgsDebugMsg("QgsRasterLayer::drawPalettedSingleBandGray called");

//Invalid band number, segfault prevention
if(0 >= theBandNo)
{
return;
}

QgsRasterBandStats myRasterBandStats = getRasterBandStats(theBandNo);
GDALRasterBand *myGdalBand = mGdalDataset->GetRasterBand(theBandNo);
GDALDataType myDataType = myGdalBand->GetRasterDataType();
Expand Down Expand Up @@ -1790,6 +1811,12 @@ void QgsRasterLayer::drawPalettedSingleBandPseudoColor(QPainter * theQPainter, Q
QString const & theColorQString)
{
QgsDebugMsg("QgsRasterLayer::drawPalettedSingleBandPseudoColor called");
//Invalid band number, segfault prevention
if(0 >= theBandNo)
{
return;
}

QgsRasterBandStats myRasterBandStats = getRasterBandStats(theBandNo);
GDALRasterBand *myGdalBand = mGdalDataset->GetRasterBand(theBandNo);
GDALDataType myDataType = myGdalBand->GetRasterDataType();
Expand Down Expand Up @@ -1913,7 +1940,12 @@ void QgsRasterLayer::drawPalettedMultiBandColor(QPainter * theQPainter, QgsRaste
QgsMapToPixel * theQgsMapToPixel, int theBandNo)
{
QgsDebugMsg("QgsRasterLayer::drawPalettedMultiBandColor called");

//Invalid band number, segfault prevention
if(0 >= theBandNo)
{
return;
}

GDALRasterBand *myGdalBand = mGdalDataset->GetRasterBand(theBandNo);
GDALDataType myDataType = myGdalBand->GetRasterDataType();
void *myGdalScanData = readData ( myGdalBand, theRasterViewPort );
Expand Down Expand Up @@ -2031,10 +2063,26 @@ void QgsRasterLayer::drawMultiBandColor(QPainter * theQPainter, QgsRasterViewPor
QgsMapToPixel * theQgsMapToPixel)
{
QgsDebugMsg("QgsRasterLayer::drawMultiBandColor called");

int myRedBandNo = getRasterBandNumber(mRedBandName);
//Invalid band number, segfault prevention
if(0 >= myRedBandNo)
{
return;
}

int myGreenBandNo = getRasterBandNumber(mGreenBandName);
//Invalid band number, segfault prevention
if(0 >= myGreenBandNo)
{
return;
}

int myBlueBandNo = getRasterBandNumber(mBlueBandName);
//Invalid band number, segfault prevention
if(0 >= myBlueBandNo)
{
return;
}
GDALRasterBand *myGdalRedBand = mGdalDataset->GetRasterBand(myRedBandNo);
GDALRasterBand *myGdalGreenBand = mGdalDataset->GetRasterBand(myGreenBandNo);
GDALRasterBand *myGdalBlueBand = mGdalDataset->GetRasterBand(myBlueBandNo);
Expand Down Expand Up @@ -2396,7 +2444,9 @@ const QgsRasterBandStats QgsRasterLayer::getRasterBandStats(int theBandNo)
}
else if (rasterLayerType==GRAY_OR_UNDEFINED)
{
myRasterBandStats.bandName = myColorerpretation;
//PJE 2008-01-14 This function should not be changing the band name,
//The format below is not the same as the constructor
//myRasterBandStats.bandName = myColorerpretation;
}
else //rasterLayerType is MULTIBAND
{
Expand Down

0 comments on commit ee2874e

Please sign in to comment.