Skip to content

Commit

Permalink
Make presets with styles working in composer
Browse files Browse the repository at this point in the history
  • Loading branch information
wonder-sk committed Jan 8, 2015
1 parent 3fbb758 commit b4ad637
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/app/qgsvisibilitypresets.cpp
Expand Up @@ -200,14 +200,26 @@ void QgsVisibilityPresets::applyPresetCheckedLegendNodesToLayer( const QString&
if ( !mPresets.contains( name ) )
return;

QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer*>( QgsMapLayerRegistry::instance()->mapLayer( layerID ) );
QgsMapLayer* layer = QgsMapLayerRegistry::instance()->mapLayer( layerID );
if ( !layer )
return;

const PresetRecord& rec = mPresets[name];

if ( rec.mPerLayerCurrentStyle.contains( layerID ) )
{
// apply desired style first
if ( layer->styleManager() )
layer->styleManager()->setCurrentStyle( rec.mPerLayerCurrentStyle[layerID] );
}

QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer*>( layer );
if ( !vlayer || !vlayer->rendererV2() )
return;

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

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

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

0 comments on commit b4ad637

Please sign in to comment.