@@ -243,14 +243,7 @@ QgsMapCanvas::~QgsMapCanvas()
243
243
// delete canvas items prior to deleting the canvas
244
244
// because they might try to update canvas when it's
245
245
// already being destructed, ends with segfault
246
- QList<QGraphicsItem *> list = mScene ->items ();
247
- QList<QGraphicsItem *>::iterator it = list.begin ();
248
- while ( it != list.end () )
249
- {
250
- QGraphicsItem *item = *it;
251
- delete item;
252
- ++it;
253
- }
246
+ qDeleteAll ( mScene ->items () );
254
247
255
248
mScene ->deleteLater (); // crashes in python tests on windows
256
249
@@ -1567,18 +1560,15 @@ void QgsMapCanvas::paintEvent( QPaintEvent *e )
1567
1560
1568
1561
void QgsMapCanvas::updateCanvasItemPositions ()
1569
1562
{
1570
- QList<QGraphicsItem *> list = mScene ->items ();
1571
- QList<QGraphicsItem *>::iterator it = list.begin ();
1572
- while ( it != list.end () )
1563
+ const QList<QGraphicsItem *> items = mScene ->items ();
1564
+ for ( QGraphicsItem *gi : items )
1573
1565
{
1574
- QgsMapCanvasItem *item = dynamic_cast <QgsMapCanvasItem *>( *it );
1566
+ QgsMapCanvasItem *item = dynamic_cast <QgsMapCanvasItem *>( gi );
1575
1567
1576
1568
if ( item )
1577
1569
{
1578
1570
item->updatePosition ();
1579
1571
}
1580
-
1581
- ++it;
1582
1572
}
1583
1573
}
1584
1574
@@ -1912,7 +1902,8 @@ void QgsMapCanvas::updateAutoRefreshTimer()
1912
1902
// min auto refresh interval stores the smallest interval between layer auto refreshes. We automatically
1913
1903
// trigger a map refresh on this minimum interval
1914
1904
int minAutoRefreshInterval = -1 ;
1915
- Q_FOREACH ( QgsMapLayer *layer, mSettings .layers () )
1905
+ const auto layers = mSettings .layers ();
1906
+ for ( QgsMapLayer *layer : layers )
1916
1907
{
1917
1908
if ( layer->hasAutoRefreshEnabled () && layer->autoRefreshInterval () > 0 )
1918
1909
minAutoRefreshInterval = minAutoRefreshInterval > 0 ? std::min ( layer->autoRefreshInterval (), minAutoRefreshInterval ) : layer->autoRefreshInterval ();
@@ -2194,11 +2185,10 @@ bool QgsMapCanvas::event( QEvent *e )
2194
2185
void QgsMapCanvas::refreshAllLayers ()
2195
2186
{
2196
2187
// reload all layers in canvas
2197
- for ( int i = 0 ; i < layerCount (); i++ )
2188
+ const QList<QgsMapLayer *> layers = mapSettings ().layers ();
2189
+ for ( QgsMapLayer *layer : layers )
2198
2190
{
2199
- QgsMapLayer *l = layer ( i );
2200
- if ( l )
2201
- l->reload ();
2191
+ layer->reload ();
2202
2192
}
2203
2193
2204
2194
// clear the cache
@@ -2229,11 +2219,10 @@ void QgsMapCanvas::setSegmentationToleranceType( QgsAbstractGeometry::Segmentati
2229
2219
QList<QgsMapCanvasAnnotationItem *> QgsMapCanvas::annotationItems () const
2230
2220
{
2231
2221
QList<QgsMapCanvasAnnotationItem *> annotationItemList;
2232
- QList<QGraphicsItem *> itemList = mScene ->items ();
2233
- QList<QGraphicsItem *>::iterator it = itemList.begin ();
2234
- for ( ; it != itemList.end (); ++it )
2222
+ const QList<QGraphicsItem *> items = mScene ->items ();
2223
+ for ( QGraphicsItem *gi : items )
2235
2224
{
2236
- QgsMapCanvasAnnotationItem *aItem = dynamic_cast < QgsMapCanvasAnnotationItem *>( *it );
2225
+ QgsMapCanvasAnnotationItem *aItem = dynamic_cast < QgsMapCanvasAnnotationItem *>( gi );
2237
2226
if ( aItem )
2238
2227
{
2239
2228
annotationItemList.push_back ( aItem );
@@ -2246,7 +2235,8 @@ QList<QgsMapCanvasAnnotationItem *> QgsMapCanvas::annotationItems() const
2246
2235
void QgsMapCanvas::setAnnotationsVisible ( bool show )
2247
2236
{
2248
2237
mAnnotationsVisible = show;
2249
- Q_FOREACH ( QgsMapCanvasAnnotationItem *item, annotationItems () )
2238
+ const QList<QgsMapCanvasAnnotationItem *> items = annotationItems ();
2239
+ for ( QgsMapCanvasAnnotationItem *item : items )
2250
2240
{
2251
2241
item->setVisible ( show );
2252
2242
}
@@ -2322,14 +2312,14 @@ void QgsMapCanvas::startPreviewJob( int number )
2322
2312
void QgsMapCanvas::stopPreviewJobs ()
2323
2313
{
2324
2314
mPreviewTimer .stop ();
2325
- QList< QgsMapRendererQImageJob * >::const_iterator it = mPreviewJobs . constBegin () ;
2326
- for ( ; it != mPreviewJobs . constEnd (); ++it )
2315
+ const auto previewJobs = mPreviewJobs ;
2316
+ for ( auto previewJob : previewJobs )
2327
2317
{
2328
- if ( *it )
2318
+ if ( previewJob )
2329
2319
{
2330
- disconnect ( *it , &QgsMapRendererJob::finished, this , &QgsMapCanvas::previewJobFinished );
2331
- connect ( *it , &QgsMapRendererQImageJob::finished, *it , &QgsMapRendererQImageJob::deleteLater );
2332
- ( *it ) ->cancelWithoutBlocking ();
2320
+ disconnect ( previewJob , &QgsMapRendererJob::finished, this , &QgsMapCanvas::previewJobFinished );
2321
+ connect ( previewJob , &QgsMapRendererQImageJob::finished, previewJob , &QgsMapRendererQImageJob::deleteLater );
2322
+ previewJob ->cancelWithoutBlocking ();
2333
2323
}
2334
2324
}
2335
2325
mPreviewJobs .clear ();
0 commit comments