@@ -35,11 +35,6 @@ QgsVectorLayerRenderer::QgsVectorLayerRenderer( QgsVectorLayer* layer, QgsRender
35
35
mSelectedFeatureIds = layer->selectedFeaturesIds ();
36
36
37
37
mDrawVertexMarkers = ( layer->editBuffer () != 0 );
38
- mCacheFeatures = ( layer->editBuffer () != 0 );
39
- if ( mCacheFeatures )
40
- {
41
- mCache = new QgsGeometryCache ();
42
- }
43
38
44
39
mGeometryType = layer->geometryType ();
45
40
@@ -70,11 +65,8 @@ QgsVectorLayerRenderer::QgsVectorLayerRenderer( QgsVectorLayer* layer, QgsRender
70
65
71
66
QgsDebugMsg ( " rendering v2:\n " + mRendererV2 ->dump () );
72
67
73
- if ( mCacheFeatures )
68
+ if ( mDrawVertexMarkers )
74
69
{
75
- // Destroy all cached geometries and clear the references to them
76
- mCache ->setCachedGeometriesRect ( mContext .extent () );
77
-
78
70
// set editing vertex markers style
79
71
mRendererV2 ->setVertexMarkerAppearance ( mVertexMarkerStyle , mVertexMarkerSize );
80
72
}
@@ -91,7 +83,6 @@ QgsVectorLayerRenderer::QgsVectorLayerRenderer( QgsVectorLayer* layer, QgsRender
91
83
QgsVectorLayerRenderer::~QgsVectorLayerRenderer ()
92
84
{
93
85
delete mRendererV2 ;
94
- delete mCache ;
95
86
delete mSource ;
96
87
}
97
88
@@ -142,6 +133,17 @@ bool QgsVectorLayerRenderer::render()
142
133
return true ;
143
134
}
144
135
136
+ void QgsVectorLayerRenderer::setGeometryCachePointer ( QgsGeometryCache* cache )
137
+ {
138
+ mCache = cache;
139
+
140
+ if ( mCache )
141
+ {
142
+ // Destroy all cached geometries and clear the references to them
143
+ mCache ->setCachedGeometriesRect ( mContext .extent () );
144
+ }
145
+ }
146
+
145
147
146
148
147
149
void QgsVectorLayerRenderer::drawRendererV2 ( QgsFeatureIterator& fit )
@@ -166,7 +168,7 @@ void QgsVectorLayerRenderer::drawRendererV2( QgsFeatureIterator& fit )
166
168
// render feature
167
169
bool rendered = mRendererV2 ->renderFeature ( fet, mContext , -1 , sel, drawMarker );
168
170
169
- if ( mCacheFeatures )
171
+ if ( mCache )
170
172
{
171
173
// Cache this for the use of (e.g.) modifying the feature's uncommitted geometry.
172
174
mCache ->cacheGeometry ( fet.id (), *fet.geometry () );
@@ -236,7 +238,7 @@ void QgsVectorLayerRenderer::drawRendererV2Levels( QgsFeatureIterator& fit )
236
238
}
237
239
features[sym].append ( fet );
238
240
239
- if ( mCacheFeatures )
241
+ if ( mCache )
240
242
{
241
243
// Cache this for the use of (e.g.) modifying the feature's uncommitted geometry.
242
244
mCache ->cacheGeometry ( fet.id (), *fet.geometry () );
0 commit comments