20 changes: 11 additions & 9 deletions src/core/raster/qgssinglebandgrayrenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ void QgsSingleBandGrayRenderer::setContrastEnhancement( QgsContrastEnhancement*

void * QgsSingleBandGrayRenderer::readBlock( int bandNo, QgsRectangle const & extent, int width, int height )
{
Q_UNUSED( bandNo );
if ( !mInput )
{
return 0;
Expand All @@ -79,14 +80,15 @@ void * QgsSingleBandGrayRenderer::readBlock( int bandNo, QgsRectangle const & e

void* alphaData = 0;
double currentAlpha = mOpacity;
int grayVal, grayValOrig;
int grayVal;
QRgb myDefaultColor = qRgba( 0, 0, 0, 0 );

if ( mAlphaBand > 0 && mGrayBand != mAlphaBand )
{
alphaData = mInput->block( mAlphaBand, extent, width, height );
if ( !alphaData ) {
free ( rasterData );
if ( !alphaData )
{
free( rasterData );
return 0;
}
}
Expand All @@ -95,7 +97,7 @@ void * QgsSingleBandGrayRenderer::readBlock( int bandNo, QgsRectangle const & e
alphaData = rasterData;
}

QImage *img = createImage ( width, height, QImage::Format_ARGB32_Premultiplied );
QImage *img = createImage( width, height, QImage::Format_ARGB32_Premultiplied );
QRgb* imageScanLine = 0;
int currentRasterPos = 0;

Expand All @@ -104,7 +106,7 @@ void * QgsSingleBandGrayRenderer::readBlock( int bandNo, QgsRectangle const & e
imageScanLine = ( QRgb* )( img->scanLine( i ) );
for ( int j = 0; j < width; ++j )
{
grayValOrig = grayVal = readValue( rasterData, rasterType, currentRasterPos );
grayVal = readValue( rasterData, rasterType, currentRasterPos );

//alpha
currentAlpha = mOpacity;
Expand Down Expand Up @@ -145,13 +147,13 @@ void * QgsSingleBandGrayRenderer::readBlock( int bandNo, QgsRectangle const & e
}
}

free ( rasterData );
if ( mAlphaBand > 0 && mGrayBand != mAlphaBand )
free( rasterData );
if ( mAlphaBand > 0 && mGrayBand != mAlphaBand )
{
free ( alphaData );
free( alphaData );
}

void * data = (void *)img->bits();
void * data = ( void * )img->bits();
delete img;
return data; // OK, the image was created with extraneous data
}
Expand Down
1 change: 1 addition & 0 deletions src/core/raster/qgssinglebandpseudocolorrenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ QgsRasterRenderer* QgsSingleBandPseudoColorRenderer::create( const QDomElement&

void * QgsSingleBandPseudoColorRenderer::readBlock( int bandNo, QgsRectangle const & extent, int width, int height )
{
Q_UNUSED( bandNo );
if ( !mInput || !mShader )
{
return 0;
Expand Down
2 changes: 1 addition & 1 deletion src/gui/qgsattributeeditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ QWidget *QgsAttributeEditor::createAttributeEditor( QWidget *parent, QWidget *ed
item = new QListWidgetItem( it.key() );
item->setData( Qt::UserRole, it.value() );
item->setCheckState( checkList.contains( it.value() ) ? Qt::Checked : Qt::Unchecked );
}
}
else
{
item = new QListWidgetItem( it.value() );
Expand Down
10 changes: 5 additions & 5 deletions src/providers/gdal/qgsgdalprovider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2174,10 +2174,10 @@ char** papszFromStringList( const QStringList& list )
return papszRetList;
}

bool QgsGdalProvider::create( const QString& format, int nBands,
QgsRasterDataProvider::DataType type,
int width, int height, double* geoTransform,
const QgsCoordinateReferenceSystem& crs,
bool QgsGdalProvider::create( const QString& format, int nBands,
QgsRasterDataProvider::DataType type,
int width, int height, double* geoTransform,
const QgsCoordinateReferenceSystem& crs,
QStringList createOptions )
{
//get driver
Expand All @@ -2187,7 +2187,7 @@ bool QgsGdalProvider::create( const QString& format, int nBands,
return false;
}

//create dataset
//create dataset
char **papszOptions = papszFromStringList( createOptions );
GDALDatasetH dataset = GDALCreate( driver, dataSourceUri().toLocal8Bit().data(), width, height, nBands, ( GDALDataType )type, papszOptions );
CSLDestroy( papszOptions );
Expand Down
6 changes: 3 additions & 3 deletions src/providers/gdal/qgsgdalprovider.h
Original file line number Diff line number Diff line change
Expand Up @@ -269,9 +269,9 @@ class QgsGdalProvider : public QgsRasterDataProvider

/** Creates a new dataset with mDataSourceURI
@return true in case of success*/
bool create( const QString& format, int nBands,
QgsRasterDataProvider::DataType type,
int width, int height, double* geoTransform,
bool create( const QString& format, int nBands,
QgsRasterDataProvider::DataType type,
int width, int height, double* geoTransform,
const QgsCoordinateReferenceSystem& crs,
QStringList createOptions = QStringList() );

Expand Down
2 changes: 1 addition & 1 deletion tests/src/core/testqgsrasterlayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ void TestQgsRasterLayer::checkStats()
QVERIFY( mpRasterLayer->bandStatistics( 1 ).minimumValue == 0 );
QVERIFY( mpRasterLayer->bandStatistics( 1 ).maximumValue == 9 );
QVERIFY( mpRasterLayer->bandStatistics( 1 ).mean == 4.5 );
QVERIFY( fabs( mpRasterLayer->bandStatistics( 1 ).stdDev - 2.87228132326901431 )
QVERIFY( fabs( mpRasterLayer->bandStatistics( 1 ).stdDev - 2.87228132326901431 )
< 0.0000000000000001 );
mReport += "<h2>Check Stats</h2>\n";
mReport += "<p>Passed</p>";
Expand Down