Skip to content

Commit f96364e

Browse files
committed
[composer] Cleanup handling of wms layer/advanced effect detection
1 parent 8a9cee0 commit f96364e

2 files changed

Lines changed: 15 additions & 24 deletions

File tree

‎src/app/composer/qgscomposer.cpp‎

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3800,45 +3800,35 @@ void QgsComposer::setSelectionTool()
38003800

38013801
bool QgsComposer::containsWmsLayer() const
38023802
{
3803-
QMap<QgsComposerItem*, QgsPanelWidget*>::const_iterator item_it = mItemWidgetMap.constBegin();
3804-
QgsComposerItem* currentItem = nullptr;
3805-
QgsComposerMap* currentMap = nullptr;
3803+
QList< QgsComposerMap *> maps;
3804+
mComposition->composerItems( maps );
38063805

3807-
for ( ; item_it != mItemWidgetMap.constEnd(); ++item_it )
3806+
Q_FOREACH ( QgsComposerMap* map, maps )
38083807
{
3809-
currentItem = item_it.key();
3810-
currentMap = dynamic_cast<QgsComposerMap *>( currentItem );
3811-
if ( currentMap )
3812-
{
3813-
if ( currentMap->containsWmsLayer() )
3814-
{
3815-
return true;
3816-
}
3817-
}
3808+
if ( map->containsWmsLayer() )
3809+
return true;
38183810
}
38193811
return false;
38203812
}
38213813

38223814
bool QgsComposer::containsAdvancedEffects() const
38233815
{
3824-
// Check if composer contains any blend modes or flattened layers for transparency
3825-
QMap<QgsComposerItem*, QgsPanelWidget*>::const_iterator item_it = mItemWidgetMap.constBegin();
3826-
QgsComposerItem* currentItem = nullptr;
3827-
QgsComposerMap* currentMap = nullptr;
3816+
QList< QgsComposerItem *> items;
3817+
mComposition->composerItems( items );
38283818

3829-
for ( ; item_it != mItemWidgetMap.constEnd(); ++item_it )
3819+
Q_FOREACH ( QgsComposerItem* currentItem, items )
38303820
{
3831-
currentItem = item_it.key();
38323821
// Check composer item's blend mode
38333822
if ( currentItem->blendMode() != QPainter::CompositionMode_SourceOver )
38343823
{
38353824
return true;
38363825
}
3826+
38373827
// If item is a composer map, check if it contains any advanced effects
3838-
currentMap = dynamic_cast<QgsComposerMap *>( currentItem );
3839-
if ( currentMap && currentMap->containsAdvancedEffects() )
3828+
if ( QgsComposerMap * currentMap = dynamic_cast<QgsComposerMap *>( currentItem ) )
38403829
{
3841-
return true;
3830+
if ( currentMap->containsAdvancedEffects() )
3831+
return true;
38423832
}
38433833
}
38443834
return false;

‎src/core/composer/qgscomposermap.cpp‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,7 +1128,7 @@ void QgsComposerMap::updateItem()
11281128

11291129
bool QgsComposerMap::containsWmsLayer() const
11301130
{
1131-
Q_FOREACH ( QgsMapLayer* layer, mComposition->mapSettings().layers() )
1131+
Q_FOREACH ( QgsMapLayer* layer, layersToRender() )
11321132
{
11331133
if ( QgsRasterLayer* currentRasterLayer = qobject_cast<QgsRasterLayer *>( layer ) )
11341134
{
@@ -1164,7 +1164,7 @@ bool QgsComposerMap::containsAdvancedEffects() const
11641164
// check if map contains advanced effects like blend modes, or flattened layers for transparency
11651165

11661166
QgsTextFormat layerFormat;
1167-
Q_FOREACH ( QgsMapLayer* layer, mComposition->mapSettings().layers() )
1167+
Q_FOREACH ( QgsMapLayer* layer, layersToRender() )
11681168
{
11691169
if ( layer )
11701170
{
@@ -1188,6 +1188,7 @@ bool QgsComposerMap::containsAdvancedEffects() const
11881188
if ( QgsPalLabeling::staticWillUseLayer( currentVectorLayer ) )
11891189
{
11901190
// Check all label blending properties
1191+
11911192
layerFormat.readFromLayer( currentVectorLayer );
11921193
if ( layerFormat.containsAdvancedEffects() )
11931194
return true;

0 commit comments

Comments
 (0)