Skip to content

Commit a850194

Browse files
committedMar 3, 2023
pass painter to the function to create the default renderer context and return it
1 parent 1042c66 commit a850194

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed
 

‎src/server/services/wms/qgswmsrenderer.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ namespace QgsWms
140140
else
141141
{
142142
//use default scale settings
143-
configureDefaultRenderContext( context );
143+
context = configureDefaultRenderContext();
144144
}
145145

146146
// create image according to context
@@ -205,8 +205,7 @@ namespace QgsWms
205205
ctx.painter = painter.get();
206206

207207
// create context
208-
QgsRenderContext context = QgsRenderContext::fromQPainter( painter.get() );
209-
configureDefaultRenderContext( context );
208+
QgsRenderContext context = configureDefaultRenderContext( painter.get() );
210209
ctx.context = &context;
211210

212211
nodeModel.drawSymbol( settings, &ctx, size.height() / dpmm );
@@ -1376,15 +1375,17 @@ namespace QgsWms
13761375
}
13771376
}
13781377

1379-
void QgsRenderer::configureDefaultRenderContext( QgsRenderContext &context )
1378+
QgsRenderContext QgsRenderer::configureDefaultRenderContext( QPainter *painter )
13801379
{
1380+
QgsRenderContext context = QgsRenderContext::fromQPainter( painter );
13811381
context.setScaleFactor( mContext.dotsPerMm() );
13821382
const double mmPerMapUnit = 1 / QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mProject );
13831383
context.setMapToPixel( QgsMapToPixel( 1 / ( mmPerMapUnit * context.scaleFactor() ) ) );
13841384
QgsDistanceArea distanceArea = QgsDistanceArea();
13851385
distanceArea.setSourceCrs( QgsCoordinateReferenceSystem( mWmsParameters.crs() ), mProject->transformContext() );
13861386
distanceArea.setEllipsoid( geoNone() );
13871387
context.setDistanceArea( distanceArea );
1388+
return context;
13881389
}
13891390

13901391
QDomDocument QgsRenderer::featureInfoDocument( QList<QgsMapLayer *> &layers, const QgsMapSettings &mapSettings,

‎src/server/services/wms/qgswmsrenderer.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,12 @@ namespace QgsWms
196196
void configureMapSettings( const QPaintDevice *paintDevice, QgsMapSettings &mapSettings, bool mandatoryCrsParam = true );
197197

198198
/**
199-
* Configures QgsRenderContext according to the WMS parameters and default settings. Used, for example, when no mapSettings are available.
200-
* \param context render context keeping info about the scale
199+
* Configures QgsRenderContext according to the WMS parameters and default settings as well as the passed painter.
200+
* Used, for example, when no mapSettings are available.
201+
* \param painter to create the context from
202+
* \returns the renderer context with default parameters and settings of the passed painter
201203
*/
202-
void configureDefaultRenderContext( QgsRenderContext &context );
204+
QgsRenderContext configureDefaultRenderContext( QPainter *painter = nullptr );
203205

204206
QDomDocument featureInfoDocument( QList<QgsMapLayer *> &layers, const QgsMapSettings &mapSettings,
205207
const QImage *outputImage, const QString &version ) const;

0 commit comments

Comments
 (0)
Please sign in to comment.