35
35
#include < qgsmaprenderer.h>
36
36
#include < qgssinglebandgrayrenderer.h>
37
37
#include < qgssinglebandpseudocolorrenderer.h>
38
+ #include < qgsmultibandcolorrenderer.h>
38
39
#include < qgsvectorcolorrampv2.h>
39
40
#include < qgscptcityarchive.h>
40
41
@@ -49,10 +50,11 @@ class TestQgsRasterLayer : public QObject
49
50
Q_OBJECT
50
51
public:
51
52
TestQgsRasterLayer ()
52
- : mpRasterLayer( 0 )
53
- , mpLandsatRasterLayer( 0 )
54
- , mpFloat32RasterLayer( 0 )
55
- , mMapSettings ( 0 )
53
+ : mpRasterLayer( nullptr )
54
+ , mpLandsatRasterLayer( nullptr )
55
+ , mpFloat32RasterLayer( nullptr )
56
+ , mPngRasterLayer ( nullptr )
57
+ , mMapSettings ( nullptr )
56
58
{}
57
59
~TestQgsRasterLayer ()
58
60
{
@@ -79,6 +81,7 @@ class TestQgsRasterLayer : public QObject
79
81
void buildExternalOverviews ();
80
82
void registry ();
81
83
void transparency ();
84
+ void multiBandColorRenderer ();
82
85
void setRenderer ();
83
86
private:
84
87
bool render ( const QString& theFileName );
@@ -92,6 +95,7 @@ class TestQgsRasterLayer : public QObject
92
95
QgsRasterLayer * mpRasterLayer;
93
96
QgsRasterLayer * mpLandsatRasterLayer;
94
97
QgsRasterLayer * mpFloat32RasterLayer;
98
+ QgsRasterLayer * mPngRasterLayer ;
95
99
QgsMapSettings * mMapSettings ;
96
100
QString mReport ;
97
101
};
@@ -101,7 +105,7 @@ class TestSignalReceiver : public QObject
101
105
Q_OBJECT
102
106
103
107
public:
104
- TestSignalReceiver () : QObject( 0 ),
108
+ TestSignalReceiver () : QObject( nullptr ),
105
109
rendererChanged ( false )
106
110
{}
107
111
bool rendererChanged;
@@ -132,6 +136,7 @@ void TestQgsRasterLayer::initTestCase()
132
136
QString myFileName = mTestDataDir + " tenbytenraster.asc" ;
133
137
QString myLandsatFileName = mTestDataDir + " landsat.tif" ;
134
138
QString myFloat32FileName = mTestDataDir + " /raster/band1_float32_noct_epsg4326.tif" ;
139
+ QString pngRasterFileName = mTestDataDir + " rgb256x256.png" ;
135
140
136
141
QFileInfo myRasterFileInfo ( myFileName );
137
142
mpRasterLayer = new QgsRasterLayer ( myRasterFileInfo.filePath (),
@@ -148,13 +153,16 @@ void TestQgsRasterLayer::initTestCase()
148
153
myFloat32RasterFileInfo.completeBaseName () );
149
154
qDebug () << " float32raster metadata: " << mpFloat32RasterLayer->dataProvider ()->metadata ();
150
155
156
+ QFileInfo pngRasterFileInfo ( pngRasterFileName );
157
+ mPngRasterLayer = new QgsRasterLayer ( pngRasterFileInfo.filePath (),
158
+ pngRasterFileInfo.completeBaseName () );
159
+
151
160
// Register the layer with the registry
152
161
QgsMapLayerRegistry::instance ()->addMapLayers (
153
- QList<QgsMapLayer *>() << mpRasterLayer );
154
- QgsMapLayerRegistry::instance ()->addMapLayers (
155
- QList<QgsMapLayer *>() << mpLandsatRasterLayer );
156
- QgsMapLayerRegistry::instance ()->addMapLayers (
157
- QList<QgsMapLayer *>() << mpFloat32RasterLayer );
162
+ QList<QgsMapLayer *>() << mpRasterLayer
163
+ << mpLandsatRasterLayer
164
+ << mpFloat32RasterLayer
165
+ << mPngRasterLayer );
158
166
159
167
// add the test layer to the maprender
160
168
mMapSettings ->setLayers ( QStringList () << mpRasterLayer->id () );
@@ -597,6 +605,15 @@ void TestQgsRasterLayer::transparency()
597
605
QVERIFY ( render ( " raster_transparency" ) );
598
606
}
599
607
608
+ void TestQgsRasterLayer::multiBandColorRenderer ()
609
+ {
610
+ QgsMultiBandColorRenderer* rasterRenderer = new QgsMultiBandColorRenderer ( mPngRasterLayer ->dataProvider (), 1 , 2 , 3 );
611
+ mPngRasterLayer ->setRenderer ( rasterRenderer );
612
+ mMapSettings ->setLayers ( QStringList () << mPngRasterLayer ->id () );
613
+ mMapSettings ->setExtent ( mPngRasterLayer ->extent () );
614
+ QVERIFY ( render ( " raster_multibandrenderer" ) );
615
+ }
616
+
600
617
void TestQgsRasterLayer::setRenderer ()
601
618
{
602
619
TestSignalReceiver receiver;
0 commit comments