@@ -45,12 +45,15 @@ class TestQgsBlendModes: public QObject
45
45
void cleanup () {};// will be called after every testfunction.
46
46
47
47
void vectorBlending ();
48
+ void featureBlending ();
49
+ void vectorLayerTransparency ();
48
50
void rasterBlending ();
49
51
private:
50
52
bool imageCheck ( QString theType ); // as above
51
53
QgsMapRenderer * mpMapRenderer;
52
54
QgsMapLayer * mpPointsLayer;
53
55
QgsMapLayer * mpPolysLayer;
56
+ QgsVectorLayer * mpLinesLayer;
54
57
QgsRasterLayer* mRasterLayer1 ;
55
58
QgsRasterLayer* mRasterLayer2 ;
56
59
QString mTestDataDir ;
@@ -85,6 +88,14 @@ void TestQgsBlendModes::initTestCase()
85
88
QgsMapLayerRegistry::instance ()->addMapLayers (
86
89
QList<QgsMapLayer *>() << mpPolysLayer );
87
90
91
+ // create a line layer that will be used in tests
92
+ QString myLinesFileName = mTestDataDir + " lines.shp" ;
93
+ QFileInfo myLineFileInfo ( myLinesFileName );
94
+ mpLinesLayer = new QgsVectorLayer ( myLineFileInfo.filePath (),
95
+ myLineFileInfo.completeBaseName (), " ogr" );
96
+ QgsMapLayerRegistry::instance ()->addMapLayers (
97
+ QList<QgsMapLayer *>() << mpLinesLayer );
98
+
88
99
// create two raster layers
89
100
QFileInfo rasterFileInfo ( mTestDataDir + " landsat.tif" );
90
101
mRasterLayer1 = new QgsRasterLayer ( rasterFileInfo.filePath (),
@@ -121,6 +132,35 @@ void TestQgsBlendModes::vectorBlending()
121
132
QVERIFY ( imageCheck ( " vector_blendmodes" ) );
122
133
}
123
134
135
+ void TestQgsBlendModes::featureBlending ()
136
+ {
137
+ // Add two vector layers
138
+ QStringList myLayers;
139
+ myLayers << mpLinesLayer->id ();
140
+ myLayers << mpPolysLayer->id ();
141
+ mpMapRenderer->setLayerSet ( myLayers );
142
+
143
+ // Set feature blending modes for point layer
144
+ mpLinesLayer->setFeatureBlendMode ( QPainter::CompositionMode_Plus );
145
+ mpMapRenderer->setExtent ( mpPointsLayer->extent () );
146
+ QVERIFY ( imageCheck ( " vector_featureblendmodes" ) );
147
+ }
148
+
149
+ void TestQgsBlendModes::vectorLayerTransparency ()
150
+ {
151
+ // Add two vector layers
152
+ QStringList myLayers;
153
+ myLayers << mpLinesLayer->id ();
154
+ myLayers << mpPolysLayer->id ();
155
+ mpMapRenderer->setLayerSet ( myLayers );
156
+ mpLinesLayer->setFeatureBlendMode ( QPainter::CompositionMode_SourceOver );
157
+
158
+ // Set feature blending modes for point layer
159
+ mpLinesLayer->setLayerTransparency ( 50 );
160
+ mpMapRenderer->setExtent ( mpPointsLayer->extent () );
161
+ QVERIFY ( imageCheck ( " vector_layertransparency" ) );
162
+ }
163
+
124
164
void TestQgsBlendModes::rasterBlending ()
125
165
{
126
166
// Add two raster layers to map renderer
0 commit comments