Skip to content

Commit 24a047d

Browse files
committed
raster sip fix for test unit
1 parent c6a29fa commit 24a047d

File tree

7 files changed

+23
-8
lines changed

7 files changed

+23
-8
lines changed

python/core/qgsrasterlayer.sip

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ public:
220220
void setRenderer( QgsRasterRenderer* renderer /Transfer/ );
221221
QgsRasterRenderer* renderer();
222222

223+
QgsRasterPipe * pipe();
224+
223225
/** \brief Accessor to find out how many standard deviations are being plotted */
224226
double standardDeviations() const;
225227

python/core/qgsrasterrenderer.sip

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ class QgsRasterRenderer : QgsRasterInterface
3333
virtual QString type() const;
3434
virtual void * readBlock( int bandNo, const QgsRectangle & extent, int width, int height );
3535

36+
QgsRasterInterface::DataType dataType( int bandNo ) const;
37+
3638
bool usesTransparency() const;
3739

3840
void setOpacity( double opacity );

src/core/raster/qgsrasterinterface.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
#include <QImage>
2424

25+
#include "qgslogger.h"
2526
#include "qgsrectangle.h"
2627

2728
#include "gdal.h"
@@ -116,6 +117,7 @@ class CORE_EXPORT QgsRasterInterface
116117
virtual DataType dataType( int bandNo ) const
117118
{
118119
Q_UNUSED( bandNo );
120+
QgsDebugMsg( "Entered" );
119121
return UnknownDataType;
120122
}
121123

src/core/raster/qgsrasterpipe.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,15 @@ bool QgsRasterPipe::replace( int idx, QgsRasterInterface* theInterface )
123123

124124
QgsRasterPipe::Role QgsRasterPipe::interfaceRole( QgsRasterInterface * interface ) const
125125
{
126-
if ( dynamic_cast<QgsRasterDataProvider *>( interface ) ) return ProviderRole;
127-
if ( dynamic_cast<QgsRasterRenderer *>( interface ) ) return RendererRole;
128-
if ( dynamic_cast<QgsRasterResampleFilter *>( interface ) ) return ResamplerRole;
129-
if ( dynamic_cast<QgsRasterProjector *>( interface ) ) return ProjectorRole;
130-
if ( dynamic_cast<QgsRasterNuller *>( interface ) ) return NullerRole;
131-
return UnknownRole;
126+
Role role = UnknownRole;
127+
if ( dynamic_cast<QgsRasterDataProvider *>( interface ) ) role = ProviderRole;
128+
else if ( dynamic_cast<QgsRasterRenderer *>( interface ) ) role = RendererRole;
129+
else if ( dynamic_cast<QgsRasterResampleFilter *>( interface ) ) role = ResamplerRole;
130+
else if ( dynamic_cast<QgsRasterProjector *>( interface ) ) role = ProjectorRole;
131+
else if ( dynamic_cast<QgsRasterNuller *>( interface ) ) role = NullerRole;
132+
133+
QgsDebugMsg( QString( "%1 role = %2" ).arg( typeid( *interface ).name() ).arg( role ) );
134+
return role;
132135
}
133136

134137
void QgsRasterPipe::setRole( QgsRasterInterface * theInterface, int idx )

src/core/raster/qgsrasterrenderer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ int QgsRasterRenderer::bandCount() const
5353

5454
QgsRasterInterface::DataType QgsRasterRenderer::dataType( int bandNo ) const
5555
{
56+
QgsDebugMsg( "Entered" );
57+
5658
if ( mOn ) return QgsRasterInterface::ARGB32_Premultiplied;
5759

5860
if ( mInput ) return mInput->dataType( bandNo );

src/core/raster/qgsrasterresamplefilter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ bool QgsRasterResampleFilter::setInput( QgsRasterInterface* input )
104104
return false;
105105
}
106106

107-
if ( input->dataType( 1 ) != QgsRasterInterface::ARGB32_Premultiplied )
107+
if ( input->dataType( 1 ) != QgsRasterInterface::ARGB32_Premultiplied &&
108+
input->dataType( 1 ) != QgsRasterInterface::ARGB32 )
108109
{
109110
QgsDebugMsg( "Unknown input data type" );
110111
return false;

tests/src/python/test_qgscomposermap.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ def testCase(self):
3131
rasterFileInfo = QFileInfo(TEST_DATA_DIR+QDir().separator().toAscii()+"landsat.tif")
3232
mRasterLayer = QgsRasterLayer(rasterFileInfo.filePath(), rasterFileInfo.completeBaseName())
3333
rasterRenderer = QgsMultiBandColorRenderer( mRasterLayer.dataProvider(), 2, 3, 4 )
34-
mRasterLayer.setRenderer( rasterRenderer )
34+
#mRasterLayer.setRenderer( rasterRenderer )
35+
pipe = mRasterLayer.pipe()
36+
assert pipe.set( rasterRenderer ), "Cannot set pipe renderer"
37+
3538
QgsMapLayerRegistry.instance().addMapLayer( mRasterLayer )
3639

3740
# create composition with composer map

0 commit comments

Comments
 (0)