@@ -960,7 +960,7 @@ void QgsLayoutItemMap::drawMap( QPainter *painter, const QgsRectangle &extent, Q
960
960
}
961
961
962
962
// render
963
- QgsMapRendererCustomPainterJob job ( mapSettings ( extent, size, dpi ), painter );
963
+ QgsMapRendererCustomPainterJob job ( mapSettings ( extent, size, dpi, true ), painter );
964
964
// Render the map in this thread. This is done because of problems
965
965
// with printing to printer on Windows (printing to PDF is fine though).
966
966
// Raster images were not displayed - see #10599
@@ -1037,13 +1037,13 @@ void QgsLayoutItemMap::recreateCachedImageInBackground( double viewScaleFactor )
1037
1037
1038
1038
mCacheInvalidated = false ;
1039
1039
mPainter .reset ( new QPainter ( mCacheRenderingImage .get () ) );
1040
- QgsMapSettings settings ( mapSettings ( ext, QSizeF ( w, h ), mCacheRenderingImage ->logicalDpiX () ) );
1040
+ QgsMapSettings settings ( mapSettings ( ext, QSizeF ( w, h ), mCacheRenderingImage ->logicalDpiX (), true ) );
1041
1041
mPainterJob .reset ( new QgsMapRendererCustomPainterJob ( settings, mPainter .get () ) );
1042
1042
connect ( mPainterJob .get (), &QgsMapRendererCustomPainterJob::finished, this , &QgsLayoutItemMap::painterJobFinished );
1043
1043
mPainterJob ->start ();
1044
1044
}
1045
1045
1046
- QgsMapSettings QgsLayoutItemMap::mapSettings ( const QgsRectangle &extent, QSizeF size, double dpi ) const
1046
+ QgsMapSettings QgsLayoutItemMap::mapSettings ( const QgsRectangle &extent, QSizeF size, double dpi, bool includeLayerSettings ) const
1047
1047
{
1048
1048
QgsExpressionContext expressionContext = createExpressionContext ();
1049
1049
QgsCoordinateReferenceSystem renderCrs = crs ();
@@ -1058,26 +1058,29 @@ QgsMapSettings QgsLayoutItemMap::mapSettings( const QgsRectangle &extent, QSizeF
1058
1058
if ( mLayout )
1059
1059
jobMapSettings.setEllipsoid ( mLayout ->project ()->ellipsoid () );
1060
1060
1061
- // set layers to render
1062
- QList<QgsMapLayer *> layers = layersToRender ( &expressionContext );
1063
- if ( mLayout && -1 != mLayout ->renderContext ().currentExportLayer () )
1061
+ if ( includeLayerSettings )
1064
1062
{
1065
- const int layerIdx = mLayout ->renderContext ().currentExportLayer () - ( hasBackground () ? 1 : 0 );
1066
- if ( layerIdx >= 0 && layerIdx < layers.length () )
1063
+ // set layers to render
1064
+ QList<QgsMapLayer *> layers = layersToRender ( &expressionContext );
1065
+ if ( mLayout && -1 != mLayout ->renderContext ().currentExportLayer () )
1067
1066
{
1068
- // exporting with separate layers (e.g., to svg layers), so we only want to render a single map layer
1069
- QgsMapLayer *ml = layers[ layers.length () - layerIdx - 1 ];
1070
- layers.clear ();
1071
- layers << ml;
1072
- }
1073
- else
1074
- {
1075
- // exporting decorations such as map frame/grid/overview, so no map layers required
1076
- layers.clear ();
1067
+ const int layerIdx = mLayout ->renderContext ().currentExportLayer () - ( hasBackground () ? 1 : 0 );
1068
+ if ( layerIdx >= 0 && layerIdx < layers.length () )
1069
+ {
1070
+ // exporting with separate layers (e.g., to svg layers), so we only want to render a single map layer
1071
+ QgsMapLayer *ml = layers[ layers.length () - layerIdx - 1 ];
1072
+ layers.clear ();
1073
+ layers << ml;
1074
+ }
1075
+ else
1076
+ {
1077
+ // exporting decorations such as map frame/grid/overview, so no map layers required
1078
+ layers.clear ();
1079
+ }
1077
1080
}
1081
+ jobMapSettings.setLayers ( layers );
1082
+ jobMapSettings.setLayerStyleOverrides ( layerStyleOverridesToRender ( expressionContext ) );
1078
1083
}
1079
- jobMapSettings.setLayers ( layers );
1080
- jobMapSettings.setLayerStyleOverrides ( layerStyleOverridesToRender ( expressionContext ) );
1081
1084
1082
1085
if ( !mLayout ->renderContext ().isPreviewRender () )
1083
1086
{
0 commit comments