mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-05 00:04:40 -05:00
When temporal range changes we must invalidate the previous labeling
solution if any time-enabled vector layers have labels enabled Fixes #45160
This commit is contained in:
parent
e0e611e5a4
commit
d61cab28c1
@ -888,17 +888,30 @@ void QgsMapCanvas::clearTemporalCache()
|
||||
{
|
||||
if ( mCache )
|
||||
{
|
||||
bool invalidateLabels = false;
|
||||
const QList<QgsMapLayer *> layerList = mapSettings().layers();
|
||||
for ( QgsMapLayer *layer : layerList )
|
||||
{
|
||||
if ( layer->temporalProperties() && layer->temporalProperties()->isActive() )
|
||||
{
|
||||
if ( QgsVectorLayer *vl = qobject_cast< QgsVectorLayer * >( layer ) )
|
||||
{
|
||||
if ( vl->labelsEnabled() || vl->diagramsEnabled() )
|
||||
invalidateLabels = true;
|
||||
}
|
||||
|
||||
if ( layer->temporalProperties()->flags() & QgsTemporalProperty::FlagDontInvalidateCachedRendersWhenRangeChanges )
|
||||
continue;
|
||||
|
||||
mCache->invalidateCacheForLayer( layer );
|
||||
}
|
||||
}
|
||||
|
||||
if ( invalidateLabels )
|
||||
{
|
||||
mCache->clearCacheImage( QStringLiteral( "_labels_" ) );
|
||||
mCache->clearCacheImage( QStringLiteral( "_preview_labels_" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -906,17 +919,30 @@ void QgsMapCanvas::clearElevationCache()
|
||||
{
|
||||
if ( mCache )
|
||||
{
|
||||
bool invalidateLabels = false;
|
||||
const QList<QgsMapLayer *> layerList = mapSettings().layers();
|
||||
for ( QgsMapLayer *layer : layerList )
|
||||
{
|
||||
if ( layer->elevationProperties() && layer->elevationProperties()->hasElevation() )
|
||||
{
|
||||
if ( QgsVectorLayer *vl = qobject_cast< QgsVectorLayer * >( layer ) )
|
||||
{
|
||||
if ( vl->labelsEnabled() || vl->diagramsEnabled() )
|
||||
invalidateLabels = true;
|
||||
}
|
||||
|
||||
if ( layer->elevationProperties()->flags() & QgsMapLayerElevationProperties::FlagDontInvalidateCachedRendersWhenRangeChanges )
|
||||
continue;
|
||||
|
||||
mCache->invalidateCacheForLayer( layer );
|
||||
}
|
||||
}
|
||||
|
||||
if ( invalidateLabels )
|
||||
{
|
||||
mCache->clearCacheImage( QStringLiteral( "_labels_" ) );
|
||||
mCache->clearCacheImage( QStringLiteral( "_preview_labels_" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user