Skip to content

Commit 4e10c5b

Browse files
committedJun 6, 2016
Trigger repaints instead of explicitly refreshing canvas
Inspired by work by @manisandro
1 parent 787d206 commit 4e10c5b

20 files changed

+32
-42
lines changed
 

‎src/app/nodetool/qgsmaptoolnodetool.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ void QgsMapToolNodeTool::canvasReleaseEvent( QgsMapMouseEvent* e )
502502
}
503503

504504
mSelectedFeature->moveSelectedVertexes( releaseLayerCoords - pressLayerCoords );
505-
mCanvas->refresh();
505+
vlayer->triggerRepaint();
506506
}
507507
else // selecting vertexes by rubberband
508508
{
@@ -646,7 +646,7 @@ void QgsMapToolNodeTool::canvasDoubleClickEvent( QgsMapMouseEvent* e )
646646
vlayer->endEditCommand();
647647

648648
// make sure that new node gets its vertex marker
649-
mCanvas->refresh();
649+
vlayer->triggerRepaint();
650650
}
651651

652652
void QgsMapToolNodeTool::deleteNodeSelection()
@@ -674,7 +674,7 @@ void QgsMapToolNodeTool::deleteNodeSelection()
674674

675675
safeSelectVertex( nextVertexToSelect );
676676
}
677-
mCanvas->refresh();
677+
mSelectedFeature->vlayer()->triggerRepaint();
678678
}
679679
}
680680

‎src/app/nodetool/qgsnodeeditor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ bool QgsNodeEditorModel::setData( const QModelIndex& index, const QVariant& valu
230230
mLayer->beginEditCommand( QObject::tr( "Moved vertices" ) );
231231
mLayer->moveVertex( p, mSelectedFeature->featureId(), index.row() );
232232
mLayer->endEditCommand();
233-
mCanvas->refresh();
233+
mLayer->triggerRepaint();
234234

235235
return false;
236236
}

‎src/app/qgisapp.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5859,7 +5859,7 @@ void QgisApp::fieldCalculator()
58595859
QgsFieldCalculator calc( myLayer, this );
58605860
if ( calc.exec() )
58615861
{
5862-
mMapCanvas->refresh();
5862+
myLayer->triggerRepaint();
58635863
}
58645864
}
58655865

@@ -6865,7 +6865,7 @@ void QgisApp::mergeAttributesOfSelectedFeatures()
68656865

68666866
if ( mapCanvas() )
68676867
{
6868-
mapCanvas()->refresh();
6868+
vl->triggerRepaint();
68696869
}
68706870
}
68716871

@@ -7045,7 +7045,7 @@ void QgisApp::mergeSelectedFeatures()
70457045

70467046
if ( mapCanvas() )
70477047
{
7048-
mapCanvas()->refresh();
7048+
vl->triggerRepaint();
70497049
}
70507050
}
70517051

@@ -7367,7 +7367,7 @@ void QgisApp::editPaste( QgsMapLayer *destinationLayer )
73677367
QgsMessageBar::WARNING, messageTimeout() );
73687368
}
73697369

7370-
mMapCanvas->refresh();
7370+
pasteVectorLayer->triggerRepaint();
73717371
}
73727372

73737373
void QgisApp::pasteAsNewVector()
@@ -7600,8 +7600,7 @@ void QgisApp::pasteStyle( QgsMapLayer * destinationLayer )
76007600
}
76017601

76027602
mLayerTreeView->refreshLayerSymbology( selectionLayer->id() );
7603-
mMapCanvas->clearCache();
7604-
mMapCanvas->refresh();
7603+
selectionLayer->triggerRepaint();
76057604
}
76067605
}
76077606
}
@@ -8056,7 +8055,7 @@ void QgisApp::layerSubsetString()
80568055
{
80578056
if ( subsetBefore != qb->sql() )
80588057
{
8059-
mMapCanvas->refresh();
8058+
vlayer->triggerRepaint();
80608059
if ( mLayerTreeView )
80618060
{
80628061
mLayerTreeView->refreshLayerSymbology( vlayer->id() );
@@ -8878,7 +8877,7 @@ void QgisApp::histogramStretch( bool visibleAreaOnly, QgsRaster::ContrastEnhance
88788877

88798878
myRasterLayer->setContrastEnhancement( QgsContrastEnhancement::StretchToMinimumMaximum, theLimits, myRectangle );
88808879

8881-
mMapCanvas->refresh();
8880+
myRasterLayer->triggerRepaint();
88828881
}
88838882

88848883
void QgisApp::increaseBrightness()

‎src/app/qgsdiagramproperties.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -828,12 +828,8 @@ void QgsDiagramProperties::apply()
828828
mLayer->setDiagramLayerSettings( dls );
829829

830830
// refresh
831-
if ( mMapCanvas )
832-
{
833-
QgisApp::instance()->markDirty();
834-
if ( mMapCanvas )
835-
mMapCanvas->refresh();
836-
}
831+
QgisApp::instance()->markDirty();
832+
mLayer->triggerRepaint();
837833
}
838834

839835
void QgsDiagramProperties::showAddAttributeExpressionDialog()

‎src/app/qgslabelinggui.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -891,10 +891,7 @@ void QgsLabelingGui::apply()
891891
mFontMissingLabel->setVisible( false );
892892
QgisApp::instance()->markDirty();
893893
// trigger refresh
894-
if ( mMapCanvas )
895-
{
896-
mMapCanvas->refresh();
897-
}
894+
mLayer->triggerRepaint();
898895
}
899896

900897
void QgsLabelingGui::writeSettingsToLayer()

‎src/app/qgslabelingwidget.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,7 @@ void QgsLabelingWidget::apply()
139139
writeSettingsToLayer();
140140
QgisApp::instance()->markDirty();
141141
// trigger refresh
142-
if ( mCanvas )
143-
{
144-
mCanvas->refresh();
145-
}
142+
mLayer->triggerRepaint();
146143
}
147144

148145
void QgsLabelingWidget::labelModeChanged( int index )

‎src/app/qgsmaptooladdfeature.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ void QgsMapToolAddFeature::cadCanvasReleaseEvent( QgsMapMouseEvent* e )
170170

171171
addFeature( vlayer, &f, false );
172172

173-
mCanvas->refresh();
173+
vlayer->triggerRepaint();
174174
}
175175
}
176176

‎src/app/qgsmaptooladdpart.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ void QgsMapToolAddPart::cadCanvasReleaseEvent( QgsMapMouseEvent * e )
192192

193193
vlayer->endEditCommand();
194194

195-
mCanvas->refresh();
195+
vlayer->triggerRepaint();
196196
return;
197197
}
198198

‎src/app/qgsmaptoolchangelabelproperties.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void QgsMapToolChangeLabelProperties::applyChanges( const QgsAttributeMap& chang
9393
}
9494

9595
vlayer->endEditCommand();
96-
mCanvas->refresh();
96+
vlayer->triggerRepaint();
9797
}
9898
}
9999

‎src/app/qgsmaptooldeletepart.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ void QgsMapToolDeletePart::canvasReleaseEvent( QgsMapMouseEvent* e )
107107
vlayer->beginEditCommand( tr( "Part of multipart feature deleted" ) );
108108
vlayer->changeGeometry( f.id(), g );
109109
vlayer->endEditCommand();
110-
mCanvas->refresh();
110+
vlayer->triggerRepaint();
111111
}
112112
else
113113
{

‎src/app/qgsmaptooldeletering.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ void QgsMapToolDeleteRing::canvasReleaseEvent( QgsMapMouseEvent* e )
115115
vlayer->beginEditCommand( tr( "Ring deleted" ) );
116116
vlayer->changeGeometry( mPressedFid, g );
117117
vlayer->endEditCommand();
118-
mCanvas->refresh();
118+
vlayer->triggerRepaint();
119119
}
120120
}
121121

@@ -197,7 +197,7 @@ void QgsMapToolDeleteRing::deleteRing( QgsFeatureId fId, int beforeVertexNr, Qgs
197197
vlayer->beginEditCommand( tr( "Ring deleted" ) );
198198
vlayer->changeGeometry( fId, editableGeom );
199199
vlayer->endEditCommand();
200-
mCanvas->refresh();
200+
vlayer->triggerRepaint();
201201
}
202202

203203
}

‎src/app/qgsmaptoolmovefeature.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ void QgsMapToolMoveFeature::canvasReleaseEvent( QgsMapMouseEvent* e )
166166
}
167167
delete mRubberBand;
168168
mRubberBand = nullptr;
169-
mCanvas->refresh();
170169
vlayer->endEditCommand();
170+
vlayer->triggerRepaint();
171171
}
172172

173173
//! called when map tool is being deactivated

‎src/app/qgsmaptoolmovelabel.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,7 @@ void QgsMapToolMoveLabel::canvasReleaseEvent( QgsMapMouseEvent* e )
169169
}
170170
vlayer->endEditCommand();
171171

172-
if ( mCanvas )
173-
mCanvas->refresh();
172+
vlayer->triggerRepaint();
174173
}
175174

176175

‎src/app/qgsmaptooloffsetcurve.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ void QgsMapToolOffsetCurve::applyOffset()
186186
delete mSnapVertexMarker;
187187
mSnapVertexMarker = nullptr;
188188
mForceCopy = false;
189-
mCanvas->refresh();
189+
layer->triggerRepaint();
190190
}
191191

192192
void QgsMapToolOffsetCurve::placeOffsetCurveToValue()

‎src/app/qgsmaptooloffsetpointsymbol.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ void QgsMapToolOffsetPointSymbol::canvasReleaseEvent( QgsMapMouseEvent* e )
164164
mOffsetting = false;
165165
delete mOffsetItem;
166166
mOffsetItem = nullptr;
167-
mCanvas->refresh();
167+
if ( mActiveLayer )
168+
mActiveLayer->triggerRepaint();
168169
}
169170

170171
void QgsMapToolOffsetPointSymbol::createPreviewItem( QgsMarkerSymbolV2* markerSymbol )

‎src/app/qgsmaptoolrotatefeature.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,8 +400,8 @@ void QgsMapToolRotateFeature::applyRotation( double rotation )
400400
deleteRotationWidget();
401401
deleteRubberband();
402402

403-
mCanvas->refresh();
404403
vlayer->endEditCommand();
404+
vlayer->triggerRepaint();
405405
}
406406

407407
void QgsMapToolRotateFeature::activate()

‎src/app/qgsmaptoolrotatelabel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ void QgsMapToolRotateLabel::canvasReleaseEvent( QgsMapMouseEvent* e )
173173
vlayer->beginEditCommand( tr( "Rotated label" ) + QString( " '%1'" ).arg( currentLabelText( 24 ) ) );
174174
vlayer->changeAttributeValue( mCurrentLabel.pos.featureId, rotationCol, rotation );
175175
vlayer->endEditCommand();
176-
mCanvas->refresh();
176+
vlayer->triggerRepaint();
177177
}
178178

179179
int QgsMapToolRotateLabel::roundTo15Degrees( double n )

‎src/app/qgsmaptoolrotatepointsymbols.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,8 @@ void QgsMapToolRotatePointSymbols::canvasReleaseEvent( QgsMapMouseEvent* e )
199199
mRotating = false;
200200
delete mRotationItem;
201201
mRotationItem = nullptr;
202-
mCanvas->refresh();
202+
if ( mActiveLayer )
203+
mActiveLayer->triggerRepaint();
203204
}
204205

205206
double QgsMapToolRotatePointSymbols::calculateAzimut( QPoint mousePos )

‎src/app/qgsmaptoolshowhidelabels.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ void QgsMapToolShowHideLabels::showHideLabels( QMouseEvent * e )
179179
if ( labelChanged )
180180
{
181181
vlayer->endEditCommand();
182-
mCanvas->refresh();
182+
vlayer->triggerRepaint();
183183
}
184184
else
185185
{

‎src/app/qgsmaptoolsimplify.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ void QgsMapToolSimplify::storeSimplified()
182182

183183
clearSelection();
184184

185-
mCanvas->refresh();
185+
vlayer->triggerRepaint();
186186
}
187187

188188

0 commit comments

Comments
 (0)