Skip to content

Commit e8d80a3

Browse files
committedJun 22, 2014
Fix #10663 (additional nodata value pixels not transparent)
1 parent 0d360d4 commit e8d80a3

File tree

6 files changed

+19
-1
lines changed

6 files changed

+19
-1
lines changed
 

‎src/core/raster/qgsrasterdataprovider.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,4 +513,14 @@ bool QgsRasterDataProvider::userNoDataValuesContains( int bandNo, double value )
513513
return QgsRasterRange::contains( value, rangeList );
514514
}
515515

516+
void QgsRasterDataProvider::copyBaseSettings( const QgsRasterDataProvider& other )
517+
{
518+
mDpi = other.mDpi;
519+
mSrcNoDataValue = other.mSrcNoDataValue;
520+
mSrcHasNoDataValue = other.mSrcHasNoDataValue;
521+
mUseSrcNoDataValue = other.mUseSrcNoDataValue;
522+
mUserNoDataValue = other.mUserNoDataValue;
523+
mExtent = other.mExtent;
524+
}
525+
516526
// ENDS

‎src/core/raster/qgsrasterdataprovider.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,9 @@ class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider, public QgsRast
379379
/** Returns true if user no data contains value */
380380
bool userNoDataValuesContains( int bandNo, double value ) const;
381381

382+
/** Copy member variables from other raster data provider. Useful for implementation of clone() method in subclasses */
383+
void copyBaseSettings( const QgsRasterDataProvider& other );
384+
382385
static QStringList cStringList2Q_( char ** stringList );
383386

384387
static QString makeTableCell( const QString & value );

‎src/providers/gdal/qgsgdalprovider.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ QgsRasterInterface * QgsGdalProvider::clone() const
157157
{
158158
QgsDebugMsg( "Entered" );
159159
QgsGdalProvider * provider = new QgsGdalProvider( dataSourceUri() );
160+
provider->copyBaseSettings( *this );
160161
return provider;
161162
}
162163

‎src/providers/grass/qgsgrassrasterprovider.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ QgsGrassRasterProvider::~QgsGrassRasterProvider()
154154
QgsRasterInterface * QgsGrassRasterProvider::clone() const
155155
{
156156
QgsGrassRasterProvider * provider = new QgsGrassRasterProvider( dataSourceUri() );
157+
provider->copyBaseSettings( *this );
157158
return provider;
158159
}
159160

‎src/providers/wcs/qgswcsprovider.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,7 @@ QgsWcsProvider::~QgsWcsProvider()
459459
QgsRasterInterface * QgsWcsProvider::clone() const
460460
{
461461
QgsWcsProvider * provider = new QgsWcsProvider( dataSourceUri() );
462+
provider->copyBaseSettings( *this );
462463
return provider;
463464
}
464465

‎src/providers/wms/qgswmsprovider.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,9 @@ QgsWmsProvider::~QgsWmsProvider()
185185

186186
QgsRasterInterface * QgsWmsProvider::clone() const
187187
{
188-
return new QgsWmsProvider( dataSourceUri(), mCaps.isValid() ? &mCaps : 0 );
188+
QgsWmsProvider* provider = new QgsWmsProvider( dataSourceUri(), mCaps.isValid() ? &mCaps : 0 );
189+
provider->copyBaseSettings( *this );
190+
return provider;
189191
}
190192

191193

0 commit comments

Comments
 (0)
Please sign in to comment.