Skip to content

Commit b4ad637

Browse files
committed
Make presets with styles working in composer
1 parent 3fbb758 commit b4ad637

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/app/qgsvisibilitypresets.cpp

+14-2
Original file line numberDiff line numberDiff line change
@@ -200,14 +200,26 @@ void QgsVisibilityPresets::applyPresetCheckedLegendNodesToLayer( const QString&
200200
if ( !mPresets.contains( name ) )
201201
return;
202202

203-
QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer*>( QgsMapLayerRegistry::instance()->mapLayer( layerID ) );
203+
QgsMapLayer* layer = QgsMapLayerRegistry::instance()->mapLayer( layerID );
204+
if ( !layer )
205+
return;
206+
207+
const PresetRecord& rec = mPresets[name];
208+
209+
if ( rec.mPerLayerCurrentStyle.contains( layerID ) )
210+
{
211+
// apply desired style first
212+
if ( layer->styleManager() )
213+
layer->styleManager()->setCurrentStyle( rec.mPerLayerCurrentStyle[layerID] );
214+
}
215+
216+
QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer*>( layer );
204217
if ( !vlayer || !vlayer->rendererV2() )
205218
return;
206219

207220
if ( !vlayer->rendererV2()->legendSymbolItemsCheckable() )
208221
return; // no need to do anything
209222

210-
const PresetRecord& rec = mPresets[name];
211223
bool someNodesUnchecked = rec.mPerLayerCheckedLegendSymbols.contains( layerID );
212224

213225
foreach ( const QgsLegendSymbolItemV2& item, vlayer->rendererV2()->legendSymbolItemsV2() )

0 commit comments

Comments
 (0)