Skip to content

Commit 561690c

Browse files
committed
Use render job in unit test instead of vector renderer
1 parent e5bb0b9 commit 561690c

File tree

5 files changed

+17
-21
lines changed

5 files changed

+17
-21
lines changed

src/core/qgsvectorlayerrenderer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class QgsVectorLayerDiagramProvider;
5050
* @note added in 2.4
5151
* @note not available in Python bindings
5252
*/
53-
class CORE_EXPORT QgsVectorLayerRenderer : public QgsMapLayerRenderer
53+
class QgsVectorLayerRenderer : public QgsMapLayerRenderer
5454
{
5555
public:
5656
QgsVectorLayerRenderer( QgsVectorLayer* layer, QgsRenderContext& context );

tests/src/core/testqgsadjacenttiles.cpp

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
#include "qgsapplication.h"
1919
#include "qgsmaplayerregistry.h"
20+
#include "qgsmaprenderersequentialjob.h"
21+
#include "qgsmapsettings.h"
2022
#include <qgsrenderchecker.h>
2123
#include "qgsvectorlayer.h"
2224
#include "qgsvectorlayerrenderer.h"
@@ -119,19 +121,15 @@ void TestQgsAdjacentTiles::testFourAdjacentTiles()
119121
QFAIL( errorMsg.toLocal8Bit().data() );
120122
}
121123

124+
QgsMapLayerRegistry::instance()->addMapLayers( QList<QgsMapLayer*>() << vectorLayer );
125+
122126
QImage globalImage( 512, 512, QImage::Format_ARGB32_Premultiplied );
123127
globalImage.fill( Qt::white );
124128
QPainter globalPainter( &globalImage );
125129

126130
for ( int i = 0; i < 4; ++i )
127131
{
128-
QImage img( 256, 256, QImage::Format_ARGB32_Premultiplied );
129-
img.fill( Qt::white );
130-
QPainter p( &img );
131-
132-
QgsRenderContext renderContext;
133-
renderContext.setPainter( &p );
134-
renderContext.setFlag( QgsRenderContext::RenderMapTile, true );
132+
QgsMapSettings mapSettings;
135133

136134
//extent
137135
QStringList rectCoords = bboxList.at( i ).split( "," );
@@ -140,24 +138,22 @@ void TestQgsAdjacentTiles::testFourAdjacentTiles()
140138
QFAIL( "bbox string invalid" );
141139
}
142140
QgsRectangle rect( rectCoords[0].toDouble(), rectCoords[1].toDouble(), rectCoords[2].toDouble(), rectCoords[3].toDouble() );
143-
renderContext.setExtent( rect );
144-
145-
//maptopixel
146-
QgsMapToPixel mapToPixel( rect.width() / 256.0, rect.center().x(), rect.center().y(), 256, 256, 0 );
147-
renderContext.setMapToPixel( mapToPixel );
148-
149-
QgsVectorLayerRenderer renderer( vectorLayer, renderContext );
150-
if ( !renderer.render() )
151-
{
152-
QFAIL( "Rendering failed" );
153-
}
154-
141+
mapSettings.setExtent( rect );
142+
mapSettings.setOutputSize( QSize( 256, 256 ) );
143+
mapSettings.setLayers( QStringList() << vectorLayer->id() );
144+
mapSettings.setFlags( QgsMapSettings::RenderMapTile );
145+
mapSettings.setOutputDpi( 96 );
146+
147+
QgsMapRendererSequentialJob renderJob( mapSettings );
148+
renderJob.start();
149+
renderJob.waitForFinished();
150+
QImage img = renderJob.renderedImage();
155151
int globalImageX = ( i % 2 ) * 256;
156152
int globalImageY = ( i < 2 ) ? 0 : 256;
157153
globalPainter.drawImage( globalImageX, globalImageY, img );
158154
}
159155

160-
delete vectorLayer;
156+
QgsMapLayerRegistry::instance()->removeMapLayers( QStringList() << vectorLayer->id() );
161157

162158
QString renderedImagePath = QDir::tempPath() + "/" + QTest::currentDataTag() + QString( ".png" );
163159
globalImage.save( renderedImagePath );
Loading
Loading
Loading

0 commit comments

Comments
 (0)