Skip to content

Commit cf3d86c

Browse files
committed
Removed use of QgsMapRenderer::rendererContext()
Deprecated QImage/QPixmap switch in QgsMapCanvas
1 parent d1985a1 commit cf3d86c

File tree

8 files changed

+37
-39
lines changed

8 files changed

+37
-39
lines changed

src/app/qgisapp.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,7 +2063,6 @@ void QgisApp::createOverview()
20632063
QSettings mySettings;
20642064
// Anti Aliasing enabled by default as of QGIS 1.7
20652065
mMapCanvas->enableAntiAliasing( mySettings.value( "/qgis/enable_anti_aliasing", true ).toBool() );
2066-
mMapCanvas->useImageToRender( mySettings.value( "/qgis/use_qimage_to_render", true ).toBool() );
20672066

20682067
int action = mySettings.value( "/qgis/wheel_action", 2 ).toInt();
20692068
double zoomFactor = mySettings.value( "/qgis/zoom_factor", 2 ).toDouble();
@@ -6790,7 +6789,6 @@ void QgisApp::options()
67906789
setTheme( optionsDialog->theme() );
67916790

67926791
mMapCanvas->enableAntiAliasing( mySettings.value( "/qgis/enable_anti_aliasing" ).toBool() );
6793-
mMapCanvas->useImageToRender( mySettings.value( "/qgis/use_qimage_to_render" ).toBool() );
67946792

67956793
int action = mySettings.value( "/qgis/wheel_action", 2 ).toInt();
67966794
double zoomFactor = mySettings.value( "/qgis/zoom_factor", 2 ).toDouble();

src/app/qgsmaptoolrotatepointsymbols.cpp

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -270,17 +270,7 @@ void QgsMapToolRotatePointSymbols::createPixmapItem( QgsFeature& f )
270270
return;
271271
}
272272

273-
//get reference to current render context
274-
QgsMapRenderer* mapRenderer = mCanvas->mapRenderer();
275-
if ( !mapRenderer )
276-
{
277-
return;
278-
}
279-
QgsRenderContext* renderContext = mCanvas->mapRenderer()->rendererContext();
280-
if ( !renderContext )
281-
{
282-
return;
283-
}
273+
QgsRenderContext renderContext( QgsRenderContext::fromMapSettings( mCanvas->mapSettings() ) );
284274

285275
//get the image that is used for that symbol, but without point rotation
286276
QImage pointImage;
@@ -289,14 +279,14 @@ void QgsMapToolRotatePointSymbols::createPixmapItem( QgsFeature& f )
289279
{
290280
QgsFeatureRendererV2* rv2 = mActiveLayer->rendererV2()->clone();
291281
rv2->setRotationField( "" );
292-
rv2->startRender( *renderContext, mActiveLayer );
282+
rv2->startRender( renderContext, mActiveLayer );
293283

294284
QgsSymbolV2* symbolV2 = rv2->symbolForFeature( f );
295285
if ( symbolV2 )
296286
{
297287
pointImage = symbolV2->bigSymbolPreviewImage();
298288
}
299-
rv2->stopRender( *renderContext );
289+
rv2->stopRender( renderContext );
300290
delete rv2;
301291
}
302292

src/core/qgsmaprendererjob.cpp

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -200,21 +200,8 @@ void QgsMapRendererCustomPainterJob::startRender()
200200
renderTime.start();
201201
#endif
202202

203-
mRenderContext.setMapToPixel( mSettings.mapToPixel() );
204-
mRenderContext.setExtent( mSettings.visibleExtent() );
205-
mRenderContext.setDrawEditingInformation( mSettings.testFlag( QgsMapSettings::DrawEditingInfo ) );
206-
mRenderContext.setForceVectorOutput( mSettings.testFlag( QgsMapSettings::ForceVectorOutput ) );
207-
mRenderContext.setUseAdvancedEffects( mSettings.testFlag( QgsMapSettings::UseAdvancedEffects ) );
203+
mRenderContext = QgsRenderContext::fromMapSettings( mSettings );
208204
mRenderContext.setPainter( mPainter );
209-
mRenderContext.setCoordinateTransform( 0 );
210-
mRenderContext.setSelectionColor( mSettings.selectionColor() );
211-
mRenderContext.setRasterScaleFactor( 1.0 );
212-
mRenderContext.setScaleFactor( mSettings.outputDpi() / 25.4 ); // = pixels per mm
213-
mRenderContext.setRendererScale( mSettings.scale() );
214-
215-
//this flag is only for stopping during the current rendering progress,
216-
//so must be false at every new render operation
217-
mRenderContext.setRenderingStopped( false );
218205

219206
mRenderContext.setLabelingEngine( mLabelingEngine );
220207
if ( mLabelingEngine )

src/core/qgsrendercontext.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
#include "qgsrendercontext.h"
2020

21+
#include "qgsmapsettings.h"
22+
2123
QgsRenderContext::QgsRenderContext()
2224
: mPainter( 0 ),
2325
mCoordTransform( 0 ),
@@ -37,6 +39,27 @@ QgsRenderContext::~QgsRenderContext()
3739
{
3840
}
3941

42+
QgsRenderContext QgsRenderContext::fromMapSettings( const QgsMapSettings& mapSettings )
43+
{
44+
QgsRenderContext ctx;
45+
ctx.setMapToPixel( mapSettings.mapToPixel() );
46+
ctx.setExtent( mapSettings.visibleExtent() );
47+
ctx.setDrawEditingInformation( mapSettings.testFlag( QgsMapSettings::DrawEditingInfo ) );
48+
ctx.setForceVectorOutput( mapSettings.testFlag( QgsMapSettings::ForceVectorOutput ) );
49+
ctx.setUseAdvancedEffects( mapSettings.testFlag( QgsMapSettings::UseAdvancedEffects ) );
50+
ctx.setCoordinateTransform( 0 );
51+
ctx.setSelectionColor( mapSettings.selectionColor() );
52+
ctx.setRasterScaleFactor( 1.0 );
53+
ctx.setScaleFactor( mapSettings.outputDpi() / 25.4 ); // = pixels per mm
54+
ctx.setRendererScale( mapSettings.scale() );
55+
56+
//this flag is only for stopping during the current rendering progress,
57+
//so must be false at every new render operation
58+
ctx.setRenderingStopped( false );
59+
60+
return ctx;
61+
}
62+
4063
void QgsRenderContext::setCoordinateTransform( const QgsCoordinateTransform* t )
4164
{
4265
mCoordTransform = t;

src/core/qgsrendercontext.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
class QPainter;
2828

2929
class QgsLabelingEngineInterface;
30+
class QgsMapSettings;
3031

3132
/** \ingroup core
3233
* Contains information about the context of a rendering operation.
@@ -40,6 +41,9 @@ class CORE_EXPORT QgsRenderContext
4041
QgsRenderContext();
4142
~QgsRenderContext();
4243

44+
//! create initialized QgsRenderContext instance from given QgsMapSettings
45+
static QgsRenderContext fromMapSettings( const QgsMapSettings& mapSettings );
46+
4347
//getters
4448

4549
QPainter* painter() {return mPainter;}

src/gui/qgsmapcanvas.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,6 @@ void QgsMapCanvas::enableAntiAliasing( bool theFlag )
186186
void QgsMapCanvas::useImageToRender( bool theFlag )
187187
{
188188
Q_UNUSED(theFlag);
189-
//mMap->useImageToRender( theFlag );
190-
//refresh(); // redraw the map on change - prevents black map view
191189
}
192190

193191
QgsMapCanvasMap* QgsMapCanvas::map()
@@ -476,11 +474,7 @@ void QgsMapCanvas::refresh()
476474

477475
void QgsMapCanvas::stopRendering()
478476
{
479-
QgsRenderContext* mypRenderContext = mMapRenderer->rendererContext();
480-
if ( mypRenderContext )
481-
{
482-
mypRenderContext->setRenderingStopped( true );
483-
}
477+
// TODO: implement stopping (?)
484478
}
485479

486480
void QgsMapCanvas::updateMap()

src/gui/qgsmapcanvas.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,8 @@ class GUI_EXPORT QgsMapCanvas : public QGraphicsView
278278
bool antiAliasingEnabled() const { return mSettings.testFlag( QgsMapSettings::Antialiasing ); }
279279

280280
//! Select which Qt class to render with
281-
void useImageToRender( bool theFlag );
281+
//! @deprecated since 2.1 - does nothing because now we always render to QImage
282+
Q_DECL_DEPRECATED void useImageToRender( bool theFlag );
282283

283284
// following 2 methods should be moved elsewhere or changed to private
284285
// currently used by pan map tool

src/gui/qgsmaptoolidentify.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,12 @@ bool QgsMapToolIdentify::identifyVectorLayer( QList<IdentifyResult> *results, Qg
313313

314314
bool filter = false;
315315

316+
QgsRenderContext context( QgsRenderContext::fromMapSettings( mCanvas->mapSettings() ) );
316317
QgsFeatureRendererV2* renderer = layer->rendererV2();
317318
if ( renderer && renderer->capabilities() & QgsFeatureRendererV2::ScaleDependent )
318319
{
319320
// setup scale for scale dependent visibility (rule based)
320-
renderer->startRender( *( mCanvas->mapRenderer()->rendererContext() ), layer );
321+
renderer->startRender( context, layer );
321322
filter = renderer->capabilities() & QgsFeatureRendererV2::Filter;
322323
}
323324

@@ -341,7 +342,7 @@ bool QgsMapToolIdentify::identifyVectorLayer( QList<IdentifyResult> *results, Qg
341342

342343
if ( renderer && renderer->capabilities() & QgsFeatureRendererV2::ScaleDependent )
343344
{
344-
renderer->stopRender( *( mCanvas->mapRenderer()->rendererContext() ) );
345+
renderer->stopRender( context );
345346
}
346347

347348
QgsDebugMsg( "Feature count on identify: " + QString::number( featureCount ) );

0 commit comments

Comments
 (0)