Skip to content

Commit 305f9f0

Browse files
committed
Remove some more QgsComposition::mapSettings use
1 parent 308fc56 commit 305f9f0

13 files changed

Lines changed: 42 additions & 25 deletions

‎python/core/composer/qgscomposerutils.sip‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,5 +249,5 @@ class QgsComposerUtils
249249
* QgsComposition::referenceMap().
250250
* @note added in QGIS 3.0
251251
*/
252-
static QgsRenderContext createRenderContext( QgsComposition* composition, QPainter& painter );
252+
static QgsRenderContext createRenderContext( QgsComposition* composition, QPainter* painter );
253253
};

‎src/core/composer/qgscomposerarrow.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ void QgsComposerArrow::drawLine( QPainter *painter )
182182
painter->scale( 1 / dotsPerMM, 1 / dotsPerMM ); //scale painter from mm to dots
183183

184184
//setup render context
185-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *painter );
185+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, painter );
186186
context.setForceVectorOutput( true );
187187

188188
QgsExpressionContext expressionContext = createExpressionContext();

‎src/core/composer/qgscomposerlegend.cpp‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,10 @@ void QgsComposerLegend::paint( QPainter* painter, const QStyleOptionGraphicsItem
111111
mSettings.setMmPerMapUnit( mComposerMap->mapUnitsToMM() );
112112

113113
// use a temporary QgsMapSettings to find out real map scale
114-
QgsMapSettings ms = mComposerMap->composition()->mapSettings();
115-
ms.setOutputSize( QSizeF( mComposerMap->rect().width() * dotsPerMM, mComposerMap->rect().height() * dotsPerMM ).toSize() );
116-
ms.setExtent( *mComposerMap->currentMapExtent() );
117-
ms.setOutputDpi( dpi );
114+
QSizeF mapSizePixels = QSizeF( mComposerMap->rect().width() * dotsPerMM, mComposerMap->rect().height() * dotsPerMM );
115+
QgsRectangle mapExtent = *mComposerMap->currentMapExtent();
116+
117+
QgsMapSettings ms = mComposerMap->mapSettings( mapExtent, mapSizePixels, dpi );
118118
mSettings.setMapScale( ms.scale() );
119119
}
120120
mInitialMapScaleCalculated = true;

‎src/core/composer/qgscomposermapgrid.cpp‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ void QgsComposerMapGrid::draw( QPainter* p )
636636
p->scale( 1 / dotsPerMM, 1 / dotsPerMM ); //scale painter from mm to dots
637637

638638
//setup render context
639-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *p );
639+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, p );
640640
context.setForceVectorOutput( true );
641641
QgsExpressionContext expressionContext = createExpressionContext();
642642
context.setExpressionContext( expressionContext );
@@ -2056,8 +2056,7 @@ void QgsComposerMapGrid::calculateMaxExtension( double& top, double& right, doub
20562056
}
20572057

20582058
//setup render context
2059-
QgsMapSettings ms = mComposerMap->composition()->mapSettings();
2060-
QgsRenderContext context = QgsRenderContext::fromMapSettings( ms );
2059+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, nullptr );
20612060
QgsExpressionContext expressionContext = createExpressionContext();
20622061
context.setExpressionContext( expressionContext );
20632062

‎src/core/composer/qgscomposermapoverview.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void QgsComposerMapOverview::draw( QPainter *painter )
9292
double dotsPerMM = painter->device()->logicalDpiX() / 25.4;
9393

9494
//setup render context
95-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *painter );
95+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, painter );
9696
context.setForceVectorOutput( true );
9797
QgsExpressionContext expressionContext = createExpressionContext();
9898
context.setExpressionContext( expressionContext );

‎src/core/composer/qgscomposernodesitem.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ void QgsComposerNodesItem::drawNodes( QPainter *painter ) const
137137
symbol.data()->setSize( rectSize );
138138
symbol.data()->setAngle( 45 );
139139

140-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *painter );
140+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, painter );
141141
context.setForceVectorOutput( true );
142142

143143
QgsExpressionContext expressionContext = createExpressionContext();
@@ -168,7 +168,7 @@ void QgsComposerNodesItem::drawSelectedNode( QPainter *painter ) const
168168
symbol.reset( QgsMarkerSymbol::createSimple( properties ) );
169169
symbol.data()->setSize( rectSize );
170170

171-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *painter );
171+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, painter );
172172
context.setForceVectorOutput( true );
173173

174174
QgsExpressionContext expressionContext = createExpressionContext();

‎src/core/composer/qgscomposerpolygon.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ void QgsComposerPolygon::_draw( QPainter *painter )
7373
//setup painter scaling to dots so that raster symbology is drawn to scale
7474
const double dotsPerMM = painter->device()->logicalDpiX() / 25.4;
7575

76-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *painter );
76+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, painter );
7777
context.setForceVectorOutput( true );
7878
context.setExpressionContext( createExpressionContext() );
7979

‎src/core/composer/qgscomposerpolyline.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ void QgsComposerPolyline::_draw( QPainter *painter )
100100
{
101101
double dotsPerMM = painter->device()->logicalDpiX() / 25.4;
102102

103-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *painter );
103+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, painter );
104104
context.setForceVectorOutput( true );
105105

106106
QgsExpressionContext expressionContext = createExpressionContext();

‎src/core/composer/qgscomposershape.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ void QgsComposerShape::drawShapeUsingSymbol( QPainter* p )
179179
double dotsPerMM = p->device()->logicalDpiX() / 25.4;
180180

181181
//setup render context
182-
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, *p );
182+
QgsRenderContext context = QgsComposerUtils::createRenderContext( mComposition, p );
183183
context.setForceVectorOutput( true );
184184
QgsExpressionContext expressionContext = createExpressionContext();
185185
context.setExpressionContext( expressionContext );

‎src/core/composer/qgscomposerutils.cpp‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -548,15 +548,16 @@ void QgsComposerUtils::drawText( QPainter *painter, const QRectF &rect, const QS
548548
painter->restore();
549549
}
550550

551-
QgsRenderContext QgsComposerUtils::createRenderContext( QgsComposition* composition, QPainter &painter )
551+
QgsRenderContext QgsComposerUtils::createRenderContext( QgsComposition* composition, QPainter* painter )
552552
{
553553
QgsComposerMap* referenceMap = composition ? composition->referenceMap() : nullptr;
554554
if ( !referenceMap )
555555
{
556-
return QgsRenderContext::fromQPainter( &painter );
556+
return QgsRenderContext::fromQPainter( painter );
557557
}
558558

559-
int dpi = painter.device()->logicalDpiX();
559+
// default to 88 dpi if no painter specified
560+
int dpi = ( painter && painter->device() ) ? painter->device()->logicalDpiX() : 88;
560561
double dotsPerMM = dpi / 25.4;
561562

562563
// get map settings from reference map
@@ -565,6 +566,7 @@ QgsRenderContext QgsComposerUtils::createRenderContext( QgsComposition* composit
565566
QgsMapSettings ms = referenceMap->mapSettings( extent, mapSizeMM * dotsPerMM, dpi );
566567

567568
QgsRenderContext context = QgsRenderContext::fromMapSettings( ms );
568-
context.setPainter( &painter );
569+
if ( painter )
570+
context.setPainter( painter );
569571
return context;
570572
}

0 commit comments

Comments
 (0)