@@ -35,7 +35,7 @@ void QgsMapRendererCache::clearInternal()
3535 mScale = 0 ;
3636
3737 // make sure we are disconnected from all layers
38- Q_FOREACH ( const QPointer< QgsMapLayer > & layer, mConnectedLayers )
38+ Q_FOREACH ( const QgsWeakMapLayerPointer & layer, mConnectedLayers )
3939 {
4040 if ( layer.data () )
4141 {
@@ -48,9 +48,9 @@ void QgsMapRendererCache::clearInternal()
4848
4949void QgsMapRendererCache::dropUnusedConnections ()
5050{
51- QSet< QPointer< QgsMapLayer > > stillDepends = dependentLayers ();
52- QSet< QPointer< QgsMapLayer > > disconnects = mConnectedLayers .subtract ( stillDepends );
53- Q_FOREACH ( const QPointer< QgsMapLayer > & layer, disconnects )
51+ QSet< QgsWeakMapLayerPointer > stillDepends = dependentLayers ();
52+ QSet< QgsWeakMapLayerPointer > disconnects = mConnectedLayers .subtract ( stillDepends );
53+ Q_FOREACH ( const QgsWeakMapLayerPointer & layer, disconnects )
5454 {
5555 if ( layer.data () )
5656 {
@@ -61,13 +61,13 @@ void QgsMapRendererCache::dropUnusedConnections()
6161 mConnectedLayers = stillDepends;
6262}
6363
64- QSet<QPointer<QgsMapLayer> > QgsMapRendererCache::dependentLayers () const
64+ QSet<QgsWeakMapLayerPointer > QgsMapRendererCache::dependentLayers () const
6565{
66- QSet< QPointer< QgsMapLayer > > result;
66+ QSet< QgsWeakMapLayerPointer > result;
6767 QMap<QString, CacheParameters>::const_iterator it = mCachedImages .constBegin ();
6868 for ( ; it != mCachedImages .constEnd (); ++it )
6969 {
70- Q_FOREACH ( const QPointer< QgsMapLayer > & l, it.value ().dependentLayers )
70+ Q_FOREACH ( const QgsWeakMapLayerPointer & l, it.value ().dependentLayers )
7171 {
7272 if ( l.data () )
7373 result << l;
@@ -107,7 +107,7 @@ void QgsMapRendererCache::setCacheImage( const QString& cacheKey, const QImage&
107107 if ( layer )
108108 {
109109 params.dependentLayers << layer;
110- if ( !mConnectedLayers .contains ( QPointer< QgsMapLayer > ( layer ) ) )
110+ if ( !mConnectedLayers .contains ( QgsWeakMapLayerPointer ( layer ) ) )
111111 {
112112 connect ( layer, &QgsMapLayer::repaintRequested, this , &QgsMapRendererCache::layerRequestedRepaint );
113113 mConnectedLayers << layer;
0 commit comments