Skip to content

Commit ccd40bf

Browse files
committed
Map canvas has its QgsMapSettings, moving away from QgsMapRenderer
1 parent f200496 commit ccd40bf

28 files changed

+294
-178
lines changed

src/app/legend/qgslegend.cpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2736,11 +2736,7 @@ void QgsLegend::legendLayerZoom()
27362736
//transform extent if otf-projection is on
27372737
if ( mMapCanvas->hasCrsTransformEnabled() )
27382738
{
2739-
QgsMapRenderer* renderer = mMapCanvas->mapRenderer();
2740-
if ( renderer )
2741-
{
2742-
extent = renderer->layerExtentToOutputExtent( theLayer, extent );
2743-
}
2739+
extent = mMapCanvas->mapSettings().layerExtentToOutputExtent( theLayer, extent );
27442740
}
27452741
}
27462742
else if ( li->type() == QgsLegendItem::LEGEND_GROUP )
@@ -2766,11 +2762,7 @@ void QgsLegend::legendLayerZoom()
27662762
//transform extent if otf-projection is on
27672763
if ( mMapCanvas->hasCrsTransformEnabled() )
27682764
{
2769-
QgsMapRenderer* renderer = mMapCanvas->mapRenderer();
2770-
if ( renderer )
2771-
{
2772-
layerExtent = renderer->layerExtentToOutputExtent( theLayer, layerExtent );
2773-
}
2765+
layerExtent = mMapCanvas->mapSettings().layerExtentToOutputExtent( theLayer, layerExtent );
27742766
}
27752767

27762768
if ( i == 0 )
@@ -2847,7 +2839,7 @@ void QgsLegend::legendLayerStretchUsingCurrentExtent()
28472839
QgsContrastEnhancement::ContrastEnhancementAlgorithm contrastEnhancementAlgorithm = QgsContrastEnhancement::StretchToMinimumMaximum;
28482840

28492841
QgsRectangle myRectangle;
2850-
myRectangle = mMapCanvas->mapRenderer()->outputExtentToLayerExtent( layer, mMapCanvas->extent() );
2842+
myRectangle = mMapCanvas->mapSettings().outputExtentToLayerExtent( layer, mMapCanvas->extent() );
28512843
layer->setContrastEnhancement( contrastEnhancementAlgorithm, QgsRaster::ContrastEnhancementMinMax, myRectangle );
28522844

28532845
layer->setCacheImage( NULL );

src/app/maprenderertest.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ class TestWidget : public QLabel
3030
ms.setExtent(layer->extent());
3131
ms.setOutputSize(i.size());
3232
ms.setOutputDpi(120);
33-
ms.updateDerived();
3433

3534
if (ms.hasValidSettings())
3635
qDebug("map renderer settings valid");

src/app/nodetool/qgsselectedfeature.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ void QgsSelectedFeature::addError( QgsGeometry::Error e )
218218
if ( e.hasWhere() )
219219
{
220220
QgsVertexMarker *marker = new QgsVertexMarker( mCanvas );
221-
marker->setCenter( mCanvas->mapRenderer()->layerToMapCoordinates( mVlayer, e.where() ) );
221+
marker->setCenter( mCanvas->mapSettings().layerToMapCoordinates( mVlayer, e.where() ) );
222222
marker->setIconType( QgsVertexMarker::ICON_X );
223223
marker->setColor( Qt::green );
224224
marker->setZValue( marker->zValue() + 1 );

src/app/nodetool/qgsvertexentry.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ QgsVertexEntry::~QgsVertexEntry()
4343
void QgsVertexEntry::setCenter( QgsPoint p )
4444
{
4545
mPoint = p;
46-
p = mCanvas->mapRenderer()->layerToMapCoordinates( mLayer, p );
46+
p = mCanvas->mapSettings().layerToMapCoordinates( mLayer, p );
4747

4848
if ( mCanvas->extent().contains( p ) )
4949
{

src/app/qgisapp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6893,7 +6893,7 @@ void QgisApp::histogramStretch( bool visibleAreaOnly, QgsRaster::ContrastEnhance
68936893

68946894
QgsRectangle myRectangle;
68956895
if ( visibleAreaOnly )
6896-
myRectangle = mMapCanvas->mapRenderer()->outputExtentToLayerExtent( myRasterLayer, mMapCanvas->extent() );
6896+
myRectangle = mMapCanvas->mapSettings().outputExtentToLayerExtent( myRasterLayer, mMapCanvas->extent() );
68976897

68986898
myRasterLayer->setContrastEnhancement( QgsContrastEnhancement::StretchToMinimumMaximum, theLimits, myRectangle );
68996899

src/app/qgsidentifyresultsdialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1207,7 +1207,7 @@ void QgsIdentifyResultsDialog::zoomToFeature()
12071207
}
12081208

12091209
// TODO: verify CRS for raster WMS features
1210-
QgsRectangle rect = mCanvas->mapRenderer()->layerExtentToOutputExtent( layer, feat.geometry()->boundingBox() );
1210+
QgsRectangle rect = mapSettings().layerExtentToOutputExtent( layer, feat.geometry()->boundingBox() );
12111211

12121212
if ( rect.isEmpty() )
12131213
{

src/app/qgsmaptoolcapture.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ void QgsMapToolCapture::addError( QgsGeometry::Error e )
387387
if ( e.hasWhere() )
388388
{
389389
QgsVertexMarker *vm = new QgsVertexMarker( mCanvas );
390-
vm->setCenter( mCanvas->mapRenderer()->layerToMapCoordinates( vlayer, e.where() ) );
390+
vm->setCenter( mCanvas->mapSettings().layerToMapCoordinates( vlayer, e.where() ) );
391391
vm->setIconType( QgsVertexMarker::ICON_X );
392392
vm->setPenWidth( 2 );
393393
vm->setToolTip( e.what() );

src/app/qgsmaptoolmovelabel.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,10 @@ void QgsMapToolMoveLabel::canvasReleaseEvent( QMouseEvent * e )
126126
else
127127
{
128128
//transform to map crs first, because xdiff,ydiff are in map coordinates
129-
QgsMapRenderer* r = mCanvas->mapRenderer();
130-
if ( r && r->hasCrsTransformEnabled() )
129+
const QgsMapSettings& ms = mCanvas->mapSettings();
130+
if ( ms->hasCrsTransformEnabled() )
131131
{
132-
QgsPoint transformedPoint = r->layerToMapCoordinates( vlayer, QgsPoint( xPosOrig, yPosOrig ) );
132+
QgsPoint transformedPoint = ms.layerToMapCoordinates( vlayer, QgsPoint( xPosOrig, yPosOrig ) );
133133
xPosOrig = transformedPoint.x();
134134
yPosOrig = transformedPoint.y();
135135
}
@@ -140,10 +140,10 @@ void QgsMapToolMoveLabel::canvasReleaseEvent( QMouseEvent * e )
140140
//transform back to layer crs
141141
if ( mCanvas )
142142
{
143-
QgsMapRenderer* r = mCanvas->mapRenderer();
144-
if ( r && r->hasCrsTransformEnabled() )
143+
const QgsMapSettings& s = mCanvas->mapSettings();
144+
if ( s.hasCrsTransformEnabled() )
145145
{
146-
QgsPoint transformedPoint = r->mapToLayerCoordinates( vlayer, QgsPoint( xPosNew, yPosNew ) );
146+
QgsPoint transformedPoint = s.mapToLayerCoordinates( vlayer, QgsPoint( xPosNew, yPosNew ) );
147147
xPosNew = transformedPoint.x();
148148
yPosNew = transformedPoint.y();
149149
}

src/app/qgsmaptoolpinlabels.cpp

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232

3333
QgsMapToolPinLabels::QgsMapToolPinLabels( QgsMapCanvas* canvas ): QgsMapToolLabel( canvas )
3434
{
35-
mRender = 0;
3635
mRubberBand = 0;
3736
mShowPinned = false;
3837

@@ -145,13 +144,14 @@ void QgsMapToolPinLabels::highlightLabel( QgsVectorLayer* vlayer,
145144
{
146145
QgsRectangle rect = labelpos.labelRect;
147146

148-
if ( vlayer->crs().isValid() && mRender->destinationCrs().isValid() )
147+
const QgsMapSettings& ms = mCanvas->mapSettings();
148+
if ( vlayer->crs().isValid() && ms.destinationCrs().isValid() )
149149
{
150150
// if label's layer is on-fly transformed, reverse-transform label rect
151151
// QgsHighlight will convert it, yet again, to the correct map coords
152-
if ( vlayer->crs() != mRender->destinationCrs() )
152+
if ( vlayer->crs() != ms.destinationCrs() )
153153
{
154-
rect = mRender->mapToLayerCoordinates( vlayer, rect );
154+
rect = ms.mapToLayerCoordinates( vlayer, rect );
155155
QgsDebugMsg( QString( "Reverse transform needed for highlight rectangle" ) );
156156
}
157157
}
@@ -178,20 +178,10 @@ void QgsMapToolPinLabels::highlightPinnedLabels()
178178
return;
179179
}
180180

181-
if ( mCanvas )
182-
{
183-
mRender = mCanvas->mapRenderer();
184-
if ( !mRender )
185-
{
186-
QgsDebugMsg( QString( "Failed to acquire map renderer" ) );
187-
return;
188-
}
189-
}
190-
191181
QgsDebugMsg( QString( "Highlighting pinned labels" ) );
192182

193183
// get list of all drawn labels from all layers within given extent
194-
QgsPalLabeling* labelEngine = dynamic_cast<QgsPalLabeling*>( mRender->labelingEngine() );
184+
QgsPalLabeling* labelEngine = dynamic_cast<QgsPalLabeling*>( mCanvas->mapRenderer()->labelingEngine() );
195185
if ( !labelEngine )
196186
{
197187
QgsDebugMsg( QString( "No labeling engine" ) );
@@ -262,17 +252,7 @@ void QgsMapToolPinLabels::pinUnpinLabels( const QgsRectangle& ext, QMouseEvent *
262252
// get list of all drawn labels from all layers within, or touching, chosen extent
263253
bool labelChanged = false;
264254

265-
if ( mCanvas )
266-
{
267-
mRender = mCanvas->mapRenderer();
268-
if ( !mRender )
269-
{
270-
QgsDebugMsg( QString( "Failed to acquire map renderer" ) );
271-
return;
272-
}
273-
}
274-
275-
QgsPalLabeling* labelEngine = dynamic_cast<QgsPalLabeling*>( mRender->labelingEngine() );
255+
QgsPalLabeling* labelEngine = dynamic_cast<QgsPalLabeling*>( mCanvas->mapRenderer()->labelingEngine() );
276256
if ( !labelEngine )
277257
{
278258
QgsDebugMsg( QString( "No labeling engine" ) );
@@ -410,9 +390,9 @@ bool QgsMapToolPinLabels::pinUnpinLabel( QgsVectorLayer* vlayer,
410390
double labelR = labelpos.rotation * 180 / M_PI;
411391

412392
// transform back to layer crs, if on-fly on
413-
if ( mRender->hasCrsTransformEnabled() )
393+
if ( mCanvas->mapSettings().hasCrsTransformEnabled() )
414394
{
415-
QgsPoint transformedPoint = mRender->mapToLayerCoordinates( vlayer, referencePoint );
395+
QgsPoint transformedPoint = mCanvas->mapSettings().mapToLayerCoordinates( vlayer, referencePoint );
416396
labelX = transformedPoint.x();
417397
labelY = transformedPoint.y();
418398
}

src/app/qgsmaptoolpinlabels.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,6 @@ class APP_EXPORT QgsMapToolPinLabels: public QgsMapToolLabel
7979

8080
private:
8181

82-
//! Pointer to map renderer
83-
QgsMapRenderer* mRender;
84-
8582
//! Highlights a given label relative to whether its pinned and editable
8683
void highlightLabel( QgsVectorLayer* vlayer,
8784
const QgsLabelPosition& labelpos,

src/app/qgsrasterlayerproperties.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ void QgsRasterLayerProperties::setRendererWidget( const QString& rendererName )
520520
{
521521
QgsDebugMsg( "renderer has widgetCreateFunction" );
522522
// Current canvas extent (used to calc min/max) in layer CRS
523-
QgsRectangle myExtent = mMapCanvas->mapRenderer()->outputExtentToLayerExtent( mRasterLayer, mMapCanvas->extent() );
523+
QgsRectangle myExtent = mMapCanvas->mapSettings().outputExtentToLayerExtent( mRasterLayer, mMapCanvas->extent() );
524524
mRendererWidget = ( *rendererEntry.widgetCreateFunction )( mRasterLayer, myExtent );
525525
mRendererStackedWidget->addWidget( mRendererWidget );
526526
if ( oldWidget )
@@ -1461,9 +1461,10 @@ void QgsRasterLayerProperties::pixelSelected( const QgsPoint& canvasPoint )
14611461
{
14621462
mMapCanvas->unsetMapTool( mPixelSelectorTool );
14631463

1464-
QgsPoint myPoint = mMapCanvas->mapRenderer()->mapToLayerCoordinates( mRasterLayer, canvasPoint );
1464+
const QgsMapSettings& ms = mMapCanvas->mapSettings();
1465+
QgsPoint myPoint = ms.mapToLayerCoordinates( mRasterLayer, canvasPoint );
14651466

1466-
QgsRectangle myExtent = mMapCanvas->mapRenderer()->mapToLayerCoordinates( mRasterLayer, mMapCanvas->extent() );
1467+
QgsRectangle myExtent = ms.mapToLayerCoordinates( mRasterLayer, mMapCanvas->extent() );
14671468
double mapUnitsPerPixel = mMapCanvas->mapUnitsPerPixel();
14681469
int myWidth = mMapCanvas->extent().width() / mapUnitsPerPixel;
14691470
int myHeight = mMapCanvas->extent().height() / mapUnitsPerPixel;

src/core/qgsmaprendererjob.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ void QgsMapRendererCustomPainterJob::startRender()
219219
// cache painter
220220
QPainter * mypContextPainter = mRenderContext.painter();
221221
// Flattened image for drawing when a blending mode is set
222-
QImage * mypFlattenedImage = 0;
222+
//QImage * mypFlattenedImage = 0;
223223

224224
QString layerId = li.previous();
225225

0 commit comments

Comments
 (0)